구본형 변화경영연구소

연구원

칼럼

연구원들이

  • 불씨
  • 조회 수 1518
  • 댓글 수 0
  • 추천 수 0
2019년 2월 23일 23시 17분 등록
바위를 옮기는 일은 가능한가라는 질문에 대답은 '그렇다'이다. 전제 조건은 '조건이 없다면'이다.

스티브 멕코넬은 저서 <프로페셔널 소프트웨어 개발>에서 소프트웨어를 만드는 것과 바위를 옮기는 것의 유사성에 대해 이야기한다. 당신이 고대 이집트에서 파라오의 명령으로 피라미드를 건설하는 감독관이라고 가정하자. 바위 하나의 무게는 수십톤에 이른다. 이 큰 바위를 강가에서 사막의 공사현장까지 운반해야 한다. 바위를 옮기는 일은 엄청난 노동력을 필요로 한다. 그렇기에 어디로 옮길 것인지, 어떻게 옮길 것인지에 대한 명확한 사전 계획이 짜여진 후에 실제 행동에 들어가는 것이 마땅하다. 지렛대와 통나무발판을 이용해서 매일매일 꾸준히 바위를 옮겨야 한다. 한번에 움직일 수 있는 거리는 제한적이므로, 하루아침에 커다란 바위를 강가에서 피라미드 건설현장으로 옮길수 있다는 망상은 하지 않을 것이다.

마찬가지로 소스코드를 바위에 비유한다면 마지막 순간에 온힘을 다한다고 해도 채 반도 개발되지 않은 소프트웨어가 하루 아침에 완성될 수 있다는 허황된 희망은 갖지 않을 것이다. 하지만 많은 개발팀들이 프로젝트 초기에는 거의 긴박감을 느끼지 못한 채로 시간을 낭비하다가 프로젝트를 끝내야 하는 기한이 다가오면 절망에 사로잡혀 움직이지 않는 바위를 밀다가 자포자기 상태에 빠지게 된다. 멕코넬은 이것을 '마지막 순간 증후군'이라는 말로 표현한다.

이런 '마지막 순간 증후군'에 걸릴수 밖에 없는 이유 중 하나는 제대로 된 설계가 없이 무작정 바위를 밀면서 프로젝트를 시작하기 때문이다. 멕코넬은 이것을 일단 작성하고 고쳐보는 개발(Code and Fix development)라고 부른다. 일단 무작정 바위를 옮겨놨다가 잘못된 곳으로 옮겼음을 깨달으면 바위를 다시 옮기는 식이다. 시도하고 문제가 있으면 다시 고친다(Trial & Error). 이를 한국의 개발자 용어로 '삽질'이라고 부른다. 유사어로 '맨땅에 헤딩하기'가 있다. 최고의 경험적 방법이지만, 안타깝게도 회사의 고위층에게 이런 구석기시대의 비효율을 감내해줄만한 인내가 전혀 없다는 것이 문제다.

대부분 한번 바위를 옮기고 나면, 잘못된 곳으로 옮긴 바위덩어리를 되돌리거나 방향을 트는 것은 매우 어려운 일이다. 결국 채석장에서 새로운 바위를 가져다가 다시 옮기게 된다. 자신들이 지성의 결정체라고 자부하는 자존심 강한 엔지니어들이 어찌하여 이런 어리석은 행태를 반복하는 것일까? 가장 큰 이유는 그것이 가장 쉬운 방법이기 때문이다. 간단하다. 그냥 바위를 들어다 옮기면 된다. 잘못 옮겼으면 다른 바위를 옮기면 된다. 이런 바보같은 행태를 반복할 수 밖에 없는 또 다른 이유는 조급증에 시달리는 관리자와 경영진에게 물리적인 진행상황을 보여줄 수 있는 고육지책이기 때문이기도 하다.

또하나의 이유는 경험과 이론이 부족한 경우다. 모자라고 경험없는 수많은 개발자들끼리 머리를 맞대고 고민해봤자, 경험있고 이론을 갖춘 단 한명의 개발자의 기획과 설계를 따라갈 수는 없다. 중요한 프로젝트의 경우 외부로부터의 아웃소싱 또는 해당 분야의 이론을 갖춘 경험있는 개발자 채용은 반드시 필요하다. 회사에 중요하지 않는 프로젝트가 어디 있겠냐만은, 이런 전사적인 지원없이 모자란 사랃들끼리 머리를 맞대고 시행착오를 거치는 프로젝트가 적지 않다. 이 경우 삽질은 피할 수 없다. 가능한 미리 많은 삽질을 해봐야 하며, 다양한 삽질을 해봐야 한다.

