본문 바로가기
이전글/2008

개발자의 잘못된 습관들

by 물개선생 2008. 2. 4.

IBM에서 Rational 시리즈를 다루는 DevelopeR라는 이름의 오프라인 잡지를 발간한다고 한다. Rational 시리즈의 제품 소개와 함께 개발 현장의 생생한 이야기들을 함께 담을 예정이라고 들었다.

해당 잡지를 기획하고 있는 기묘의 핸쥬님으로 부터 개발 생산성을 다루는 창간호의 커버스토리를 맡아달라는 부탁을 받고, 잠깐의 짬을 내어 "김 군의 일상에 투영된, 개발자의 잘못된 습관들" 이란 글을 썼다. 벌써 작년이 되어 버린 2007년의 12월에 작성했던 글인데, 얼마 전에 출간이 되었다는 소식을 듣고 오래된 글을 들춰보았다.

이미 소프트웨어 공학의 고전이 된 Frederick P. Brooks의 "No Silver Bullet"이 출간된지 20년이 지났음에도 여전히 어떤 도구들을 도입하면, 개발생산성이 높아집니다. 라고 말하는 것이 멋적어 누구나 다 아는 얘기들로 내용을 채웠다.

글의 흐름은 7가지 습관을 정해 김군 이라는 가상의 개발자(아마도 본인)가 평소에 일하는 방법을 에피소드 형식으로 간략하게 정의하고, 그러한 나쁜 습관을 어떻게 개선해 나가야 할지를 담고 있다.

1. 자신의 근무 환경을 스스로 개선하는 노력에 너무 인색하다.
2. 일의 우선 순위를 정해 일정을 계산하고 준수하는데 소홀하다.
3. 문제에 대한 충분한 이해 없이 일단 코딩부터 시작한다.
4. 요구사항 변경에 적대적이다.
5. 반복되는 일을 제거할 시도를 하지 않는다.
6. 온갖 핑계를 들어 테스트를 피하려고 한다.
7. 핵심 기술을 제대로 이해하고자 노력하지 않는다.

계약상 전체 글을 올리진 못하지만, 정리하기 위해 요약한 내용에는 아래와 같은 3가지 글이 적혀 있다.

우리가 해결해야 문제와 그것을 둘러싼 환경은 동안 경험한 어떤 문제와도 완벽하게 일치하지 않으며, 그러한 이유로 우리는 상황에 맞는 도구와 기법을 적절하게 선정하여 도입한 다음 그것을 해결해야 문제에 맞게 최적화하여 사용해야 한다.

개발자의 내공은 3 축을 가진 큐브 형태로 측정되어야 하며, 축은 각각 선진 기술에 대한 이해, 문제를 해결해온 시간, 그리고 둘을 접목시키는 열정이다(신기술을 단지 남보다 먼저 공부했다는 , 같은 방식으로 반복되는 경험을 년씩 쌓았다는 것만으로는 내공이 쌓이지 않는다).

생산성과 품질은 서로 상충되는(tradeoff) 관계에 있지 않다. 생산성을 높이려는 근본적인 목적은 주어진 시간 내에 고객이 원하는 기능을 최고의 품질로 전달하기 위함이어야 한다.


결국 이 글을 통해 내가 얘기하고자 했던 것은 너무나 뻔한 내용이다. 완제품 형태의 은총알에 대한 미련을 버리라는 것. 우리는 이미 어떻게 하면 개발 생산성을 향상 시키고, 더 높은 품질의 소프트웨어를 고객에게 전달할지에 대한 답을 알고 있을지도 모른다는 것. 다만 실천하고 있지 못할 뿐이라는 것..

사용자 삽입 이미지
아주 오래전부터 들어왔던 부모님의 잔소리처럼, 너무나 뻔한 그 답을 실천한다는 것이 그 동안의 경험을 통해 얼마나 힘든 일인지 알고 있기 때문에, 우리는 로또를 통한 인생 역전을 꿈꾸듯이 새롭게 등장하는 신기술이나 특정 도구의 과대 광고를 그대로 믿고 싶어한다. 모회사의 상품 팩토리 솔루션이 도입되면 상품 출시가 3일만에 간단하게 이뤄진다거나, 외국 유명 업체의 EAI 제품을 도입하면 Silo 구조의 복잡한 어플리케이션 통합이 설정 만으로 간단히 해결된다거나, ALM 개념이 녹아든 IDE를 가지고 있는 모 회사의 프레임워크를 도입하면, 개발생산성이 갑자기 몇 배로 뛰게 된다거나... 심지어 거짓말하기로 작정한 듯, 모 ERP 패키지를 도입하면 전산 조직이 필요 없어지고, 현업이 직접 설정을 통해 필요한 모듈을 개발할 수 있으며, 추가 기능은 업그레이드를 통해 처리된다고 말하는 영업도 있었다. 과연? 정말..?

그동안 꾸준히 연구하고, 적용하며, 경험을 통해 개선시켜온 소프트웨어 공학이란 테두리 내에서 우리가 처한 문제를 해소해 줄 수 있는 은총알의 조각들은 다양한 형태로 어렵지 않게 찾을 수 있다.

내가 맞서고 있는 문제를 해결해 줄 수 있는 은총알이 지금은 존재할 지도 모른다. 다만, 그것은 필요한 기술 조각들을 찾아내고, 그것을 내가 가진 문제를 해결해 줄 수 있도록 최적화할 수 있는 능력과 열정을 갖춘 자에게만 주어지는 축복일 것이다. 정말로 품질이 확보된 높은 생산성을 갖고자 한다면, 오랜 기간 동안 꾸준히 열정을 갖고 기술을 갈고 닦으며, 그 열정을 동료들에게 전파하는 수 밖에 없지 않을까? 에이 바보들.. 하고 욕하는 시간에.

써놓고 보니, 결국 스스로에게 하는 충고가 되어 버렸네.
또 달려 보자, 물개야.