Talk with Hani

로망은, 실현되리라!

SW프로젝트 성공하고 싶다면, 간트차트를 버려라!

 

간트 차트의 문제 - 정확하지 않지만 정밀하다

SW프로젝트나 일반 프로젝트를 해 본 분들이라면, 누구나 간트 차트를 들어 보셨거나 만들어 보셨을 겁니다. SW프로젝트를 시작할 때, 프로젝트에서 할 일을 잘게 쪼갠 WBS를 작성하고, WBS에 있는 일들의 인과관계를 고려해서 대개 MS 프로젝트를 사용해서, 예쁜 멋진 간트 차트를 작성하죠. 이렇게 간트 차트를 작성하면 놀랍게도 프로젝트가 몇 월, 몇 일, 몇 시에 끝날지 알려 줍니다.

간트 차트가 몇 월, 몇 일, 몇 시에 끝날지 알려줄 있는 이유는, 핵심 경로(Critical Path)를 계산해 주기 때문이죠. 그런데 간트차트의 비극은 바로 이 핵심 경로에서 시작하죠. 사실, 간트 차트가 알려주는 완료일은, 현실 세계에서 수많은 완료일 가운데 하나일 뿐입니다. 대개 프로젝트와 멀리 떨어진 경영층이나 관리자들은 간트차트가 알려주는 완료일을 진짜 완료일이라고 생각하는 경향이 있습니다. 일정이 간트 차트를 따라서 진행되지 않으면, 관리자들은 프로젝트에 무슨 문제가 있다고 확신하고 PM에게 압박을 가하죠.

일정에 쪼들리지 않을려고, PM이나 팀원들은 일마다 버퍼를 두게 되고, 이 때문에 핵심 경로는 늘어나고 결국 프로젝트 전체 일정은 늘어나게 되죠.* 뭐 이렇게 일정이 늘어난다고 해서 경영층이 그것을 묵과하지 않습니다. 엄청난 노력을 들여서 99%의 정확성이 있는 일정을 작성해도(가능한 일인지 모르지만요), “일정 좀 줄여 봐!”라고 경영층 한 마디면 프로젝트는 침몰하게 되는 마당에, 버퍼가 잔뜩 들어 있는 일정을 경영층이 쉽게 봐주지도 않습니다. 뭐 이런 저런 이유로, 간트 차트를 두고 일정을 늘릴려는 팀원과 일정을 줄여 보려는 경영층 간의 힘겨루기가 일어납니다.

간트 차트를 사용할 때 마인드 - 모든 것을 예측하려고 한다

사람은 예측을 잘 하지 못합니다. 마트에 가서 1주일 먹을 것을 잔뜩 사오거나, 도서관에서 오늘 공부할 교재를 가방 가득히 넣어 가거나, 회사에서 오늘 할일 목록을 LCD 모니터만큼 채우는 것을 보면, 우리는 정말로 낙관적이거나 예측을 잘 하지 못하는 생명체라는 생각이 듭니다. 그런데 길게는 12개월 후나 짧게 6개월 후의 프로젝트 일정을 TV편성표처럼 작성한다는 게 정말로 올바른 일이거나 가능한 일일까요? 12개월 후에 테스트라는 업무를 할 것을 예측할 수 있지만, 하루 단위로 어떤 기능을 테스트한다는 계획을 세운다는 건, 신이 아닌 이상 불가능합니다. 그런데, 우리는 간트 차트를 사용하면, 전지전능한 신이 된 듯이 예측을 합니다.

간트 차트는 누구의 것?

프로젝트 계획을 세울 때, 일반적으로 팀원들은 프로젝트 계획을 프로젝트 관리자가 알아서 할 것이라고 생각합니다. 관리자들도 프로젝트 계획을 세우는 일은 자시만이 할 일이라고 생각하죠. 그리고 프로젝트 관리자는 이런 인식을 토대로 프로젝트 계획을 마이크로소프트의 프로젝트를 활용해서 멋진 간트 차트로 만들어 팀원들을 모아놓고 일정을 설명합니다.

스크린에는 관리자가 심혈을 기울려 만든 3레벨짜리 WBS가 흘러갑니다. 팀원들은 팔짱을 끼고 의자에 기대어 관리자가 만든 프로젝트 계획을 묵묵히 바라봅니다. 팀원들은 왠지 저대로 하면 프로젝트가 성공할 것 같다는 생각도 들고, 한편으로 참으로 빡빡하게 일정을 짜놓은 팀장의 세심함에 가슴이 답답해집니다. 그리고 원인 모를 좌절감 내지 죄책감을 느낍니다. 계획 과정에서 적어도 뭔가를 했어야 하지 않았을까 하는, 그런 느낌 말이죠.

From 겸손한 개발자가 만든 거만한 소프트웨어

