코딩 호러의 이펙티브 프로그래밍

By | 2013/04/21

book_effectiveprogramming

YES24에서 컴퓨터와인터넷 카테고리에 새로 나온 책이 없나 둘러보다가 임백준씨가 옮긴 새 책이 예약 판매중인 것을 발견했다. 예전부터 임백준씨가 쓴 책을 즐겨봐왔기에 이 책은 또 무얼까 하고 클릭해보니... 대박! 조엘 스폴스키와 함께 스택오버플로우(http://stackoverflow.com/)를 공동설립한 제프 앳우드가 쓴 글이다. 정확히 말하자면 제프 앳우드가 운영하는 코딩 호러(http://www.codinghorror.com/) 블로그의 글들을 엮은 책이다. 원서는 이미 작년 여름에 출판되었고, 이제서야 임백준씨에 의해 번역되었다. 당연히 예약 결재! 며칠이 지나 책을 받아 볼 수 있었다.

스택오버플로우는 IT에 관심이 있는, 특히 프로그래밍에 관심이 있는 사람이면 모를 수가 없는 사이트다. 영어로 프로그래밍 관련 질문을 구글링하면 항상 최상위에 뜨는 검색 결과들이 스택오버플로우의 질문/답변들이니까. 작년에 소셜 컴퓨팅 시스템 디자인이라는 수업을 들으면서 현재 서비스되고 있는 커뮤니티가 커뮤니티 활성화를 위해 어떤 방법들을 사용하고 있는지에 대해 비평하는 리포트를 쓴 적이 있다. 나는 망설임 없이 스택오버플로우를 선택하여 분석하였는데, 평소에 단순히 프로그래밍 관련 질문들을 검색할 때는 전혀 몰랐던, 커뮤니티 활성화를 위한 어마어마한 시스템에 깜짝 놀랐던 기억이 난다. 스택오버플로우가 단순한 Q&A 사이트 그 이상으로 거듭난데는 다 이유가 있었다. 이러한 엄청난 사이트를 설립한 두 사람중 한몀인 조엘 스폴스키는 조엘 온 블로그, 조엘 온 소프트웨어 등의 책으로 이미 친숙했지만 제프 앳우드는 코딩 호러라는 유명 블로그를 운영하면서도 왜 이제서야 이런 책을 발간하게 되었는지 의문이다.

그동안 코딩 호러에 실린 글 중에서 엄선한 글만 실린 이 책에는 프로그래밍, 프로그래머 채용 등의 내용 뿐 아니라 UI와 사용자, 커뮤니티 등과 관련하여 저자의 통찰력과 실질적인 조언이 수록되어 있다. 몇몇 공감가는 부분에는 밑줄을 긋고 내 생각을 메모하며 이 책을 읽어나갔다.

사용자가 보기에 그것이 버그이면, 사용자 교육, 사용자 문서, 사용자 인터페이스, 혹은 실제 기능이든 상관없이 그것은 버그다.
-코딩호러 사이트에 담긴 요에리 세프레흐츠라는 사람의 댓글-

최근 학과 내에서 작은 규모로 진행 중인 가칭 교내 협업 지원 서비스의 사용자 테스트를 진행한 적이 있다. 이 서비스를 간략하게 사용해 본 10여명의 사용자들을 상대로 1:1 인터뷰를 진행하면서 서비스에 대한 피드백을 받았는데, 사용자가 뭔가 기능 및 디자인 등에 대해 지적을 하면 무의식적으로 하나하나 변명을 하고 있는 나를 발견할 수 있었다. 몇몇 피드백들은 매우 정확하고 유용했다. 내가 사용자 입장이었어도 똑같은 피드백을 주었을 것이다. 하지만 나는 이 시스템에서 현재 PM이자 개발자 입장이었기에 사용자의 불만에 어느 정도 본능적으로 방어를 했던 것 같다. 이것이 다 무슨 소용이 있으랴. 사용자가 보기에 그것이 버그이면, 그것은 버그인 것이다.

일단 소프트웨어를 출시해보고, 그것이 실제 세상의 해안가에서 좌초하게 된다면 실망감은 어쩔 수 없더라도 그것을 수정할 수 있다고 믿는 편이 더 현명한 일이다! 여기서 중요한 것은 소프트웨어의 초기 상태가 아니다. 심지어 어떤 사람은 당신이 버전 1.0을 출시하고나서 당혹스러운 경험을 하지 않는다면 그것을 충분히 일찍 출시한 것이 아니라고 말하기까지 한다. 중요한 것은 소프트웨어가 얼마나 완벽한 것인기가가 아니라, 소프트웨어를 출시한 다음에 당신이 어떻게 하느냐다.

당신의 팀이 사용자의 피드백에 반응하는 속도와 태도는 하나의 완벽한 버전이 그렇게 할 수 있는 것에 비해 훨씬 더 강력하게 사용자들이 소프트웨어에 대해 품는 느낌을 결정한다. 그래서 당신이 진짜 잘해야 하는 것은 바로 피드백에 대한 반응이다.

사실 위와 같은 이유로, 목표로 했던 기능들이 다 완성되지 않은 상태였음에도 불구하고 협업 지원 서비스의 사용자 테스트를 일찍 진행하게 되었었다. 덕분에 좋은 피드백을 많이 받을 수 있었고, 이에 맞게 목표로 했던 기능들이 수정되면서 좀 더 사용자들이 만족하는 방향으로 서비스 개발이 진행되고 있다. 만약 사용자 테스트를 거치지 않고 개발에만 몰두하고 있었다면, 나중에 아주 대대적인 작업이 이루어져야 했을 지도 모르겠다.

아주 길었던 학생 생활이 올해로 끝나게 될 것 같다. 아직 진로를 정확하게 정하지는 않았지만 예비 취업준비생으로서, 학부 전공이 컴퓨터과학인지라 프로그래머의 채용 관련 챕터에서는 좀 더 눈길이 오래 머무를 수 밖에 없었다. 프로그래머 채용을 위한 인터뷰 내용에서는 어느 정도 내가 대답할 만한 것들도 있었지만, 반대로 문제 자체도 무슨 말인지 이해가 잘 안되는 것들도 여럿 있었다. 그나마 간단한 코딩 테스트같은건 할 수 있겠는데, 자료구조 같은것들은 학부때 단순히 시험만을 위한 공부를 해논 터라 몇년이 지난 지금, 머릿속에 제대로 박혀있지 않다. 석사 전공이 전산이 아니라서 전산학 관련 전공지식은 점점 옅어져가는데 ... 결국 이것도 변명이리라.

이 책을 알기 훨씬 이전에 코딩 호러 블로그를 알고는 있었는데 영문 블로그다보니 손이 그리 쉽게 가지는 않았다. (영어권)프로그래머들 사이에서 매우 유명하다고 말은 들었지만, 결국 영어다보니 관심이 잘 가지 않았던 것이 사실이다. 이렇게 재밌는 글들이 있을 줄 알았으면 자주 들락거렸을 것을. 아마존에서 jeff atwood를 검색해보니 다음 달에 그의 새 책이 나온다고 한다. 킨들 버전으로 겨우 6.99$. 아이패드에 킨들앱을 깔아야 할 때가 오는 것인가. 나도 언젠가는 스택오버플로우같은 멋진 서비스와 전문 블로그를 운영하고 싶다. 이 바람이 성공하고나면 나도 이런 재밌는 책을 낼 수 있겠지 :)