정보, 통신, 기술/읽은 것들

"대한민국에는 소프트웨어가 없다." 중 개발시스템에 대하여

최윤호 2007. 2. 21. 21:06
반응형

이런 우화가 있다. 두 개발 그룹에게 프로젝트 기간을 정하고 주어진 기간 안에 소프트웨어 개발 프로젝트를 주었다.

첫째 그룹을 즉시 열심히 코딩을 시작했다.둘째 그룹은 매일 만나서 회의만 하였다. 회의에서 서로 의견 충돌도 많다.

중반부에 이르렀다. 첫째 그룹은 거의 다 끝냈다고 했다. 둘째 그룹은 프로그램은 한 줄도 없고 회의만 계속하였다.

후반부에 이르렀다. 첫째 그룹은 갑자기 회의가 빈번해져다. 회의도 심각해졌다. 서로 내가 맞느니 네가 맞느니 하며 종일 싸웠다.
그 와중에도 프로젝트를 완수해야 했기에 여기저기 고쳐가면서 밤새워 일해서 적당히 땜빵으로 넘길 수 있게 겨우 마무리하였다.
겉으로는 문제없는 것처럼 보이나 서로 불안한 마음을 감출 수 없었다. 속으로는 언제 터질지 모르는 시한 폭탄이 남아 있는 것이다.

둘째 그룹은 후반부에 이르러 코딩 작업을 시작하였다. 코딩 단계에 들어가서부터는 서로 얘기도 많이 하지 않았다.
각자 맡은 부분이 끝난 후에 모두 모여서 통합을 시작했다. 아주 작은 사소한 문제들이 있었으니 순조롭게 통합이 끝나고 테스트를 시작했다.

첫째 그룹은 코딩이 개발이라는 생각이 머릿속에 박혀 있다.
코딩은 전체 개발기간 중의 20%에 불과하다. 그 이상 코딩에 시간을 보내면 근본적으로 개발 시스템이 잘못되어 있는 것이다.

** 김익환, "대한민국에는 소프트웨어가 없다."

무조건 그렇다. 코딩에 개발기간의 20%를 넘게 쓰면 잘못된 것이다.
시나리오 작성을 하든, UML 설계를 하든, DB 관계도를 그리든, 일정을 정제하든, 사전 교육을 하든, 개발에 있어 코딩은 20%, 딱 그만큼만 차지해야 한다.

그러면 얼마나 좋겠냐만은 현실은 그렇지 못하다.
지금 당장 코딩을 하고 있고, 테이블 만들고 있고, 데이타 입력하고 있어야 작업하고 있고, 작동하는 "프로그램" 개발하고 있는 것이다.

김익환님이 80%의 시간을 어디에 사용하는 지는 모르겠지만, 50%만 되도 좋겠다.
회의 하고, 아이디어 정리하고, 설계하고, 확인 받아 공유하고, (개발 하고), 점검 받고, 개선하고, 다시 점검 받고, 마지막으로 정리하는 시간이 50%만 되도 좋겠다.

그럼 중복된 코드도, 성능 나쁜 코드도, 다시 여기 저기 고쳐야 하는 코드도, 런타임 에러 나는 코드도 없을 텐데.
내 생활도, 내 인생도 더 여유롭고, 더 넉넉할텐데 말이다.

반응형