임블록의 Web3.0 도전기

Let's make blockchain Good Again!

독서/스타트업_독서노트

[프로젝트 더보기 #6] 프로젝트 관리 (1) 폭포수 모델(Waterfall Model)

임블록의 도전 2021. 2. 15. 14:59
반응형

폭포수 모델(waterfall model)이란, 하나의 개발 프로젝트의 시작과 끝이 순차적으로 진행되는 것을 의미합니다.

이는 마치 개발의 흐름이 폭포수처럼 위에서 하나씩 하나씩 아래로 흐르는 것처럼 보이는 양상으로 부터 명명 되었습니다.

이는 프로젝트 개발 프로세스의 가장 기초가 되는 모델입니다.

즉, 

소프트웨어의 요구사항 분석단계 부터 시작하여, 설계, 구현, 시험, 통합, 유지 까지 하나의 큰 흐름이 순서대로 진행되는 것을 의미합니다.


각 단계마다 순차적으로 산출물이 나오고 이것에 기반해 다음 단계가 실행됩니다.

PM은 이러한 과정에서 각 단계 별 일정이 제대로 진행되는지 체크가 용이하고,

하나의 프로세스마다 각 프로세스에 집중할 수 있어 관리에 용이합니다.

하지만 회사의 입장에서는 각 부서별 업무의 집중도가 매번 다르고, 업무가 없다면 해당 부서는 진행하는 업무의 공백이 생기기 때문에,

회사의 입장에서는 좋은 관리모델은 아니라고 할 수 있습니다.

(진행하는 프로젝트가 많지 않은 경우에는 그렇습니다.)

 

또한 단점으로는

모든 것이 거의 완벽해야 하기에 경험이 충분치 않은 분들에게는 진행이 어려울 수 있으며 (근데 사실상 경험 없는 분들에게는 뭐든 안어렵겠어요 ㅎ)

지나친 문서화가 진행되며

시스템의 동작이 후반이 되어야 확인이 가능하고,

가장 크게 문제로는

중간에 변경을 수용하기 어렵다는 문제가 있습니다.

 

하지만 큰 프로젝트라면 대부분 폭포수 모델을 통해 진행이 됩니다.

위키백과에 따르면 미국 국방성이나 NASA와 같은 곳에서 진행되는 대규모 소프트웨어 개발 프로젝트는

대부분 이러한 폭포수 모델에 따라 진행된다고 합니다.


구체적으로는 아래와 같습니다.

 


1. 타당성 조사

타당성조사(妥當性調査)는 어느 사업의 기술적 가능성을 기본으로 경제적, 재무적인 측면에서의 평가를 하여 그 사업의 타당성, 즉 추진여부를 결정하기 위한 조사이다. 경제적 타다성, 즉 경제성을 조사하는 일이다.

참고 : ko.wikipedia.org/wiki/%ED%83%80%EB%8B%B9%EC%84%B1_%EC%A1%B0%EC%82%AC

  • 조직 측면의 타당성: 조직의 전략적 목표를 충족하는가
  • 경제적 타당성 : 비용 대비 수익 효과가 큰가
  • 기술적 타당성 : 정해진 시간 안에 현재의 기술 수준으로 개발할 수 있는가
  • 운영의 타당성 : 운영/사용 능력, 다른 시스템과의 연동 가능성 판단

 

2. 요구분석과 명세단계

요구사항 명세서, 한번쯤은 들어보셨죠?

 

요구사항 명세서는 발주자 및 개발자간 소통을 하기 위한 수단으로

시스템의 목적과 범위를 명확하고 세세하게 작성한 문서입니다.

이에는 문제점을 구체적으로 기술하고 대안을 제시합니다.

 

3. 설계와 명세 단계

아키텍쳐/ 인터페이스/ 프로그램을 설계합니다.

 

4. 코딩과 테스트 단계

실제 이를 컴퓨터 언어로 작성(코딩)하여 테스트합니다.

 

5. 통합과 테스트

개발된 모듈을 통합하여 하나의 전체 시스템을 구축하고

테스트 과정에서는 초기 작성했던 요구사항을 충족하는지 테스트합니다.

CBT(Closed-Beta Test) 과정과

OBT(Open-Beta Test) 과정이 있습니다.

 

6. 인도와 유지보수 단계

인도 : 실제 사용자에게 해당 프로그램을 운영하기 위한 절차를 밟고, 이를 이양합니다.

"소프트웨어를 배포한다" 라고 표현하기도 합니다.

 

유지보수에는 다음의 종류가 있습니다.

  • 수정 유지보수(corrective maintenance): 오류 수정
  • 적응 유지보수(adaptive maintenance): 환경 변화(하드웨어, 소프트웨어 업데이트, OS 등) 대응
  • 완전 유지보수(perfective maintenance): 기능 개선, 성능 향상
  • 예방 유지보수(preventive maintenance): 미래 유지보수성을 향상시키기 위한 활동
반응형