본문 바로가기

더 괜찮은 개발자가 되기위한/프로젝트 관리하기

프로젝트 관리란

□ 프로젝트 관리란


○ 프로젝트 관리의 개념


프로젝트 관리 개념도


프로젝트는 분석, 설계, 개발, 테스트 단계로 구성된다. 각 단계별로 할 일이 나누어져 있고 어떤 업무를 먼저하고 어떤 순서로 해야 하는지 미리 정하는 업무가 바로 프로젝트 관리 업무다. 또한 누가 어떤 업무를 수행할지 그리고 어떤 등급의 인력이 들어가야 할지 결정하는 것도 관리 업무에 포함된다.


프로젝트에 소요되는 시간, 사람과 같은 자원을 계획하는 것도 프로젝트 관리 범위지만 진행과정에서 사람들이 일을 잘 할 수 있도록 지원하고 불편 사항을 해결해 주는 것도 관리 업무에 해당한다. 앞으로 발생할 수 있는 위험을 미리 파악하고 대비책을 마련해 주는 것 역시 관리 업무에 하나이다.


축구와 프로젝트 관리


이처럼 프로젝트의 시작부터 끝까지 프로젝트가 잘 진행될 수 있도록 계획하고 지원하는 모든 업무를 프로젝트 관리라 할 수 있다. 축구 경기에 비유하자면 직접 경기를 뛰는 사람은 선수지만 경기를 전략적으로 잘 뛸 수 있도록 전략을 수립하고 컨디션이 좋은 선수를 선발하고 선수 간에 발생하는 불협화음을 해결하는 역할은 감독이 한다. 월드컵 대표팀도 하나의 프로젝트 그룹이라 할 수 있다. PM, PM, 개발자와 설계자의 역할을 감독, 주장, 선수가 수행하기 때문이다.

 

○ 프로젝트 관리에 필요한 이론과 방법론


프로젝트의 새로운 정의


프로젝트 관리에 필요한 이론과 방법론에 대해 알아보자. 먼저 프로젝트가 어떤 순서로 진행되어야 하는지 업무의 흐름을 관리하는 소프트웨어 생명주기 모델이 있다. 모델 별로 일의 순서를 관리하는 방법은 다소 차이가 있지만, 대체적으로 분석, 설계, 개발, 테스트의 순서로 업무 흐름을 관리하고 이 사이클을 자주 반복하느냐 단계별로 정확하게 마무리하고 가느냐에 따라 관리 모델이 나뉜다. 대부분의 프로젝트에서는 폭포수 모델을 기본으로 사용하고 있다.


소프트웨어 개발 방법론은 소프트웨어를 어떻게 만드는지 방법적인 부분을 정의하고 있다. 어떤 도구를 사용해서 어떤 절차로 어떤 산출물을 만들어 내야 하는지에 대해 구체적으로 정의하고 있다. 다양한 개발방법론이 산업계에 나와 있지만 많은 프로젝트에서 객체지향 언어를 사용한 정보공학 개발 방법론을 활용하고 있다.


프로젝트 프로세스를 어떻게 관리하고 어떤 방법론을 사용해서 개발할 지 정해진다면 앞에서 설명했던 프로젝트 관리 기법이 더해져 하나의 프로젝트가 완성되는 것이다. 건축과 달리 소프트웨어 개발은 사람 머릿속에 있는 논리적인 개념을 프로그래밍 언어를 가지고 실체화하는 과정이기 때문에 중간에 별도로 들어가는 재료가 따로 없다. 따라서 프로젝트를 소프트웨어 생명주기 모델, 소프트웨어 개발방법론 그리고 프로젝트 관리기법의 집합체라고 다시 정의할 수 있다.