간트 차트의 다른 문제점으로, 프로젝트 일정을 팀원들이 자신이 것이 아닌 PM의 것으로 생각하게 합니다. 회의실에 팀원들을 모아놓고 MS 프로젝트를 사용해서 일정을 작성하는 걸 생각해 보죠. 프로젝터에는 PM의 노트북 화면에 있는 PM 프로젝트가 보일 겁니다. 팀원들은 회의 탁자에 둘러 앉아서 팔짱을 끼거나, 업무 수첩에 낙서를 하거나, 동료와 잡담을 하면서, PM이 MS 프로젝트에 입력하는 걸 ‘구경’할 가능성이 높습니다.

PM은 팀원들의 이야기를 들어가면서 WBS를 만들고 작업 사이를 연결하는 걸 자신의 역할이라고 생각하겠죠. 그리고 팀원들도 프로젝트와 관련된 중요한 작업을 하는 것 같은데, 당장 자신이 타이핑을 하지 않기 때문에, 자신의 역할이 아니라고 생각합니다. 즉 회의실에 모여 앉아서, PM이 MS 프로젝트를 사용해서 일정을 작성할 때, 그 일정은 팀원의 것이 아닌 PM의 것이라는 인상을 심어줄 수 있습니다.

그래서? 어떻게 하라고?

전 앞에서 설명 드린 이유로, SW개발 프로젝트를 할 때, 특히 명확하지 않은 것을 개발할 때 간트차트를 활용하는 걸 좋아하지 않습니다. 하지만 할 일이 명확하고 몇 번 경험이 있는 프로젝트는 어느 시점에 어떤 인력이 무슨 일을 할지 예측할 수 있기 때문에, 간트 차트가 도움이 될 수 있습니다. 즉 처음부터 어떤 일을 할지 거의 대부분 알 때에만, 간트 차트를 활용합니다.

이런 경우를 제외한다면, 프로젝트에는 불확실하게 지나치게 많기 때문에, 불확실성과 변화를 포용하려고 연동 계획하기(Rolling wave planning)과 포스트잇을 활용한 일정잡기를 사용하죠. 이 두 가지 방법은, 매니지 잇에서 자세하게 설명되어 있습니다. 상세한 내용을 원하시는 분들은 책을 참조하세요.

연동 계획하기는 앞으로 4주간의 상세한 일정만을 작성하는 계획하기입니다. 4주 이상 넘어가는 일정은 불확실한 게 많기 때문에 정확도가 떨어집니다. 따라서 일단 4주간의 일정 계획을 세운 다음, 1주일이나 2주가 지난 뒤, 프로젝트가 진행되고 나서 경험이 쌓였을 때, 다시 4주간의 일정을 세우는 방법입니다. 이런 계획을 세울 때, PM 혼자서 타이핑을 하는 MS 프로젝트를 이용해서 일정을 수립하지 않고, 모든 팀원이 참여해서 계획을 세울 수 있는 포스트잇 일정잡기를 이용하죠.

연동 계획하기를 할 때, 팀원들을 모두 모이게 한 다음, 손바닥만한 포스트잇을 나눠 줍니다. 벽 한면에 A1 종이를 붙이거나 화이트보드를 계속 사용할 수 있다면 화이트 보드에, 중요한 마일스톤을 표시하죠. 그러고 나서, 팀원들에게 포스트잇 한장에 필요한 업무를 적어서 종이나 화이트보드에 붙이라고 부탁합니다. 그러고 나면 정말로 멋진 일이 일어나죠. 팀원들이 처음엔 어색해 하다가, 포스트잇에 일정을 써서 붙이면서 서로 작업 사이에 연관 관계는 어떤지, 어떤 위험이 있는지, 목표는 명확한지 토론을 합니다. 이렇게 일정을 세우면, 팀원들이 직접 참여했기 때문에 MS 프로젝트 간트 차트보다, 프로젝트를 자신의 일로서 여기게 됩니다.

짧은 글에서 제가 생각하는 간트 차트의 문제점과 대안을 이야기했는데, 제가 인지하지 못한 간트 차트의 장점이 있을 수도, 제가 말씀 드린 방법의 문제점이 있을 수도 있습니다. 다만, 우리가 더 나은 것을 꿈꾼다면, 지금의 사용하는 방법은 교리가 아닌 여러 갈랫길 중 하나일 뿐이라는 걸, 더 나은 길이 있을 수 있다는 걸 말씀 드리고 싶었습니다. :)

* 이것을 해결하는 방법으로 TOC도 있습니다. 상세한 내용은 골(The Goal)을 읽어보세요.