사실 삽질은 체험으로 배우는 가장 확실한 방법이기도 하다. 실제 해보지 않고서는 알 수 없다는 주장은 어느정도 진실이다. 허나 무분별하게 맨땅에 헤딩하는 것을 경계하고자 한다면, 우리는 생각이라는 것을 먼저 해야만 한다. 철학자 하이데거가 말한대로 생각이라는 것은 익숙하지 않은 상황과 조우할 때 생겨난다. 익숙하지 않은 것들을 많이 해볼수록 생각은 생겨나고 삽질은 정교해진다. 단순히 무의식적으로 똑같은 삽질을 반복해봤자 나오는 것은 흙덩어리뿐이다. 버그를 잡는다고 똑같은 코드에 printf만 넣는 것을 반복할 것이 아니라, 디버거도 써보고 다른 모듈과의 연계성도 검토해봐야 한다. 익숙하지 않더라도 새로운 시도로써 삽질의 범위를 넓히고, 동시에 정교한 타겟팅 능력을 길러야 한다. 삽질을 가장 잘 하는 사람은 한번의 삽질로 가장 많은 땅을 팔 수 있는 사람이 아니다. 가장 삽질을 잘 하는 사람은 어느 곳에 삽을 대야 하는지 아는 사람이다. 그것은 경험과 이론이 적절히 결합되어야 가능한 경지다. 소프트웨어 개발의 절반은 삽질이지만, 제대로 된 삽질은 고도의 기술과 예술적 경지에 이르러야 가능한 일이다.
IP *.121.156.75

덧글 입력박스
유동형 덧글모듈

VR Left
번호 제목 글쓴이 날짜 조회 수
132 나의 보물창고 '동대문 종합시장' - 초딩? 버전 file [2] 불확 2011.02.24 7048
131 [Monday,String Beans-#3] 아산 현충사 _ 이순신과 이몽학 file [8] [2] 양경수 2011.09.26 7058
130 [크로아티아 여행기] 배추벌레, 나비를 꿈꾸다.4 file [3] 춘희 2009.09.03 7139
129 단상(斷想) 44 - 피투(Geworfenheit, 彼投)가 아닌 기투(Entwurf, 企投) file 書元 2011.01.23 7160
128 [19] 시골생활을 꿈꾸며 [8] 촌년지혜 2008.09.09 7169
127 (30)영혼이 깃든 자작나무 file [8] 이은미 2008.12.23 7182
126 삶의 전쟁터, 동대문 원단시장 [2] 혜향 2009.06.01 7189
125 어제보다 나은 식당(6) - 음식의 트렌드, 퓨전과 웰빙 박노진 2006.06.08 7205
124 강점은 타고난 것인가? - 사주로 비교한 나의 5대 강점 이야기 [27] 박경숙 2010.07.05 7220
123 한식 패스트푸드2 file 오세나 2005.09.13 7283
122 [스몰비즈 마케팅 사례] 5.블레어 윗치 file [2] 오세나 2009.10.06 7325
121 자기조직, 엔트로피, 네겐트로피 그리고 산일구조 [2] [1] 백산 2009.08.02 7370
120 글로벌 브랜드 이렇게 이겼다 _ 롯데리아 [1] 오세나 2005.09.13 7420
119 (21) 흔들리는 지평선 file [8] 時田 김도윤 2007.08.28 7430
118 [사자#8] 코펠 관계론 file [3] 희산 2009.12.08 7482
117 노동과 경영 19회 - 한국적 생산방식, 그 가능성을 찾아서(4) : SLIM system 박노진 2006.03.04 7490
116 미리 떠나는...2009년 봄날 단편 file [1] 이은미 2009.02.17 7493
115 벽속에 피어나는 꽃 file [3] 이은미 2008.09.29 7543
114 [스몰비즈 마케팅 사례] 2. 지구를 지키는 디자인 file [6] 오세나 2009.10.06 7575
113 [호랑이2] 자신의 현재보다 미래를 파는 file [3] [5] 한정화 2009.10.13 7582