태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

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를 개발하면 더 오래 걸린다고 굳게 믿고 있었다. 어느 정도 이해가 되는 상황이다. 원래 소프트웨어 공학은 실전에서..

이슈를 모으기도 정말 어렵다.

많은 회사들이 개발 프로세스 개선을 하겠다고 선진 개발 방법론을 흉내내거나 실패한 대기업의 프로세스를 가져다가 적용하곤 한다. 복잡한 프로세스와 많은 Template를 가져다가 적용해보려고 하는데 대부분은 실패를 한다. 기초..

변화에 실패하는 9가지 고정관념

회사는 끊임없이 변화하지 않으면 지속 성장하지 못한다. 하지만 변화는 피와 살을 깍는 고통을 동반하고 또 많은 회사가 변화에 실패해서 성장하지 못하거나 사라져간다. 보통의 사람들은 대부분 변화를 싫어하고 기존에 하던대로 계속..

좋은 프로그래머가 되는 24가지 방법

1. 프로그래밍에 열정이 있어야 한다. 열정이 없고 즐기지 못하면 평생하기 어려운 일이다. 2. 프로그래밍 기초 원리를 완전히 이해해야 한다. 원리를 모르면 근본적인 해결을 할 수 없다. 3. 문제 해결 능력을 키워야 한다...

요즘 실리콘밸리에서는...

얼마전 실리콘밸리의 한 Startup company에서 CTO로 일하고 있는 오랜 친구가 한국에 놀러와서 같이 여행을 갔다. Informix에서 소프트웨어 엔지니어로 시작해서 한 20년 정도 일한 중국인 친구다. 같이 일을..

전문가 vs. 책임자

우리나라 조직문화는 전문가보다 책임자를 선호한다. 조직의 장이 책임을 지고 모든 일을 알아서 하는 것이다. 상명하복 관계 위주다. 경영자가 SW개발에 대해서는 잘 모르는 경우 누구 한명이 책임지고 개발해줬으면 하는 생각을 하..

소프트웨어 회사의 자산은?

소프트웨어 회사의 자산은 무엇일까? 흔히 개발자가 소프트웨어 회사의 재산이라고 한다. 이런 회사일 수록 회사가 가지고 있는 것은 정말 개발자밖에 없다. 또한 파악하기 어려운 한 무더기의 소스코드가 있다. 개발자들이 나가면 이..

관리자가 이런 일까지?

우리나라 SW 조직에서 관리자란 위치는 참 애매한 위치다. 물론 전문 관리자라면 얘기가 다르지만 왕년에 SW를 조금 개발해 본 경우가 애매하다. 개발팀에서 가장 경험이 많은 SW 개발자들이 주로 팀장이 되곤 한다. 이 경우와..

과거의 성공이 발목을 잡을 때

수많은 소프트웨어 회사들이 첫번째 성공을 거두고 나서 두번째 도약에 실패하고 사라져간다. 물론 첫번째 성공도 어렵지만 이미 성공의 경험이 있고 방법을 알고 있는 회사들이 두번째 또는 세번째에는 많이 실패하는 이유가 무엇일까?..

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

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