2016년 12월 8일 목요일

칸반 (Kanban) (8) - 칸반 데이터를 사용한 프로젝트 estimation

 지난 글에서는 칸반 데이타를 일의 성격에 따라서 분류해보았다. 이제는 분류/추출한 데이터를 사용하는 것에 초점을 맞춰서, 프로젝트 estimation에 활용해 보려고 한다.

 사실 칸반 데이타를 프로젝트 estimation에 사용해 보려고 마음 먹은 동기는 앞으로 진행할 프로젝트의 기능 구현이 얼마만큼의 기간이 걸릴지 가늠할 수 없었던 답답함에서 기인한 것이다. 변경 사항이 많은데 해당 변경 사항의 구현을 한정된 기간 내에 우리가 할 수 있을지, 할 수가 없다면 얼마만큼의 시간이 더 필요한 것인지 가늠할 수가 없는 것이다.

 물론 예전 프로젝트의 경험을 따라서 각자가 얼마만큼의 시간이 필요한지 예측할 수는 있다. 그런데 문제는 얼마만큼의 시간이 필요한지 개발자가 일일히 estimation을 수행하는 것이 개발자 입장에서는 쓸데없는 낭비같다는 것이다. 사실 계획을 세우고 estimation을 해도 그 계획대로 안되는 경우가 부지기수인데, 어차피 지켜지지도 않을 계획을 굳이 시간을 들여가면서 estimation을 해야 하는가?

 그래서 상기와 같은 이유로 estimation을 하지 않겠다고 하면 누가 가장 먼저 화를 낼까? ㅋㅋ 바로 PM (Project Manager)이다. 프로젝트의 관리 차원에서 estimation이 필요하기 때문이다.

 그럼 어쨋든 estimation을 관리자가 요구할 테고, 개발자 입장에서는  낭비라고 느껴진다면.... 개발자의 시간을 가장 덜 뺐는 estimation 방법을 쓰면 되지 않을까? 라는게 나의 최종적인 생각이다.

 그래서 프로젝트 estimation을 하는 방법들을 찾아봤고, 흥미로운 것들을 찾았다. 바로 kanban의 과거 cycle time 데이타를 이용하여 확률 분포로 프로젝트 estimation을 하는 방법인데, 간단히 말하면 하기와 같다.

 1) 과거 프로젝트의 task에 대한 cycle time 데이타를 수집한다.
 2) 현재 프로젝트에서 우리가 구현해야 할 기능들의 수를 나열해본다.
 3) 2,3)의 데이타를 입력하여 Monte-Carlo 시뮬레이션을 실행한다.
 3) 최종적으로 현재 프로젝트를 마치는 데 얼마의 시간이 걸릴지가 분포의 형태로 출력된다. 예로 130일 내로 끝마칠 확률 60%, 150 일 내로 끝마칠 확률 85%로 결과가 나온다.

 상기 방법에 대한 상세 사항들은 하기의 링크를 참조.
cycle time analysis and Monte-Carlo simulation results
cycle time analytics and forecasting
lean kanban university : what do we know about task duration ?

 여기서 핵심적인 사항은 프로젝트를 마칠 수 있는날짜가 하나의 고정된 날짜로 나오지 않는 다는 것이다. 하기의 그림과 같이 히스토그램의 형태로 나온다.


 그럼 시뮬레이션의 결과물로 예측되어 나온 위의 히스토그램을 어떻게 해석하느냐? 히스토그램의 누적 % 그래프 (빨간색)를 사용하여 하기와 같이 해석할 수 있다.

  1) 누적%인 85.85%에 해당하는 일은 88일이다. 그러므로 해당 프로젝트가 88일 안에 완료될확률은 85.85%이다.
 2) 누적%인 95.96%에 해당하는 일은 94일이다. 그러므로 해당 프로젝트가 94일 안에 완료될 확률은 95.96%이다.

 그럼 위의 정보를 가지고 프로젝트의 달성여부를 가늠해볼 수 있다.  만약 우리에게 주어진 프로젝트 수행 기간이 50일 이라면, 위의 시뮬레이션 결과는 프로젝트가 50일 안에 완료될 확률은 52.53%라는 것을 말해준다. 한마디로 동전 던지기의 확률 (앞이 나올 확률 50%, 뒤가 나올 확률 50%)로 프로젝트를 완료할 수 있다는 것이다 ㅋㅋ. 아마도 성공 확률 50%짜리 프로젝트를 수행하려고 하는 사람은 아무도 없을 것이다.

 내가 만약 PM이고 프로젝트 예측 날짜의 분포가 위와 같이 나온다면, 최소한 85% 확률을 가진 88일을 프로젝트 수행 기간을 정해야겠다고 생각할 것이다. 물론 프로젝트가 안전하게 끝마칠 수 있도록 100% 성공을 보장하는 100일로 정해도 되겠지만, 프로젝트 수행 시간이 길어지면 길어질 수록 프로젝트에 투입되는 비용이 증가하고, 제품을 늦게 출시하면 제품을 적기에 팔 수 있는 시기를 놓칠 수 있으므로 여러가지 요소를 고려하면 100일은 그리 좋은 선택 사항은 아닐 것이다.

 다음번 포스트에서는 구체적으로 어떤 과정을 거쳐서 위의 결과를 얻을 수 있는지 쓸 계획이다.

댓글 1개:

  1. 안녕하세요.
    저희 회사도 칸반보드 도입한지 얼마 되지 않아서 체계가 잘 잡혀있지 않다보니 어려움이 많았는데,
    이렇게 경험을 상세하게 공유해주셔서 많은 지식을 얻어가네요. 감사합니다!

    답글삭제