유연성 : 프로젝트 상황에 적합한 규칙과 프로세스를 정의하고 적용하는 마인드 또는 문화  

예측형(predictive) 개발방식 : 프로젝트 착수시점에 상세한 계획을 수립한 뒤, 변경을 엄격하게 통제하는 방식   

적응형(adaptive) 개발방식 : 프로젝트 착수시점에 개략적인 계획을 수립한 뒤, 변경을 수용하여 계획을 상세화 하는 방식 

 

 

 

 

프로세스의 유연성은 ‘프로세스 정의의 유연성’과 ‘프로세스 내용의 유연성’으로 구분할 수 있다.

프로세스 정의의 유연성은 기성복 제작에 비유할 수 있다.  기업은 개인들의 다양한 취향과 체형을 고려한 옷을 생산하고 개인은 각자의 취향과 체형에 가장 가까운 옷을 구매해서 필요한 경우 각자의 몸에 맞게 수선한다.

프로세스도 마찬가지이다. 방법론을 제정하는 부서는 조직 내 프로젝트 유형을 고려한 다양한 방법론을 정의하고, 프로젝트 팀은 프로젝트의 특성과 팀원의 역량에 맞는 방법론을 선택하고 수정(tailoring)한다. 프로젝트 팀이 선택할 수 있는 방법론의 유형이 많아지고 수정할 수 있는 재량권이 높을수록 프로세스 정의의 유연성은 높아진다. 

양복점처럼 개인별로 맞춤옷을 만들면 시간과 비용이 많이 들고, 하나의 치수만으로 제작된 기성복을 모든 사람이 입는 것은 불가능하다. 프로젝트 프로세스도 마찬가지이다. 프로젝트 팀마다 모든 프로세스를 신규로 정의해서도 안되고, 모든 프로젝트에서 하나의 프로세스를 똑같이 적용해서도 안된다. 

프로세스 내용의 유연성은 프로젝트 불확실을 어떻게 관리할 것인가와 관련이 있다. 불확실을 관리하는 방법은 불확실을 최소화하는 방법과 불확실을 수용하여 대응하는 방법이 있다. 불확실을 최소화하기 위해서는 여러 가지 상황을 고려한 상세계획을 수립하여 계획의 변동성을 낮추어야 한다.

예를 들어 우주선을 발사하여 원하는 궤도에 진입시키기 위해서는 중요한 위치별로 계획된 시간에 도달해야 한다. 우주선을 발사한 뒤에 예상하지 못한 상황이 발생하면 대응하기 힘들기 때문에 예상하지 못한 상황이 발생하지 않도록 하는 것이 중요하다. 이렇게 착수 전에 프로젝트 수행의 상세한 계획을 수립하고 변경을 엄격하게 통제하는 것을  예측형 개발방식이라고 한다. 반대로 착수시점에는 개략적인 계획을 수립한 뒤 프로젝트 상황에 따라 프로젝트 계획을 변경하는 것을 적응형 개발방식이라고 한다. 

 

프로세스 유연성과 관련하여 유의할 사항은 다음과 같다. 

 

 

 

 

유연하게 정의하는 프로세스와 임의로 정의하는 프로세스는 다르다. 

 

유연하게 정의하는 프로세스는 프로젝트 특성과 상황을 고려하고, 과거 경험 데이터에 근거하여 팀원들이 결정한다. 반면 임의로 정의하는 프로세스는 특정 개인 또는 그룹의 선호나 의견을 따른다. 유연한 것을 ‘임의로’ 또는 ‘마음대로’로 착각해서는 안된다. 현실에서 프로세스를 유연하게 정의하는 것과 임의로 정의하는 것을 구분하기는 힘들다. 자기가 하는 결정은 옳다고 생각하기 때문이다. 팀원과 합리적인 토의 과정을 거쳐 결정한 프로세스는 유연한 프로세스이다. 

 

 

