Page History
Info |
---|
30년전 고서 "Wicked Problems,Righteous Solution" 번역본인 "고약한 문제 합당한 해결" 에서 폭포수와 관련한 중요 문구만 요약하였습니다. 애자일이란 이야기가 존재하지 않던 시절, 폭포수모델의 한계를 이야기하기 위해 폭포수 모델에대해 아주 폭포수 모델의 한계를 설명하기위해, 폭포수모델에 대해 필요한 만큼만 잘 정리되어 있는 책입니다. 애자일을 학습하기전 읽어보는 것을 추천합니다. |
Table of Contents |
---|
폭포수 모델의 기원
1971년 밀스가 도입한 하향식, 구조적 프로그래밍 모델과 대체로 일치한다.
...
각 단계는 다음 단계에 입력을 주지만, 피드백은 없다.
폭포수 모델 세부논의
착수
- 단계 : 상위 경영진 수준에서 수립하는 전략 계획이나 사업을 진행하면서 나온 결과를 토대로 시작할때가 흔하다.
- 주의점 : 이 단계에서 컴퓨팅 전문가의 도움이 필요없다고 결론 짓는다. 대부분 나중에 이것 때문에 문제가 발생한다.
요구사항 수집및 분석
- 단계 : 엔지니어링 생명주기의 시작부분으로 시스템명서,설계문서,인터페이스 요구 명세,개발 계획등으로 구성된다.
- 주의점 : 사용자를 위해 무엇을 해야하는지 설명이 되지만, 시스템이 어떻게 작동될지에대해 관심이 없다. 어떻게는 다음단계인 기초설계에서 이야기가 될수 있다. 여기서 문제가 발생하는데 '무엇'과 ''어떻게' 를 분리해서 별도의 단계로 나누는것이 자연스럽지 않기때문이다.
기초설계/상세설계
- 단계 : 기능 명세는 요구사항 분석의 '무엇'과 기초설계 단계의 '어떻게'를 연결하는 다리 구실을 한다.
- 주의점: 비즈니스 시스템의 개발자는 상세 설계 때 무척 바쁘다. 너무 바빠서 여러 작업들이 소홀히 되거나 아예 무시되곤 한다. 기술 문서작성자가 이 시점까지 참석하지 않았다면 많은 문서가 비슷한 운명을 겪는다. 사용자 메뉴얼은 완전하지 않고 프로그래머 메뉴얼은 아예 작성되지 않는다.
코딩
- 단계 : 코딩단계는 앞단계와 결합할때도 있지만,다음 단계와 결합할때도 있다.
- 주의점 : 불행히도 코드 작성은 사소하게 보일 때가 흔하다. 하지만 이 단계에서 시스템의 구성요소를 전부 만든다.
이하단계 설명 생략.......
요약
폭포수 모델에 대해서 반드시 알아두어야 할 게 있다. 폭포수모델은 형식을 갖춘 방법이다.
소프트웨어를 개발하는 질서정연하고 체계적인 방법이다.
나일강을 따라 내려가는 여왕의 유람선처럼 복잡하고 장엄한 프로세스이다.
대개 큰 조직에서 소프트웨어를 생산하는 데 사용하며, 프로젝트의 복잡성과 규모를 관리하는
하나의 방법이다.
코딩부터 시작하는 회사들이 일반적인 시절과 비교하면 분명 폭포수 모델 도입은 도움이 되었습니다.
하지만 폭포수모델은 다양한 변종을 만들어 냈고, 개발방법론이 될수 없으며
단지 프로젝트 관리 기법이라고 주장하는 사람들이도 생기기 시작하였다. 그 근거로
소프트웨어를 만드는 실제 기법이 결여 되었다란 것이다.
폭포수 모델의 문제점
- 지나치게 오래걸린다 : 문서 작업들과 승인 과정은 모두 빠른 개발을 방해한다. 산출문 문서는 생명주기 내내 '겉치레' 역활에 그치며 내재된 가치가 있다라고 생각한다.
- 최종사용자와 의사소통에서 생기는 틈 : 맥크래켄은 다음과 같이 말했다. 폭포수 모델의 생명주기는 진열대를 돌아다닐 기회도 주지 않고 슈퍼마켓 입구에서 고객이 점원에게 완벽하게 주문하도록 강요하는 슈퍼마켓과 비교할수 있다. (진열대를 돌아다니면, 가격을 비교할수도 있고, 쇼핑 목록에 없는 항목을 기억할수도 있고, 그냥 외식하러 가기로 결정할수도 있다)
- 어떻게에서 분리된 무엇 : 문제를 정의할 때까지 해결책을 미룬다는 생각도 구조적 분석과 설계의 신조 가운데 하나다. 물론 문제 정의를 먼저하고 해결책을 나중에 내는것은 논리적인 귀결이다. 하지만 불행히도 사람들은 현실에선 그런 식으로 행동하지 않는다. 사람들은 문제를 고려할때 보통 일정한 범위 안에서 가능한 해결책을 동시에 고려한다.
- 에러관리 : 맥팔랜드는 모듈의 기능과 인터페이스에 대한 정의를 내리는 동안 발생 가능한 특정 에러 상황을 정의하는 것도 가능은 하다. 하지만 이렇게 에러에 대해 내부 반응을 정의하는 것은 설계자가 모듈의 상세 구현을 고려하고 있음을 의미하는 것이다. 이것은 추상화 원리를 위반하기도 하거니와 적절하지도 않다. 폭포수 모델 하향식 원칙에 위배되지만 초기 설계를 하면서 정의하고 사용해혼 모듈의 인터페이스는 바뀔 가능성이 높다.
- 합당한문제 : 합당한 문제는 정의될수있고, 해결책이 나올수 있다. 하지만 고약한 문제는 정형화되어 있지않으며, 해결책의 일부가 문제 공간안에 있다. 특히 문제를 해결하고 나서야 완전히 이해할수있다. 이것은 최종 해결책에 도달하기 전에 중간 결과를 반드시 얻어야 한다는 것을 뜻하거나, 아니면 문제가 정의되면서 동시에 해결된다는 것을 의미한다.
폭포수 모델의 변종
폭포수 모델은 변종이 많아서 설명하기 쉽지 않다. 전통적으로는 9 단계이지만, 13단계까지 될수도 있으며,
...