계획 기반 개발

계획 기반 개발(Plan-driven development)은 소프트웨어를 개발하는 과정에서 계획을 세우고 그 계획을 실천하는데에 많은 시간과 노력을 할애하는 개발 방법이다.

장단점 
계획 기반 개발을 함으로써 얻을 수 있는 장점으로는 소프트웨어 개발이 조금더 예측가능해지고, 효율적이게 된다는데에 있다. 하지만, 단점도 존재하는데 가장 큰 단점이자 가장 많은 지적을 받는 점으로는 너무 계획에 치중을 하다보니 개발 방법 자체가 너무 형식에만 신경을 쓰고 얽매이게 된다는 것이다. 왜냐하면 이미 세워진 계획앞에 융통성을 발휘 할 수 없는 부분도 분명히 발생을 하게 되고, 또한 반드시 따라야 하는 단계들이 존재 하기 때문에 전체적인 개발의 흐름 자체를 느리게 만들기도 한다.

세부 사항 
계획 기반 개발에서는 많은 노력과 시간을 개발을 시작하기전 계획을 세우는데에 쏟는다.구체적으로, 이 계획에는 무엇이 어떠한 순서대로 개발이 되어야 하며, 어떻게 서로 결합이 되어야 하는지에 대한 자세한 정보가 담겨 있다. 또한 개발 과정에서 생기는 의존적인 성격의 것들(예를 들면 프로그래밍 언어에서 사용하는 상속 혹은 다형성)에 대해서 미리 파악을 하고 계획을 세우며 예산또한 이 단계에서 세운다. 이러한 모든것들은 일단 계획이 세워지면 그 이후의 개발은 사실상 아주 뛰어난 전문가가 아니더라도 어떠한 개발자라도 개발을 하는데에 지장이 없게 해주는 일종의 설계도로써의 역할을 하게 된다.

여기에서 나오는 두가지 개념이 디자인과 설계다.즉, 디자인은 계획을 세우는 과정이며 설계는 이미 완성된 계획을 가지고 일을 시작을 하는 것을 말한다. 위에서도 이미 이야기 했듯이 가장 많은 노력이 들어가며, 가장 유능한 인재가 배치되고 시간과 비용이 들어가는 부분이 디자인 혹은 계획의 단계이다. 반면에 설계의 단계에서는 이미 정해진 설계도대로 개발을 하면 되므로 이미 예측된 방향 혹은 예측이 된대로 개발을 진행 한다고 볼 수 있다.

출처 
 http://martinfowler.com/articles/newMethodology.html

프로젝트 관리