태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

90%에서 끝나지 않는 프로젝트

2011/07/27 22:32 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed



Software 개발 프로젝트에서 일정이 늦어지는 경우는 흔하다. 초기 일정을 완벽하게 맞추어서 끝내는 프로젝트는 구경하기 힘들 정도이다.

그 중 대부분의 프로젝트는 90%까지는 진도가 착착 잘 나가는데 10%를 남기고 나서 일정이 계속 지연되곤 한다. 남은 10%를 끝내기 위해서 90% 끝내는데 걸리는 시간보다 더 오래 걸리는 프로젝트를 보는 것은 그리 쉬운 일이 아니다. 설령 일정에 밀려서 출시를 해도 버그가 많은 알파버전 수준의 제품을 출시해서 고객들의 원성을 사기 일쑤이다.

경영자는 매달 개발자들이 하는 다음달이면 끝난다는 얘기를 반복해서 듣게 된다.

이러한 상황을 개발자들은 그렇게 심각하게 보지 않는 경우가 많다. 하지만 비즈니스를 하는 사람은 이것이 비즈니스를 하는데 얼마나 심각한 문제가 되는지 잘 알고 있다.

소프트웨어 공학은 프로젝트 일정을 단축하고 계획대로 개발할 수 있도록 하기 위한 방법에 온 힘을 기울여 왔다. 소프트웨어 공학에서 다루는 거의 모든 분야는 일정 준수에 포커스를 하고 있다고 해도 과언이 아니다.

남은 10%의 일정이 그렇게 잘 안끝나는 주요 원인들은 다음과 같은 것들이 있다.
  • 스펙을 충분히 제대로 작성하지 않았다. 단순한 요구사항을 가지고 개발자들이 알아서 개발을 한다.
  • 설계가 허술해서 인터페이스가 자주 바뀐다. 통합이 잘 안되서 통합하는데 시간이 많이 소요된다.
  • 상세 일정이 없이 큰 단위의 마일스톤만 가지고 있다. 일정관리는 거의 안한다.
  • 리스크 관리는 해본적도 없다.
  • 제품이 개발되기 전까지 스펙이 공유가 안되서 영업이나 경영층에서 프로젝트 막바지에 제품의 모습을 보고 요구사항을 계속 추가로 요청한다. 
  • 프로젝트 일정에 테스트 일정을 충분히 고려하지 않았다. 테스트 케이스를 제대로 만들지 않고 테스트 인력이 부족해서 테스트 할 때마다 계속 새로운 버그가 발견되서 끝나지를 않는다.
개발 방법론이 라이프 사이클들은 여러가지가 있고 최근에 유행을 타는 것들도 있지만 결국에는 스펙을 상세히 제대로 작성하는 것이 근본적인 프로젝트 일정을 지키는 방법이다. 스펙을 제대로 작성하지 않고 여러가지 기법으로 해결할 수는 없다. 스펙을 작성하는 방법이 어찌되었든 스펙이 정확하고 상세해야 정교한 일정 예측 및 관리가 가능해지게 된다. 이런 경험이 점점 쌓이면 일정을 지키는 프로젝트가 점점 늘어 갈 것이다. 그러기 때문에 스펙을 잘쓰는데는 10~20년의 경험이 필요한 것이다.

대충 개발자들이 알아서 개발해주고 일정은 하늘(개발자인가?)에 맡기는 방법에 익숙해진 개발자들은 이런 정교한 일정관리에 거부감을 가질 수는 있으나 결국에는 일정을 지키는 방법이 개발자의 역량을 향상시키는 방법과도 일치하기 때문에 개발자 손에 달린 프로젝트가 개발자에게 파워를 가져다 준다는 생각은 버리는 것이 좋다.

프로젝트 일정은 10%가 남았다면 진짜로 10%만 더 지나면 끝나야 한다. 

 * 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
image from
 http://dimland.blogspot.com/2010_08_01_archive.html 
저작자 표시 비영리 변경 금지

전규현 프로젝트/일정 ,