프로젝트 특성, 팀원의 역량, 조직문화를 고려하여 프로세스를 정의해야 한다.  

 

① 프로젝트 특성과 관련하여 고려할 사항은 다음과 같다. 

– 업무범위에 포함해야 하고, 변경의 여지가 없는 업계의 규격 또는 컴플라이언스는 미리 파악하여 요구사항에 반영한다. 예측형 개발방식을 적용해야 재작업을 줄일 수 있다. 

– 프로젝트에 적용할 기술의 발전 속도가 빨라 변경 가능성이 높다면 적응형 개발방식 적용한다.  

– 프로젝트 기간이 짧을수록 적응형 개발방식을 적용한다.  

– 요구사항이 불안정할수록 적응형 개발방식 적용한다.  

– 프로젝트 수행 도중 여러 번의 결과물을 납품할수록 적응형 개발방식 적용한다. 여기서 결과물이란 고객이 사용할 수 있는 산출물이다. 요구사항 정의서, 아키텍터 정의서와 같은 중간 산출물은 아니다. 

 

② 프로젝트 팀과 관련하여 고려할 사항은 다음과 같다. 

– 프로젝트 팀 규모가 작을 때 적응형 개발방식의 적용이 용이하다.  

– 프로젝트 팀원이 한 곳에 모일 수 있을 때 적응형 개발방식이 적합하다. 

– 프로젝트 팀원이 이전에 협업한 경험이 있다면 적응형 개발방식을 잘 적용할 수 있다. 

– 고객으로부터 적시에 빈번하게 피드백받는 것이 가능하면 적응형 개발방식의 적용 효과가 높다. 

 

③ 조직문화와 관련하여 고려할 사항은 다음과 같다. 

– 적응형 개발방식은 팀에게 의사결정 권한을 많이 위임하기 때문에 팀원이 프로 젝트에 헌신할 것이라는 신뢰가 중요하다. 

– 조직문화 조직의 문화가 중앙통제를 중시하면 적응형 개발방식의 적용이 힘들다.

 

 

프로젝트 진행 도중에도 프로세스를 개선해야 한다.   

 

조직의 표준 프로세스나 방법론은 지속적으로 개선해야 한다. 프로세스 자체에 생각하지 못했던 문제점이 있을 수 있고, 조직의 역량, 적용 기술, 프로젝트 수행환경이 달라지기 때문에 상황에 맞게 프로세스를 지속적으로 개선해야 한다. 그러나 프로젝트 진행 도중에 프로세스를 개선하는 것은 쉽지 않다 프로젝트 수행 프로세스 개선을 위해 이해관계자와 팀원들을 설득해야 할 뿐 아니라 변경으로 인한 혼선이 발생하기 때문이다. 가치를 창출하지 않는 활동에 프로젝트 팀원들의 소중한 시간을 투입하는 프로세스는 개선해야 한다. 조직의 정책과 관련된 프로세스라서 개선이 힘들다면 해당 프로세스 수행에 투입되는 시간을 최소화해야 한다. 

프로세스 개선을 위해서는 프로세스의 실효성을 지속적으로 모니터링해야 한다. 그렇지 않으면 팀원들은 관성에 따라 비효율적인 프로세스를 수행하기 쉽다. 

 

 

범위•일정•예산•품질의 조정이 가능해야 유연한 계획 수립이 가능하다. 

 

프로젝트 범위나 요구사항이 변경될 때 일정•예산•품질이 변경 가능하지 않다면 유연한 계획이 될 수 없다. 범위나 요구사항만 변경된다면 경직된 계획이며 프로젝트 궤도이탈을 확인하는 시점만 뒤로 미룰 뿐이다. 예측형 개발방식은 범위나 요구사항 변경이 없다고 가정하지만, 적응형 개발방식은 범위나 요구사항 변경이 있다고 가정하기 때문에 일정이나 예산의 변경도 가능하다고 가정한다. 

 

 

 

 

 

 

김병호 님이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.