코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기


후기

'조엘 온 소프트웨어'를 읽었을 때 기억이 난다. 아주 쉽게 읽히면서도 ‘아하’하는 감탄사가 절로 나오는 글들을 보며 시원한 청량감을 느꼈었지. 이 책도 'Coding Horror'라는 유명 블로그의 글을 엮은 것이라 그런 기대를 하고 읽었으나, 생각보다 쉽게 읽히는 편은 아니었다. 마치 해 질 무렵 골방에서 읽는 듯 다소 어두운 기운이 느껴 졌다고 할까. 분명 좋은 글들이긴 하지만, 나와는 좀 맞지 않는 책이었던 것 같다. 


메모

1부 쓸데없는 일을 줄이는 법

하룻밤 사이의 성공: 사실은 몇 년이 걸린다. 

지메일의 성공은 상당히 오랜 시간에 걸친 노력의 일환이었다. (지메일 핵심 개발자 폴 부크하이트(Paul Buchheit))

하룻밤 사이에 성공은 거둔다는 개념은 상당히 왜곡된 생각이며, 심지어 위험하기까지 하다. 뭔가 새로운 것을 시작한다면 멀고 긴 여행을 염두에 둬야 한다. 물론 굼뜨게 행동하는 것을 변명하려는 것은 아니다. 그와 반대로 매우 빠르게 움직여야 한다. 그렇게 하지 않으면 그것은 너무나 먼 장거리 여행이라서 목적지에 도달하지 못할 수도 있다. 

성공은 여러 해에 걸친 시간이 필요로 한다. 여기서 여러 해라는 것은 비유가 아니라 정말로 그렇다는 의미다!


2부 프로그래밍

무능한 동료나 엉터리 관리자에게 둘러싸인 채 덫에 걸렸다는 좌절감을 느끼는 소프트웨어 개발자들은 혼자 일하는 것이 달콤한 유혹처럼 다가온다. (혼자 개발하는 것은) 역설적이게도 당신을 쇠약하게 만든다. 

홀로 진공 상태에서 일을 한다면 꽉 막힌 생각으로부터 당신을 꺼내 줄 사람도 없고, 어느 누구도 당신의 절규를 듣지 못한다. 

프로그래밍을 진지하게 생각한다면 반드시 다른 동료와 함께 일하는 환경을 고집해야 한다. 

혼자서 일하는 방식으로는 얼마 가지 못한다. 다른 영리한 프로그래머를 곁에 두도록 노력하라. 사무실 안에서 가장 멍청한 존재가 되려고 노력하라. 그렇게 하면 소프트웨어 개발이라는 것이 대부분의 사람들이 생각하는 것보다 훨씬 더 사회적인 활동이라는 사실을 깨닫게 될 것이다. 


3부 웹디자인의 원칙

데릭 시버스(Derek Sivers)는 스티브 잡스와 관련된 재미있는 일화를 소개했다. 

(2003년 6월, 아이튠즈 뮤직스토어에 대한 프레젠테이션 중 여러 기능에 대한 아이디어 질문을 받던 스티브 잡스) 그런 기능을 모두 더하는 것은 아름답지 않습니다. 혁신이라는 것은 모든 기능에 대해 '예'라고 대답하는 것이 아닙니다. 가장 결정적인 기능을 제외한 나머지 모두에 대해 '아니오'라고 대답하는 것이 혁신입니다. (데릭 시버스(Derek Sivers)가 밝힌 스티브 잡스와 관련된 재미있는 일화)

하지만 뭔가 대답하기 전에 자기가 수행하고 있는 일을 신중하게 고려해야 한다. 


4부 테스트

딜리셔스 라이브러리를 만든 윌 쉬플리(Wil Shipley)는 왜 단위테스트를 그렇게도 싫어할까?

단위 테스트라는 것은 수많은 엔지니어에게 지루함을 견디고 아무것도 찾아내지 않은 것의 대가로 급여를 지급하는 수단에 불과하다. 이런 것에 비하면 베타 테스터를 고용하는 편이 훨씬, 아주 훨씬 더 나은 결과를 낳는다. 

자동화된 테스트 스위트는 실제 베타 테스터들이 현업에서 수행하는 베타 테스트에 미치지 못한다. 사용자는 예측 불가능하기 때문이다. 

소프트웨어 개발자들에게서 관찰한 온갖 종류의 직업적 오만함 가운데 아마도 최고의 것은 우리가 스스로를 전형적인 유형의 사용자라고 생각하는 것일 것이다. 


5부 당신의 사용자를 알라


6부 우리가 관심을 둬야 할 것들


7부 게이밍


8부 읽어볼 만한 내용

당신은 스스로 일해야 한다. 

예를 들어 나는 내가 여기에 쓰는 글을 누군가 읽을지에 대해 조금도 고민하지 않는다. 나는 무엇보다도 우선 나 자신을 만족시키기 위해 글을 쓴다. 다른 사람이 이 글을 읽고 도움을 얻는다면, 좋은 일이다. 그것은 환영할 만한 부수적 효과에 불과하다. 만약 누가 이 글을 읽는지, 왜 읽는지, 혹은 한 사람이라도 읽는 사람이 있을지 등에 대해 고민한다면 오히려 너무 긴장이 되서 아무것도 쓰지 못할 것이다! 그것은 최악의 생산성에 해당하는 결과일 것이다. 

여러 연구 결과에 따르면 트라우마는 남기는 사건을 경험한 사람들은 매일 그 일에 대해 자신이 가장 깊게 느끼는 생각과 감정을 일기처럼 적는 것이 도움이 된다고 한다. (중간 생략) 그 일이 자신의 개인적인 삶과 직업적인 삶에 어떤 영향을 끼쳤는지를 포함해서 반추하며 적어보라고 이야기 했다.  이러한 연습은 비록 순간적이고 단순한 것에 불과하지만, 결과적으로 건강상의 문제를 줄어들게 하고 자존감과 행복감을 향상시키는 방식으로 참가자들의 심리적, 물리적 행복에 커다란 도움을 주는 것으로 드러났다. 

어째서 트라우마를 준 사건을 이야기하는 것은 별다른 영향을 주지 않는데, 그것에 대해 글로 적는 것은 그렇게 실질적인 도움을 주는 것일까? 심리학적 관점에서 보면, 말하는 것과 글을 쓰는 것은 완전히 다른 일이다. 말을 하는 것은 종종 일정한 구조가 없고, 제대로 조직화돼 있지 않고, 심지어 무질서하기도 하다. 그에 비해 글을 쓰는 것은 어떤 일이 일어났고, 그에 대한 해결책이 무엇인지를 생각할 수 있는 틀이 잡히 이야기 흐름과 구조를 형성하는데 도움을 준다. 짧게 말해서 말하는 것은 혼란스러운 감정을 더하지만 글을 쓰는 것은 좀 더 체계적이고, 해결책에 기초한 접근을 가능하게 한다.



댓글 쓰기

0 댓글