구본형 변화경영연구소

연구원

칼럼

연구원들이

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

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

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

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

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

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

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

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

VR Left
번호 제목 글쓴이 날짜 조회 수
5092 어제보다 나은 식당(47) - 프롤로그 6 박노진 2006.07.19 3875
5091 어제보다 나은 식당(48) - 프롤로그 7 박노진 2006.07.19 4011
5090 어제보다 나은 식당(49) - 브랜드를 만들어라 박노진 2006.07.23 4586
5089 어제보다 나은 식당(50) - 손익은 일일분석에서 판가름 난다 [2] 박노진 2006.07.23 4856
5088 어제보다 나은 식당(51) - 마지막 회 [6] 박노진 2006.08.02 3788
5087 식당경영과 ISO(1회) [1] 박노진 2006.08.17 4394
5086 식당경영과 ISO 2회 - 3년 계획(1) 박노진 2006.08.20 3813
5085 식당경영과 ISO(3회) - 3년 계획(2) 박노진 2006.08.22 4281
5084 식당경영과 ISO(4회) - 걱정거리 박노진 2006.08.23 4267
5083 식당경영과 ISO(5회) - 업무분장 [1] 박노진 2006.08.29 6509
5082 식당경영과 ISO(6회) - 표준화를 한다는 것의 의미 박노진 2006.08.31 4249
5081 식당경영과 ISO(7회) - 시스템 교육 [1] 박노진 2006.09.04 4210
5080 -->[re]차별화와 표준화 [1] 부지깽이 2006.09.10 4355
5079 기가 막힌 반찬 하나가 [6] 자로 2006.09.27 4511
5078 레스토랑 마케팅 2 - 10년 동안 배운 단 한 줄의 마케팅구절 박노진 2007.01.18 3977
5077 레스토랑 마케팅 1 - 시작 박노진 2007.01.18 3949
5076 레스토랑 마케팅 3 - 외식산업에 대한 이해 박노진 2007.01.23 5158
5075 레스토랑 마케팅 - 마실 1년 그리고(1) 박노진 2007.02.23 3668
5074 레스토랑 마케팅 - 마실 1년 그리고(2) [1] 박노진 2007.02.23 3595
5073 (008) 미래 키워드 5개와 나의 길 [5] 校瀞 한정화 2007.04.29 3655