read
프로젝트 막판에는 여러가지 일들이 벌어진다. 이 일들 중 많은 부분은 급하게 추가된 요구사항들이 일으키는 경우다. 급하게 어떤 기능을 넣자고 한다던지, 문제의 원인이 뭔지 명확히 밝히지 않은 채 디자인 변경을 한다든지 하는 일 말이다.
사람 욕심이라는 게 마지막일 수록 완벽을 기하고 싶고, 조금이라도 더 잘만들려고 하게 된다. 이때 중요한 것은 많이 만드는 게 잘 만드는 건 아니라는 것을 깨닫는 것이다. 프로젝트 막판에 '잘 만든다' 라는 말은 '버그를 줄인다' 라는 말과 동의어다. 이유없는 소프트웨어 변경은 단순한 디자인 변경이든 기능 삭제든, 하다 못해 텍스트 스트링 변경 조차도 버그를 만들어낼 확률을 높인다.
구현한 기능이 예상과 다르게 동작하는 경우라든가, 기능의 품질을 높이는 것은 허용되나, 애초에 타겟팅하지 않은 사용자 시나리오를 풀겠다고 덤비는 것은 위험한 행동이다. 운좋게 그 결과가 나와주면 다행이지만, 만약 실패한다면 프로젝트 전체가 늦어지거나, 다른 기능까지 영향을 받아 낮은 품질로 shipping 해야 하는 상황에 처할 수 있기 때문이다.
프로젝트 관리란 리스크를 감내하는 것이 아니라 줄이는 데에 그 목적이 있다는 것을 명심해야 한다.