태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Waterfall과 Agile

2009/02/06 12:35 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

주변에서 Waterfall이 좋다 Agile이 좋다 등의 논쟁을 가끔 보게 됩니다.

하지만 Waterfall을 비교 대상으로 삼기에는 적당하지 못한 것 같습니다.

즉, 너무 극과 극의 비교입니다.

 

이미 Waterfall 방식은 너무 느리고 비용이 많이 들어서 대부분의 소프트웨어 프로제트에서는 사용하지 않습니다. 하지만 Waterfall 방식은 소프트웨어 개발의 기본 원리를 이해하는데 가장 중요한 모델이고 다른 모든 개발 모델들은 Waterfall에서 파생해 나온 것들이기 때문에 Waterfall 방식을 이해하는 것은 소프트웨어 개발 기본 원리를 이해하는 것처럼 중요합니다.

 



순수한 Waterfall 모델은 다음 단계로 진행하기 위해 전 단계가 완벽하게 끝나야 하고 모든 결과가 문서로 작성되어야 합니다. 폭포를 거슬러 올라가는 것이 원칙적으로 불가능하므로 Waterfall 모델에서는 이전 단계로 거슬러 가는 것이 불가능하거나 비용이 아주 많이 들게 됩니다.

 

현실에서는 이를 제대로 적용하기가 어려운 이유는 대부분의 소프트웨어 프로젝트는 요구사항을 초기에 완벽하게 파악하여 고정하는 것이 불가능하기 때문입니다. 더 많은 시간을 들여서 요구사항을 완벽하게 해도 시간이 흐르면서 주위 환경이 바뀌고 경쟁자들이 새로운 제품을 내놓는 등의 이슈로 인해서 이미 만들어 놓은 요구사항은 쓸모 없어 집니다. 그리고 너무 많은 문서를 요구하기 때문에 문서 작성과 관리에 너무 많은 시간을 쏟아 부어야 합니다. 그리고 프로젝트가 끝날 때까지 진행과정을 거의 볼 수가 없어서 사용자의 요구사항이 만족스러운지를 프로젝트가 끝날 때까지는 알 수가 없습니다. 이 또한 큰 리스크입니다.

 

만약에 Waterfall 모델을 따라서 개발하고 있다고 말할 수 있는 회사가 있다면 제대로 적용하고 있지 않거나 화성탐사선을 만드는 회사일 것입니다.

 

모든 종류의 프로젝트에 딱 적합한 방법이 있는 것은 아니니까 어느 한 라이프사이클 모델을 엄격하게 따를 필요는 없습니다. 원리만 알고 있고 경험이 있다면 응용이 가능하니까요. 

저작자 표시 비영리 변경 금지

전규현 개발프로세스

Trackback Address: http://allofsoftware.net/trackback/71 관련글 쓰기
  1. 2009/02/08 13:08
    멤피스의 생각 Tracked from cychong's me2DAY
  1. 엇... 그런데 한국에서 수행되는 대부분의 프로젝트들은
    폭포수모델에 따라 진행되고 있는 것 같습니다.
    SI 업종 뿐만 아니라, 다른 곳에서 개발하는 사람들, 업무를 접하다 보면
    다들 자연스럽게 폭포수 모델을 따르는 걸 보게 되죠.

    기초기획 -> 상세기획 -> 디자인 -> 한참 지나서 개발팀에 넘어오고,
    개발팀은 충분히 설계할 시간도 없고, 인프라웨어를 설치할 시간도 없고,
    iteration을 경험할 틈도 없이... 스펙대로 기능들을 하나씩 만들어가고...

    개발팀 스스로도 iteration의 필요성을 느끼고 실천해야 하지만,
    개발팀이 곧 전체 팀은 아니기 때문에 다양한 역할을 가진 사람들이
    우선 서로의 입장을 이해하고 논의하는 과정이 선행되어야 한다고 생각합니다.

    사실 남의 핑계대자면 끝도 없는 것이지만,
    에자일이라는 용어 혹은 개념을 좀 더 쉽게 풀어서 개발업무에서 벗어난 사람들에게
    알리는 행동들도 필요하지 않을까 생각합니다.

    제가 처음 IT에 발을 들여놓을 때와 달리
    지금은 개발자들이 바로 프로젝트를 시작하는게 아니라
    전문 기획자, 컨설팅팀, 디자이너 등 다양한 사람들이 프로젝트 계획 수립에
    참여하고 있으니까요~ 개발팀에서 에자일 어쩌고 하면, 무슨 얘기야? 하죠. ^^;

  2. 써니님 안녕하세요.
    저는 Agile을 주장하는 것은 아니고, 프로젝트는 종류가 천차만별이거든요. 원자력발전소를 만든다면 Waterfall모델을 따를 수 있겠죠. 규모가 크고 작고, 기술이 어렵고, 쉽고, 일정 크리티컬하고, 비용이 중요하고 요구사항을 잘 모르겠고, 이러한 조건에 다 맞는 방법을 하나만 대라고 하면 할말이 없는 거죠. Agile은 프로젝트의 규모가 커지면 맞지 않죠. 스펙이 뻔한 유지보수 프로젝트에는 Waterfall로 진행하는 것이 더 빠를 수 있습니다. 그래도 Waterfall의 원리를 아는 것은 매우 중요한 것 같습니다.

  3. "폭포수 vs 애자일"에 대한 논쟁은 적합하지 않지만, "계획기반 vs 경험기반"에 대한 논쟁은 충분히 가능하겠네요.

    애자일 방법론은 경험기반의 불확실성을 내포하고 있기 때문에 관리자는 통제와 조절이 가능할지에 대한 의문을 가지게 되는데요. 가장 풀어내기 어려운 숙제인것 같습니다.

    사실, 계획기반 방법론자에게 폭포수모델을 사용한다고 단정지으면 그들은 애자일 방법론자에게 Code&Fix를 한다고 맞받아 칩니다. 상호간에 이해와 포용이 필요합니다.

  4. YUZI님 안녕하세요.
    세상이 잘못된 방법론이란 없습니다. 자신의 상황에 맞게 적절히 적용해야 하는 것이고 그것이 어려운 것입니다. 얄팍한 지식을 가지고 자신이 하는 방식이 최고라고 하는 것은 경계해야할 자세입니다.

  5. 사실 본질적으로 "폭포수 vs 애자일"에 대한 논쟁이나 "계획기반 vs 경험기반" 논쟁이 과연 다를까요?
    이분법은 무언가 원리를 설명할 때 추상화와 대비를 위해 효과적일 뿐이죠.
    계획 기반으로 한다고 경험에 기반하지 않나요? ^^
    애자일을 적용한다고 워터폴을 피할 수는 없죠. 이는 Ray님 포스트에서도 설명하고 있습니다.
    실제 현장에서 일하는 방식을 가지고 이분법 논의는 순진한 발상이 아닌 다음에야 말하는 이가 중요하게 생각하는 어떤 아이디어를 설명하고자 '대비와 추상화'를 활용했다고 이해할 수 있을 듯 합니다.

