최근 진행하는 프로젝트는 제가생각하는 보기 드문 '천리 행군' 프로젝트인데요,
요 몇달간 이녀석때문에 야근을 좀 많이 했답니다.
개발자는 하루에 코드 50줄짜기도 버겁습니다. 이른바 '신기능'이 들어가면 그 작업은
기존 기능과는 비교도 안되게 늘어나고, 당연히 안정성도 떨어집니다. 사실 안정성은 바닥이죠.
모르는 사람들이 보기에는 그러그럴수도 있는, 제가 보기에는 '엄청난' 신기능들과,
온갖 자질구래한 기능변경들이 즐비한 모델을 너무적은 인력과 너무 적은 장비로 해나가려고 하던
시작때부터 좀 이상하긴 하더니, 결국 개발자들을 완전히 쇠진시키는 전략으로 나가네요.
3달동안 말도안되는 야근들을 했고, 지금도 진행중입니다.
오히려 일은 더 바빠져 있는 것 처럼 보입니다.
미칠 노릇이죠.
하도 답답해서 얼마나 야근을 했나 적어 봤습니다.
에엣. 그냥 공개합니다. 한 번 보시죠. 뭐. (저희 회사는 11시 넘어야 야근 인정이랍니다. ^^)
이걸 하면서 참 이렇게까지 해야하나, 하는 생각이 많이 들었습니다.
이 정도 되면 사실 누구나 그럴겁니다.
다른 많은 한국의 IT 개발자 분들도 저와 다르지는 않으실텐데,
어떻게 이 난국을 헤쳐나갈 방법은 없을까요? ㅇ_ㅇ
요즘들어 자꾸 기억이 나길래 '조엘 온 소프트 웨어'에서 발췌해 온 몇몇 구절들을 인용해 봅니다.
마이크로소프트 사는 프로젝트 관리자가 일정을 제촉한 나머지 프로그래머가 형편없는 코드라도 구현해서 서둘러 끝내려고 했음을 알게 됐습니다. 정식 일정에 버그수정단계를 넣지 않았기 때문에 발생한 문제였습니다. 버그 개수를 낮게 유지하려는 어떤 시도도 없었으며, 오히려 상황을 나쁘게 만드는 시도만이 판을 쳤던 겁니다. 예를 들어 텍스트 행 높이를 계산하는 코드를 작성했던 프로그래머의 이야기를 들어보면 기도 안찰 노릇입니다. 이 프로그래머는 일부러 "return 12;"(대부분 워드 프로세서는 기본 폰트 크기가 10아니면 12입니다.)로 만들어 놓고서는 자신이 만든 함수가 항상 올바르게 동작하지 않음을 확인하는 버그 보고서가 오기를 기다렸다고 합니다. 일정은 기껏 기능이 버그로 바뀌기를 기다리는 점검항목에 불과했습니다. 프로젝트가 끝난 다음에, 이런 관례를 무제한 버그 양산 방법론 infinite defects methodology이라 부르게 됐습니다.
이런 문제를 해결하기 위해 마이크로 소프트사는 전사적으로 무결점 방법론 zero defects methodology이라는 기법을 도입했습니다. 회사에 근무하는 대다수 프로그래머는 낄낄거렸습니다. 관리자 명령만으로 버그 수를 줄일 수 있다고 생각하는 관리 기법처럼 들렸기 때문입니다. 실제로 무결점은 어떤 특정 시점에서 모든 코드를 새로 작성하기에 앞서 버그 제거 작업을 가장 높은 우선순위에 둔다는 사실을 의미합니다.
<3장>
... ...
어리석은 관리자는 직원이 일을 더 빨리 하게 만들어서 일정을 단축하려고 합니다. 이는 너무나도 비현실적입니다. 사람을 몇 명 더 고용할 수 있을지도 모르겠습니다. 하지만 일정 수준에 이르려면 시간이 걸리므로, 첫 몇 달 동안은 50% 효율밖에는 올리지 못할 거입니다.(그리고 기존 직원은 신입사원을 지원해야 하는 업무가 추가되므로 업무 효율이 더 떨어지게 되지요.) 하무튼 현실적으로 프로그래머를 투입해서 그 효과를 보는 일은 적어도 6개월 정도 걸립니다.
개발자를 100% 쇠진하게 만드는 대가를 감수하고서 일시적으로 10% 정도 코드를 더 쓰게 만들 수 있을 지는 모르겠습니다. 하지만 이는 그렇게 큰 이익이 될 수 없으며, 옥수수 종자씨를 야금야금 먹어 버리는 상황이 되는 것입니다.
개발자가 얼마나 피곤한지 생각하지도 않고 모든 사람이 엄청나게 힘들게 일하도록 간청하는 방법으로 코드 생산성을 20% 정도 높일 수도 있겠지요. 쾅, 디버깅 시간은 2배로 늘어납니다. 어리석은 결정은 결국 소탐대실로 끝이 납니다.
결코 n에서 3n을 얻을 수는 없습니다. 당신이 이런 기적을 낳을 수 있다고 생각하면 당신회사의 주식 시세명을 좀 알려주세요. 오늘 당장 등록하겠습니다.
<9장>
첨부파일 '3' |
---|
서투른 내 이야기 (Diary)
사는 이야기
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
220 | 오랫만에 주말 이틀을 쉬었습니다. | 2008.11.17 | 6664 |
219 | 피터드러커가 말하는 목표달성 능력을 가진 사람에게 필요한 다섯가지 실행능력 | 2008.11.11 | 7425 |
218 | IT 손자병법[시작] | 2008.11.04 | 5656 |
217 | 요즘 너무 바빠서 시간이 어떻게 가는지 모르겠습니다. | 2008.10.31 | 8342 |
» | S/W 개발자는 환장합니다. | 2008.10.10 | 2234 |
215 | It's gonna be harder to make friend as we get older. 1 | 2008.10.06 | 6544 |
214 | 정말이지 황당한 일 | 2008.09.24 | 9786 |
213 | 오병이어(五餠二漁)의 기적에 관한 이야기 | 2008.09.24 | 10034 |
212 | 지난 4월에 사내 아이디어 공모에 하나 응모한게 있었더랬죠 1 | 2008.09.20 | 10342 |
211 | '나쁜 사마리아 인들'을 쓴 장하준 교수 집안 내력 아십니까? | 2008.08.25 | 15923 |
210 | 오옷 이럴수. | 2008.08.17 | 6473 |
209 | "프리젠테이션 젠" (가르 레이놀즈) 1 | 2008.07.17 | 10418 |
208 | 하늘고추를 심었었습니다. | 2008.07.16 | 9092 |
207 | 유니클락 | 2008.07.15 | 8783 |
206 | 아버지께서는 자꾸 촛불집회에 가지 말라고 하십니다. | 2008.07.01 | 9989 |
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5