안녕하세요. 기온이 많이 내려갔네요, 감기 조심하시기 바랍니다.
프로젝트 관리 , 제품 개발 프로세스 등에 관해서 일반적이고 실무적인 수준의 내용으로 진행을 해오고 있습니다.
글을 쓰면서 계속 느끼게되는 것이 아무래도 제가 좀 급한 성격이기도 하고 시간 압박을 느끼면서 작성을 하다보니 설명이 많이 부족했던 것 같고 논리의 흐름도 일정하지 않아 이해하기도 힘들었던 것 같습니다.
오늘 부터는 "일정관리 개선방법", "릴리스 이후 품질관리" 등으로 좀 더 주제를 세분화하여 범위를 좁히고
촉박하지 않은 시간대를 골라서 차분히 해 보도록 하겠습니다. 이러면 조금씩 글쓰는 게 나아지지 않을까 합니다.
오늘은 일정관리의 개선방법에 대해 어떤 방법들이 있는지 살펴 보겠습니다.
지난번 글들 "조엘 따라하기 #1" , 2, 3 에서 언급이 되었던 Time-Table 은 Work-List 를 일일 단위로 세분화하고 , 진행되는 내용을 시간 단위로 매일 업데이트 하면서 진행 내용을 관리한다고 했었습니다.
Time-Table 은 그 활용에 따라서 여러가지 용도로 쓰일 수 있는데 , 오늘의 주제인 일정관리 개선방법에
활용해 보도록 하겠습니다.
Time-Table은 시간 단위의 관리이기 때문에 최초 도입에 담당자들의 거부감이 매우 큽니다. 도입 단계에서
그 목적과 효과에 이해가 충분히 설명되지 않으면 시행을 한다고 하여도 제대로 그 효과를 보기 어렵다는
말씀을 다시 드리고 싶습니다.
Time-Table 도입에 있어 초기 관리자에게 또 하나 어려운 점이라면 일일 단위의 Work-List 를 작성하는 것이 쉽지 않다는 것일 것 같습니다. 프로젝트의 규모가 작고 Work-List 가 될 내용을 대부분 경험해 본 관리자라면 혼자서 작성해도 문제가 없겠지만 , 웹개발과 같이 기술적 폭이 넓은 경우에는 관리자의 경력이 아무리 오래 되었다고 하여도 한계가 있기 마련입니다. 예를들어 웹 디자인 경험을 해보고 각 단계을 알고 있으면 이를 일일 단위로 나눌 수 있는 관리자는 거의 없지 않겠습니까 ?
어쨌던 , 그래서 규모가 크던 작던 프로젝트의 Work-List 를 만드는 과정에는 프로젝트 팀원이 모두 참여해서 진행을 하도록 해야 합니다. 웹디자인 , 데이터베이스 설계 , UI 설계 , 웹코딩 , 비지니스 프로세스 설계 , 외부 연동 설계 , 라이브러리 사용, 테스트 등등 시간이 소요되는 모든 일들은 Work-List 의 대상이 된다고 생각하시고 프로젝트 관리자로서 모두 꼼꼼히 챙겨 보시기 바랍니다.
이런 과정을 거쳐서 Work-List 가 완성이 되면, 각 Work-List 에 예상 작업 소요량을 시간단위로 추가하고 , 담당자를 확정하고 우선순위를 매겨서 Time-Table 작성을 완성하게 됩니다. 이제 남은 일은 Time-Table에 따라서 실행을 하면 됩니다.
실행 과정에 대해서는 제가 따로 정리할 기회가 있으면 하겠지만 제 글 여기 저기 흩어져 있습니다. 블로그 글들을 간단히 한 번 둘러 보시기면 도움이 되실 수 있을 것입니다.
이제 이렇게 계획을 수행을 했을 때 , 어떤 개선 방안을 찾는 어떤 방법이 있는 지 살펴 보겠습니다.
첫번째는 프로젝트의 종료 시점이 되면 Time-Table 이 초기의 것과 많이 달라져 있을 것입니다. 어떤 Work-List 는 초기 예상에서는 포함이 되었다가 없어졌을 수도 있고 어떤 Work-List 는 새로이 추가가 되어 있을 것입니다.
또 어떤 경우는 나누어 지거나 합쳐진 Work-List 도 있을 것입니다.
이렇게 변화무쌍한 것이 프로젝트의 특성이 아니겠느냐 하실 분도 있을 수 있는데 , 이러한 의견은 어떤 측면에서는 옳습니다. 초기의 요구사항 부터 기술적인 대처 방안들이 변화하지 않을 수가 없기 때문일 것입니다.
문제는 이러한 프로젝트의 특성을 그대로 인정하고 별다른 대책을 세우지 않는다면 발전을 기대하기는 어렵다는 것이겠지요.
과거로부터 배워 , 현실을 개선 , 발전 시켜야 하지 않겠습니까 ?
현재의 상태에 대하여 기본 가정에서 부터 문제 의식을 가지고 바라보며 , 개선을 하겠다는 의지를 가지지 않으면 발전이라는 것은 없다는 것이지요. CMM 의 최고 단계 수준이 계속 발전하는 모델이 잖습니까.
아무튼 조금 옆길로 새버렸습니다.
초기 Work-List 와 최종 Work-List가 변경이 되는데 그 변화의 폭에 주목해보면 , 예를들어 변경이 아주 많았던
프로젝트 일수록 잦은 일정 변경이 있었을 것이고 계획에 없었던 인력 이동도 많이 발생했을 것입니다.
달리 말하면 관리적으로 좀 어렵게 진행이 되었을 것이라는 것입니다. 일정 변경에 따른 계획 수정이 자주 발생하면서 이에 따른 조직의 부담이 늘어나게 되는데 이의 결과로 개발 효율이 올라가지 못하고 떨어지게 됩니다.
그러면 이러한 Work-List 변화의 폭은 어떻게 측정하고 어떻게 줄일 수 있을까요.
측정에 관해서는 아래의 수식을 살펴봐 주시기 바랍니다.