12 Responses to “SW프로젝트 성공하고 싶다면, 간트차트를 버려라!”

  1. 테스팅 히치하이커를 위한 안내서 Says:

    추정과 계획 - 멀티 프로젝트에서의 CCPM 그리고 애자일…

    일전의 포스팅에서 프로젝트가 지연되는 이유에 대해서 1. 머피의 법칙 2. 학생 증후군 3. 멀티 태스킹 4. 파킨슨 법칙 4가지를 설명한 적이 있다. 많은 프로세스 방법론에서는 추정과 계획에서…

  2. 테스팅 히치하이커를 위한 안내서 Says:

    PERT/CPM 그리고 CCPM…

    우선 이 글은 제 개인적인 이해를 적당히 정리한 글입니다. 세부적인 내용은 지금도 학습하는 중으로 물어보신다 하여도 대답해 줄만한 능력은 아니됩니다. 물론 제 개인적인 이해이기 때문…

  3. 테스팅 히치하이커를 위한 안내서 Says:

    CCPM에 대한 단상…

    ‘린 소프트웨어 개발의 적용’이라는 책을 보면 뒷부분에 제약이론에 대해 소개하고 있다. 그 중에는 제약이론의 CCPM에 대하여 아래와 같은 문구가 있다. ‘소프트웨어 개발에 에로사슬을 사…

  4. Twitter Trackbacks for Talk about Software with hani » SW프로젝트 성공하고 싶다면, 간트차트를 버려라! [talk-with-hani.com] on Topsy.com Says:

    […] Topsy Retweet Button var topsy_style = “small”; var topsy_order = “count,retweet,badge”; var topsy_url = “http://www.talk-with-hani.com/archives/1054″; Add Topsy Retweet Button to your Blog or Web Site. WordPress  Web Sites 3 tweets tweet […]

  5. 이동인 Says:

    오늘도 좋은 내용 잘 보고 갑니다. 저는 문서 작업을 잘 안하는 나쁜 관리자지만 간트 차트를 서약의 의미로만 생각하지 않는다면 어느정도 자신의 일정을 조절하는 데 사용할 수 있는 유용한 도구가 아닐까 생각해봅니다. 물론 2주 정도의 기간마다 재 산정 하는 지출 비용이 들겠지만 말입니다.

  6. GOODgle Says:

    좋은 말씀 감사합니다. 문제는 대개의 개발 일정이란 외부에서 이미 데드라인을 정해진다는 것이죠. 위에서 ‘다음달 말까지 완료’라고 내려오면 간트든 TOC든 결국 개발팀원 개개인의 압박은 마찬가지라는 … 게다가 항상 시일은 촉박하죠. T-T

    관리자의 진정한 능력은 업무 일정 관리가 아니라 사람 관리라는 걸 저도 최근에 깨달았습니다.

  7. Hani Says:

    동인님.
    좋은 의견 감사합니다.
    본문에서 말씀 드린 것처럼, 잘 아는 프로젝트에서
    간트차트가 의미 있을 수 있습니다. 다만 말씀하신
    것처럼 일정간격으로 간트 차트를 업데이트하는
    게 필요합니다.

    GOODgle님
    감사합니다. 말씀하신 것처럼, 프로젝트의
    그런 측면 때문에 프로젝트 관리는 일종의
    기술(art)이라고 생각합니다. 머리로 알아도
    현실에 어떤 상황을 만났을 때, 어떻게
    처리할지 경험으로 터득해야죠. 그래서
    프로젝트 관리가 어렵겠죠. :)

  8. anarch's me2DAY Says:

    맹수의 생각…

    Talk about Software with hani » SW프로젝트 성공하고 싶다면, 간트차트를 버려라!…

  9. lakeduck's me2DAY Says:

    ceandaddy의 생각…

    SW프로젝트 성공하고 싶다면, 간트차트를 버려라! 불확실한 프로젝트를 진행중인 나에게는 매력적인 글……

  10. Jarrod Rohde Says:

    Its like you read my mind! You seem to know a lot about this, like you wrote the book in it or something. I think that you can do with some pics to drive the message home a bit, but other than that, this is great blog. An excellent read. I will definitely be back.

  11. 이삼구 Says:

    프로젝트 관리라는 것이 실제로는 QCD(Quality,Cost and Delivery)를 말하는 것인데, 말씀하신 방법으로는 세개 모두 관리가 되지 않을 것 같아요.
    불확실한 프로젝트에 관리따윈 필요 없다라는 말도 있긴 하지만, 애자일에서도 시간(2주 혹은 4주)과 일정한 Quality는 관리됩니다.
    사실 소프트웨어 제작이라는 것을 공정으로 보느냐 예술로 보느냐에 따라서 간트의 필요성이 달라진다고 볼 수 있는데요, 기획 단계에서 요구사항을 도출해 내면 공정으로 가능하고, 요구사항을 뽑을 수 없는 기획일 경우 당연히 공정으로 만들 수 없기 때문에 간트를 만드는 것 자체가 불가능합니다.
    제가 하는 방법은, 요구사항 명세를 만들지 못하면 코드를 작성하지 않습니다. 사실 기획 단계에서 요구사항도 개발의 한 영역이기 때문에 당연히 WBS로 작성되어야 하며, 일정이 나와줘야 하죠.
    문제는 사장님의 방침인데, 이 부분은 안정화 전 버전부터 시연을 하면 간단히 해결됩니다. 실제로 6시그마에도 나오는 이야기인데, 개발팀 내부의 커뮤니케이션과 외부는 완벽하게 분리시킬 필요가 있습니다.

  12. SwatTp0 Says:

    women weaken legs

    african mango diet

Leave a Reply

가끔 스팸차단기에 의해 코멘트(트랙백)가 막히나, 하루에 한번씩 정상처리 해드립니다.