티스토리 뷰

Source : http://www.itworld.co.kr/slideshow/86536?slide=9#stage_slide



“이 코드에는 주석이 필요 없다”
솔직히 코드에 주석을 다는 일은 지겹다. 그래서 개발자들은 적당한 이유를 들어 주석을 달지 않거나 최대한 뒤로 미루곤 한다. 그 이유가 합당할 때도 있지만 그렇지 않은 경우도 많다. Credit: flickr/Sabine

"여기엔 주석을 달 필요가 없어. 내가 썼으니 뭐가 뭔지 내가 잘 알아." Alek
"내가 만든 이 단순한 사용자 인터페이스를 이해하지 못할 사람은 없을 거야." John Morrow
"주석으로 설명을 달지 않아도 다 기억할 수 있어." Avenger
"코드 그 자체로 문서화된다." Toby Thain



“오래 걸리지 않을 거야”
과신, 자기기만, 퇴근하고자 하는 절박함. 이유가 무엇이든 개발자들은 어떤 일을 완료하는 데 걸리는 시간을 과소평가하는 경향이 있다. 얼핏 보기에는 전혀 복잡하지 않은 코드에 대한 아주 작은 변경 또는 수정 작업도 막상 해보면 예상보다 더 많은 시간이 걸리는 큰 일이 되곤 한다. Credit: flickr/Adam Rifkin

"이거 아주 쉬워. 오래 걸려봤자 2시간이면 충분할걸?" Mita
"이건 너무 쉬워서 금방 알아낼 거야." notgeorgelucas
"버그 하나만 더 잡으면 다 해결된다." Joe Atiyah
"5분 후면 집에 갈 수 있다." Evan Wilde



“나는 이것보다 더 잘 할 수 있다”
오픈소스가 성장하면서 개발자들은 온갖 종류의 코드와 도구, 애플리케이션을 무료로 사용할 수 있게 됐지만, 그렇다고 "그들 스스로의 역할"에 대한 자부심이 줄어든 것은 아니다. 소프트웨어 엔지니어에게 자신의 능력에 대한 확신 빼면 남는 것이 없다. Credit: flickr/Yahoo

"나는 X의 인터페이스 표준을 따를 필요가 없다. 내 방식이 더 나으니까..." Mark Harrison
"나는 gcc-03의 성능을 능가하는 어셈블리를 쓸 수 있다." Alex Feinberg
"내가 직접 만든 파서로 충분하다." Toby Thain
"내 코드가 네 코드보다 낫다." William Emmanuel Yu



“나중에 고칠 거야”
프로그래머는 중요한 버그를 잡아야 할 때나 기한을 맞춰야 할 때를 포함하여 다양한 상황에서 빠르게 하기와 "제대로" 하기 사이에서 타협해야 한다. 타협의 명분은 시간 절약이다. 완벽하지 않은 코드를 나중에 수정하거나 정리하면 된다는 것이다. 그러나 대부분 그 '나중'은 결코 오지 않는다는 것을 스스로도 잘 안다. Credit: flickr/Nessima El Qorchi

"이 코드가 지저분한 것은 나도 알아. 나중에 다시 쓸 거야." GerardYin
"이 부분은 나중 릴리스에서 고칠 거야." notgeorgelucas
"나중에 이 부분으로 돌아와서 주석을 달 거야." schrodingerspanda
"지금은 이 버그를 무시해도 돼." makemehumanagain



“사소한 변경일 뿐이야”
버그를 수정하든 기능을 추가하든 코드를 변경할 때는 아주 작은 것이라 해도 예상치 못한 종속성으로 인해 생각보다 일이 커지는 수가 많다. 그런데 코더는 이런 경우를 아무리 많이 겪어도 여전히 '사소한 코드 변경'이란 거의 없다는 사실을 망각하는 듯하다. Credit: flickr/Eric Golub

"아주 간단하고 사소한 변경이다." Hummigbird1
"1줄일 뿐이고 아무것도 망가지지 않을 거야." bleepster
"데이터베이스 트랜잭션은 필요 없다. 잘못될 가능성은 없다!" Ahmet Alp Balkan
"이 사소하고 별 것도 아닌 코드 변경이 단위 테스트 실패로 이어질 가능성은 없다." Hummigbird1



“버그가 아니야”
간혹 개발자들은 코드가 잘못되거나 버그가 있다는 사실을 인정하지 않으려 든다. 직접 썼고 직접 테스트했으며(아마도), 자신이 보기엔 아무 문제도 없기 때문이다. 사용자가 뭔가를 잘못하고 있거나 애플리케이션의 기능에 대해 잘못 이해하고 있을 뿐이다, 개발자들은 그렇게 생각하곤 한다. Credit: flickr/Simon Davison

"내 컴퓨터에서는 잘 된다." Madsdad
"버그가 아니라 기능이다!" Ron007
"컴파일된다면 제대로 된 것이다!" Philip Guo
"테스트를 통과했다면 제대로 된 것이다." Michal Pise


“내가 무슨 일을 하는지 잘 안다”
프로그래머들은 스스로에 대해 과신하는 탓에 자신이 하는 일을 정확히 안다고 생각하는 경우가 많은데, 사실을 그렇지 않은 때가 종종 있다. 과신하는 프로그래머는 지름길을 택하거나 무턱대고 논쟁하거나 전반적으로 경솔해질 수 있으며 이는 모두 문제로 이어지게 된다. Credit: flickr/Denise Krebs

"나는 디자인과 아키텍처를 건너뛰고 바로 코딩을 시작할 수 있다." Toby Thain
"나는 그 레거시 코드를 완전히 이해하고 있어!" Hummigbird1
"버전 제어는 필요 없다." Toby Thain
"내가 뭘 하는지는 내가 안다." Kyle


“이 테스트는 생략해도 안전하다”
테스트는 소프트웨어를 만드는 데 있어 필요한 단계지만 별 재미가 없는 일이 될 수도 있다. 주석을 쓰는 일과 마찬가지로, 프로그래머들은 테스트를 하지 않기 위한 구실을 찾거나 적절한 코딩 절차를 밟지 않는 경우가 있다. Credit: flickr/Paul Downey

"테스트는 대부분 중복되는 작업이다. 지금 이 입력으로 작동되니까 입증된 것이다." Ahmet Alp Balkan
"단위 테스트를 한다면 타입 검사는 필요 없다." Toby Thain
"한 줄짜리 간단한 변경이다. 테스트할 필요가 없다." Sami Kukkonen


“<가장 즐겨 사용하는 언어>을(를) 사용하고 있으니까 아무 문제 없다”
소프트웨어 개발자마다 잘 알고 신뢰하고 의존하는, 선호하는 언어가 있다. 그러나 선호하는 언어에 대한 사랑과 충성은 종종 그 언어의 결함과 단점, 또는 한계에 대해 스스로에게 정직하지 못한 자세를 갖게 되는 원인이 되기도 한다. Credit: flickr/Kushal Das

"C로 작성한 코드라면 빠르다." Toby Thain
"파이썬으로 작성한 코드는 확장이 쉽다." Alec Heller
"자바는 모든 곳에서 실행된다." Ahmet Alp Balkan