26 프로젝트 초기의 위험과 결함관리 - ChoDragon9/posts GitHub Wiki
프로젝트 초기의 위험과 결함관리
위험이란 앞으로 발생할 문제이며 문제가 없는 프로젝트는 존재하지 않는다. 결함이란 사람의 실수가 소프트웨어에 전이된 것으로 동작 여부에 관계 없이 요구사항에 부합되지 않는 것을 말한다.
결함관리란 결함을 조기에 발견하기 위한 검출 활동, 발견한 결함을 제거하기 위한 수정 활동, 결함 데이터베이스 구축 및 분석을 통한 예측 활동, 결함이 발생하지 않도록 하는 예방 활동으로 이루어진다.
프로젝트 초기의 불합리한 관행은 위험과 결함관리에서 결정적으로 나타난다. 안타깝게도 납기 준수라는 지상 명제를 달성하기 위해 프로젝트 초기에 위험을 식별하거나 결함을 찾는 활동이 기꺼이 희생되는 사례를 많이 보게 된다. 보통의 프로젝트에서는 앞으로 발생할 문제, 즉 위험보다 현재 발생한 문제에 관심을 갖기 때문에 위험을 조기에 식별하지 않는다. 결함을 조기에 발견하기보다는 테스트 단계로 미룬다.
프로젝트의 성공은 초기부터 위험에 대처하는 활동과 결함을 제거하는 활동을 하고 있느냐, 그렇지 않느냐에 판별이 난다. 실패하는 프로젝트의 대부분은 위험에 대처하는 활동을 아예 무시하기 때문에 위험이 문제로 전이되어 문제를 해결하는데 위험 대처 활동보다 많은 노력을 기울일 수밖에 없고 프로젝트 기간 내내 문제에 끌려간다. 결함을 제거하는 활동은 프로젝트 후반부, 특히 테스트 단계에서 집중하기 때문에 결함을 제거하는 데 엄청난 비용과 시간을 소비한다. 처음부터 제대로 하지 않으면 결함을 찾고, 고치는데 많은 시간을 보낸다.
우수한 프로젝트는 프로젝트 초기에 위험 식별 활동을 수행한다. 프로젝트 멤버 전원이 프로젝트 계획서, 제안서 등에 대한 검토를 통해 프로젝트 목표 달성을 위한 장애물을 식별하고 대응방안을 마련한다.
또한 결함 유형에 대한 관리를 통해 발견한 결함을 분석하고 이를 예방하는 활동으로 유기적으로 이어질 수 있도록 기반을 구축한다. 결함 유형에 대한 관리가 되어야 결함을 식별, 분석, 예방하는 활동이 원활하게 이루어질 수 있다. 처음에는 분석, 설계단계에서 발생하는 결함 유형을 관리하다가 수준이 높아지면 산출물 단위, 소스코드 단위로 결함 유형을 관리한다.