TIL

<TIL 20.11.25> 애자일 방법론 vs 폭포수 방법론

유댕2 2020. 11. 25. 15:45

폭포수 방법론

  • 미리 정해진 몇 개의 단계에 따라 엄격한 순서대로 이루어지는 일직선의 과정이다.
  • 확실하고 명확한 계획으로 시작되어, 각각의 엄격하게 기록된 단계를 통해서 매우 밀접하게 진행이 된다.
  • 각 단계는 겹치지 않고, 다음 단계로 넘어가기 전에 완벽하게 완료되어야 한다.
  • 프로젝트가 제대로 진행되는지 매 단계 후에 검토한다.
  • 제품 테스트는 모든 개발이 완료된 후에 이루어진다.
  • 시간과 돈을 더 투자하지 않는 이상 중간에 바꿀 수 없기 때문에, 이 방법을 이용한다면 대담하게 진행해야 한다.
  • 폭포수 방법론은 자신이 원하는 것을 정확히 알고 있으며, 개발 과정 중에 사소한 것을 바꾸지 않을 고객들에게 좋은 선택이다.
  • 상세한 문서와 엄중한 계획 때문에 프로젝트 관리는 명확하고, 최종 제품은 미리 정해진 계획표와 예산액에 맞추어져 있을 것이다.

폭포수 방법론의 장점

  1. 프로젝트를 시작하기 전에 프로젝트의 범위, 비용, 타임라인에 대해 자세하게 알 수 있습니다. 예상하는 것과 비슷하게 만들 수 있다.
  2. 까다로운 계획 때문에 각각의 개발자들이 다른 부분에서 일을 하기 때문에 더 쉽게 프로젝트 관리를 할 수 있다.
  3. 단계별 개발은 규율을 시행하고, 중요한 단계들은 확인되고 관찰된다.
  4. 빠듯한 기한이 없거나 필수 조건들이 적은 작은 프로젝트에 적합하다.

 

애자일 방법론

  • 소프트웨어 개발은 제조업의 조립라인처럼이 아닌, 점진적인 방법으로 진행해야 한다고 주장되었다.
  • 소프트웨어를 길고 연속된 단계로 개발하는 방법 대신에, 애자일은 스프린트라는 단계로 이루어진다.
  • 이러한 반복적인 일의 흐름은 개발 팀이 프로젝트의 방향을 몇 주마다 검토할 수 있게 해 주며, 동시에 버그를 고치고, 필요한 것을 바꾸며, 그에 따라 개발을 다시 진행할 수 있게 해 준다.
  • 12개의 원칙 선언은 가벼운 개발 방법을 통한 고객과의 협력을 강조한다.
  • 과정과 도구보다는 개인과 상호작용을 더 중요시하며, 계획을 따르는 것보다 변화에 대처하는 것을 보여준다.
  • 애자일 선언문은 고객 개입과 넓은 개발자 팀워크를 강조하며 인간적인 요소를 더해 소프트웨어 개발 방법의 전환점이 되었다.

짧은 주기의 개발 단위를 자주 반복해서 하나의 큰 소프트웨어를 완성해 나가는 방법론

애자일 방법론의 장점

  1. 프로젝트 진행 중간중간에 필요한 요소들을 바꿀 수 있다.
  2. 시작할 때 프로젝트를 정확하게 규정하지 않아도 된다.
  3. 작은 요소들을 출시할 때 빠르게 만들 수 있다.
  4. 점진적으로 테스트되기 때문에 초기에 버그를 발견할 수 있다.

애자일 방법론의 단점

  1. 급한 이슈에 대해서 유연하지 않음 : 스프린트 기간 동안은 이슈의 변동이 최소화 되어야 합니다. 하지만 이 문제는 스프린트 기간에 이런 갑작스러운 이슈에 대응하기 위한 추가 기간을 삽입해서 해결 할 수 있을것입니다.
  2. 스토리 포인트 예측의 어려움 : 스토리 포인트를 정확히 예측해서 깔끔하게 스프린트가 마무리 되게 하기가 어렵습니다. 한번도 개발해본적 없는 기능을 개발하다보면 실제보다 더 오랜 기간이 걸리는 경우가 허다합니다.
  3. 애자일 방법론 자체에 많은 준비 시간이 소요됨 : 스프린트 플래닝 미팅에서 팀원 모두가 이슈에 대해 논의하고 각 이슈에 대한 스토리 포인트를 합의해야합니다. 이런 과정이 많은 시간을 잡아먹습니다.
  4. 인원이 많아지면 비효율적임 : 소수의 팀원들이 끈끈하게 커뮤니케이션 할 때 스크럼의 장점이 극대화 됩니다. 5명 전후의 팀원이 가장 이상적이고 10명이 넘어가면 오히려 좋지 않다고 합니다.

 

폭포수 방법론은 필수 요소에 의해 진행이 되기 때문에 내향성을 띠고 있는 반면, 애자일 방법은 외향적인 방법이라는 것을 알 수 있다.

결론

물론, 각각의 방법론은 장점과 단점이 있기 때문에 웹 개발 프로젝트를 시작하기 전에 같이 일하는 사람들과, 고객들, 그리고 업무에 대해 자세히 알아보는 것이 좋다. 우선 사항을 파악하고 타임라인, 예산, 그리고 프로젝트의 종류에 대해서 생각해야 한다. 고객이 내향적인지 외향적인지, 자신이 원하는 것을 정확히 아는 사람인지 혹은 개발 과정에 적극적으로 관여해서 기회가 있을 때마다 변화를 추구하는 사람인지 파악하는 것이 좋다. 또한 프로젝트를 어떻게 진행하는지 주의를 기울여야 한다. 각각의 웹 개발 프로젝트를 평가하는데 도움이 될 것이다.

 

 

 

출처 : 헬로마켓 노션문서(애자일 개발 방법론)