전체 Work-List 의 시간이란 최초 계획된 시간입니다.
위 수식의 Work-List 변화도는 그 값이 커질수록 예측대비 실행 단계에서의 변화가 많았다는 것을 의미하게 됩니다.
사실 변화도가 높다는 것은 최초 계획 단계에서의 예측력이 낮았다는 것을 의미하는 것이기 때문에 이에 대한 분석을 하는 것으로 개선점 발견의 시작으로 잡으시면 될 것 같습니다.
Work-List가 변한 이유는 한 두가지 이유가 아니기 때문에 이에 대한 분석이 필요합니다. 분석 결과에 가지고 그에 맞는 대책들을 마련하는 과정을 거쳐야 합니다. 이 대책들은 다음 프로젝트 진행시에 Time-Table에 반영을 하도록 하는 방식으로 프로젝트 개선 프로세스를 만들어 운용하는 방안이 있을 수 있습니다.
또한 Work-List 변화치를 관리자 또는 담당자자의 평가 지표로도 사용하는 방안이 있을 수 있습니다.
평가 지표의 명칭은 , 예를들어 , "일정 예측도" 같은 지표가 될 것입니다.
이 지표를 운영하시면서 매년 그 기준치를 조금씩 올려가는 관리 전략이 경영적으로는 중요한 의미를 가질 것입니다.
다음으로 일정 개선의 방안 두번째
프로젝트가 종료된 후에 Time-Table 상에는 예상 일정을 초과하여 , 또는 빨리 진행되는 Work-List 들이 있습니다. 초기에 너무 넉넉하게? 또는 빡빡하게 설정한 경우로 판단 되는 것 들인데요.
예를들어 8 시간을 잡은 일이 16 시간으로 종료될 수 있고 또는 4 시간만에 종료되는 것이 표에 쭉 나타나게 됩니다.
이러한 항목내에서의 예측치와 실측치의 차이를 보시면 담당자별로 다음의 세가지 패턴 중 하나를 발견하시게 될 것입니다.
1. 대부분의 Work-List 가 계획된 시간에 완료됨.
2. 각 Work-List 의 소요 시간이 계획 대비 (+) , (-) 차이가 많이남.
3. 대부분의 Work-List 가 계획된 시간에 비하여 초과하여 완료됨.
각각의 경우에 대한 문제점과 개선 방안들에 대해 논해 보겠습니다.
1.번의 경우는 대부분의 Work-List 가 계획대로 완료가 되었기 때문에 겉으로 보기에는 전혀 문제가 없어 보입니다 만 내면적인 면을 생각해 보면 그렇지가 않습니다.
이 내용만으로 가능한 또 다른 해석은 "일정 소용 산정이 과장되어 있을 수 있다" 는 것입니다. 이런 담당자는 자신의 능력을 너무 과소평가 하거나 일에 대한 과대 평가가 원인일 것인데 주로 소극적인 업무 자세를 가지는 경우에 발생 한다고 할 수 도 있습니다. 뭔가 개선책이 필요하다고 할 수 있을 것입니다.
이런 사항이 발생하는 경우에는 점차적으로 실제 수행 시간이 예상된 시간을 초과하는 일이 발생하는 지점까지 할당된 일에 대한 소요시간을 줄여 주는 것이 좋을 것입니다. 이 방법은 프로젝트 기간이 길다면 수행중에도 가능한 운영 방안이 될 것이고 만약 기간이 짧은 프로젝트의 경우라면 다음 프로젝트에 반영이 될 수 있도록 관리를 해야 할 것입니다.
2.번의 경우는 소요시간이 계획대비 차이가 많이 나는 경우인데 , 최초 계획이 어설프게 되었거나 담당자가 자기 통제가 안되는 경우입니다. 이런 담당자의 경우는 해당 Work-List 에 대한 소요산정 내용을 다시 Review 해 보는 것이 좋을 것입니다. 아무래도 지난 경과를 가지고 팀에서 논의를 하게 되면 좀 더 나은 예측치가 되지 않을까 합니다.
물론 진행중에 별도의 시간을 내서 Review 해 보기는 어려울 수 있지만 말입니다.
3.번의 경우는 담당자 본인이 자신의 능력을 과대 평가하는 경우인데 1.번의 경우와는 반대로 예측치의 시간을 조금씩 올려서 운용하는 것이 합리적일 것입니다. 일에 대한 자세가 너무 적극적이거나 소극적인 것이 전체적으로 도움이 안되는 경우가 많기 때문입니다.
이상으로 일정 관리에 대하여 몇가지 말씀을 드렸습니다.
여기까지 읽으시다보면 "이거 너무 통제가 강한 것 같은데" 또는 "가능하지 않을 것 같은데" 같은 여러가지 의견이 있을 것 같습니다.
오늘은 이만 줄이겠습니다.
Coding_Guide_C++_2.txt
index_2.jsp
CTO의 역할을 중심으로.pdf