스펙을 제대로 작성하는 것은 구식이다?

'소프트웨어 개발 방법이 얼마나 발전했는데 아직도 스펙을 제대로 작성하고 개발을 하는가?' 라고 하면서 스펙 작성에 반대하는 주장을 하는 사람들이 있다. 스펙, 설계를 작성하고 구현을 하고 테스트를 하는 방식으로 개발하는 것..

내가 개발에 집중할 수 없는 이유

우리나라에서는 개발자들이 개발에 집중할 수 없는 환경인 곳이 참 많다. 정도의 차이가 있지만 거의 대부분이라고 봐도 무방하다. 그 결정적인 이유는 개발자 혼자서 북치고 장구치고 다해야 하는 상황이기 때문이다. 원래는 이렇게..

설계가 필요할까?

최근에 Software Architect의 정체에 대해서 혼란을 겪고 있는 것 만큼 Software 설계에 대해서도 혼동스러운 것은 마찬가지인 것 같다. 그래서 설계에 대해서도 깔끔하게 정의를 해보자. 흔히 설계에 관한 다음..

Software Architect를 양성하는 나라

우리나라에서는 종종 SW Architect를 양성한다고 한다. 정부에서 막대한 예산이 지원도 되며 SW Architect를 양성하는 학원도 생기고 야단법석이다. 그럼 도대체 SW Architect는 무엇인가? SW Archi..

우리에게 지금 필요한 것은? 바로 이것

우리나라 대부분의 소프트웨어 회사들에게 가장 시급하게 필요한 것은 "기초 체력"이다. 히딩크가 우리나라 국가대표 축구팀을 처음 맞았을 때 강조한 것이 기초 체력이었다. 그전까지 우리는 국가대표 축구팀이 체력은 세계 어디를 내..

프로토타입을 재활용하면 될까? 안될까?

며칠 전 프로토타입에 관해 올린 글에 대해서 프로토타입 재사용에 대해서 여러 의견이 있어서 이 내용에 대해서 조금더 설명해보려고 한다. 2011/11/03 - [프로젝트/요구사항분석] - 프로토타입이란? 소프트웨어공학의 목적..

프로토타입이란?

프로토타입 (경제/경영) 양산(量産)에 앞서 제작해보는 원형(原型)을 '프로토타입'이라 하는데, 프로토타이핑이란 개발자들과 사용자들의 의사소통상의 효과를 증진시키기 위하여 취하는 시스템개발상의 기법이다. 일반적인 분석방법을..

같이 일하려면 적어라.

"협업은 말로 하는 것이 아니라 문서로 하는 것이다." 동서고금을 막론하고 개발자들은 적는 것을 싫어하고 또 잘 적지 못한다. 우리나라 개발자들은 그 정도가 훨씬 심하다. 우리나라에서는 회사가 크던 작던 상관없이 대부분 5년..

우리 식대로
우리 식대로 2011/10/30

"우리 식대로" 마치 북한에서 하는 얘기 같지만, "우리 식대로"를 주장하는 소프트웨어 회사는 의외로 많다. 체계가 하나도 없이 완전 주먹구구 방식의 소프트웨어 회사가 있는가 하면 "우리 식대로"를 주장하여 정말 많은 일을..

문서는 얼마나 적어야 할지?

소프트웨어 개발 프로젝트에서 문서는 적게 적어야 한다. 다시 말하면 "보통의 회사에서는 문서는 필요한만큼만 가장 적게 적어야 한다." 물론 문서를 많이 적으면 여러 각도에서 상세히 적기 때문에 중복은 많이 발생하지만 잘못된..