Trackback Address: http://allofsoftware.net/trackback/229 관련글 쓰기
  1. 프로젝트 일정 자체가 범위와는 무관하게 비즈니스 목표일정으로 정한 후 최대한 많은 기능을 넣는 프로젝트도 있고, 기획이 되지 않은 상황에서 일정추정을 강요하는 환경도 많이 있습니다. 이런 경우는 어떻게 대처해야 좋을지 혹시 좋은 의견이 있으신지요? ㅠㅠ

  2. 이런 프로젝트는 범위도 불투명한 상황에서 일정이 남는다 모자른다 아무리 싸워도 아무 의미가 없게 됩니다. 개발자들은 막연히 일정이 모자른다고 하지만 또한 대부분 늦어지지만, 초기에는 아무 근거도 없이 동대문시장에서 물건 깎듯이 아규를 하게 됩니다.

    가장 좋은 방법은 최대한 빨리 스펙을 쓴 다음에 근거를 가지고 얘기를 하는 겁니다. 일정의 근거가 명확해지면 기획이나 영업에서 무조건 우기기에도 궁색해지게 됩니다.

    또한 기획도 되지 않은 상황에서의 일정 추정은 무리지만 일단 대략의 일정을 주고 꼭 스펙을 써봐야 정확한 일정을 다시 산정할 수 있다고 강조를 해야 합니다. 이를 잘 이해 못하는 사람들도 많지만 이해를 시켜야 합니다.

    기능을 무조건 많이 넣는 것은 키친씽크입니다. 쓸데 없는 기능을 잔뜩 넣는 겁니다. 스펙을 쓰고 WBS에 근거해서 상세 일정이 나와야 쓸데 없은 기능으로 얼마나 일정이 늦어지는지 근거를 제시할 수 있고 이런 기능은 빼고 출시 할 수 있습니다.

    결국 근본적인 해결 방법이 가장 좋은 방법입니다. 문제는 스펙을 잘 작성하는 것이 소프트웨어 개발에서 가장 어렵다는 것입니다. 꾸준히 경험을 쌓아야 합니다.

  3. 의견 감사합니다. ^^ 고객이 무엇을 하고 싶은지도 모르는 상황에서 스펙을 이끌어낸다는 것은 무척이나 어렵군요 ㅠㅠ. 하지만 이게 바로 경험이고 능력이 아닐까 생각합니다. 말씀하신 부분을 명심해서 실천을 해보도록 하겠습니다.

  4. 한가지 더 말씀드리면 고객이 무엇을 하고 싶은지 모르는 상황은 매우 자연스러운 현상입니다. 특히 우리나라에서는 고객이 전문가도 아니고 노력도 안합니다. 우리나라가 좀 심하긴 하지만 외국이라고 고객들이 그렇게 잘 알지 못합니다.
    그래서 스펙을 제대로 작성하는 것이 어렵고 그게 실력의 차이입니다.
    고객이 잘 모르고 개발팀도 잘 모르면 산으로 갈 수 밖에 없습니다. 코딩하기 전에 스펙을 제대로 적고 개발해야 다 만들어 놓고 기능 추가 변경을 반복하지 않을 수 있고 기간과 비용이 절약됩니다.
    아무튼 코딩은 늦게 할 수록 이익입니다. ^^ 이걸 이해하려면 한참 걸립니다.

문서를 작성하면 더 오래 걸린다는 고정관념

최근에 국내 유수 대학의 컴퓨터 공학 교수를 만난 적이 있다. 그 교수님도 문서를 작성하면서 Software를 개발하면 더 오래 걸린다고 굳게 믿고 있었다. 어느 정도 이해가 되는 상황이다. 원래 소프트웨어 공학은 실전에서..

이슈를 모으기도 정말 어렵다.

많은 회사들이 개발 프로세스 개선을 하겠다고 선진 개발 방법론을 흉내내거나 실패한 대기업의 프로세스를 가져다가 적용하곤 한다. 복잡한 프로세스와 많은 Template를 가져다가 적용해보려고 하는데 대부분은 실패를 한다. 기초..

변화에 실패하는 9가지 고정관념

회사는 끊임없이 변화하지 않으면 지속 성장하지 못한다. 하지만 변화는 피와 살을 깍는 고통을 동반하고 또 많은 회사가 변화에 실패해서 성장하지 못하거나 사라져간다. 보통의 사람들은 대부분 변화를 싫어하고 기존에 하던대로 계속..

좋은 프로그래머가 되는 24가지 방법

1. 프로그래밍에 열정이 있어야 한다. 열정이 없고 즐기지 못하면 평생하기 어려운 일이다. 2. 프로그래밍 기초 원리를 완전히 이해해야 한다. 원리를 모르면 근본적인 해결을 할 수 없다. 3. 문제 해결 능력을 키워야 한다...

요즘 실리콘밸리에서는...

얼마전 실리콘밸리의 한 Startup company에서 CTO로 일하고 있는 오랜 친구가 한국에 놀러와서 같이 여행을 갔다. Informix에서 소프트웨어 엔지니어로 시작해서 한 20년 정도 일한 중국인 친구다. 같이 일을..

전문가 vs. 책임자

우리나라 조직문화는 전문가보다 책임자를 선호한다. 조직의 장이 책임을 지고 모든 일을 알아서 하는 것이다. 상명하복 관계 위주다. 경영자가 SW개발에 대해서는 잘 모르는 경우 누구 한명이 책임지고 개발해줬으면 하는 생각을 하..

소프트웨어 회사의 자산은?

소프트웨어 회사의 자산은 무엇일까? 흔히 개발자가 소프트웨어 회사의 재산이라고 한다. 이런 회사일 수록 회사가 가지고 있는 것은 정말 개발자밖에 없다. 또한 파악하기 어려운 한 무더기의 소스코드가 있다. 개발자들이 나가면 이..

관리자가 이런 일까지?

우리나라 SW 조직에서 관리자란 위치는 참 애매한 위치다. 물론 전문 관리자라면 얘기가 다르지만 왕년에 SW를 조금 개발해 본 경우가 애매하다. 개발팀에서 가장 경험이 많은 SW 개발자들이 주로 팀장이 되곤 한다. 이 경우와..

과거의 성공이 발목을 잡을 때

수많은 소프트웨어 회사들이 첫번째 성공을 거두고 나서 두번째 도약에 실패하고 사라져간다. 물론 첫번째 성공도 어렵지만 이미 성공의 경험이 있고 방법을 알고 있는 회사들이 두번째 또는 세번째에는 많이 실패하는 이유가 무엇일까?..

스펙을 제대로 작성하는 것은 구식이다?

'소프트웨어 개발 방법이 얼마나 발전했는데 아직도 스펙을 제대로 작성하고 개발을 하는가?' 라고 하면서 스펙 작성에 반대하는 주장을 하는 사람들이 있다. 스펙, 설계를 작성하고 구현을 하고 테스트를 하는 방식으로 개발하는 것..