[PM] 프로젝트 방법론(waterfall vs agile vs lean)

blockzzie·2023년 5월 10일
0

PM

목록 보기
5/9

프로젝트 개발에 적합한 방법론을 무엇일까? 다양한 방법론이 있지만 가장 널리 알려진 waterfall, agile, lean의 장단점 및 언제 사용하는 것이 좋은지(특징) 알아봤다.

🌊워터폴 Waterfall

waterfall 폭포수라는 의미에서 알 수 있듯이 워터폴 방법론은 각 작업이 폭포처럼 위에서 아래로 떨어지는 단계별 개발 방법론이다. 아래 단계가 순차적으로 진행되고 이전 단계가 끝나면 다음 단계로 떨어지는 방식이다.

요구사항 정의(설계) > 디자인 > 개발 > 테스트 > 배포

애자일 방법론이 등장하기 전 소프트웨어 개발 뿐 아니라 자동차, 선박 등 보편적으로 사용되던 프레임워크로 대기업에서는 아직도 워터폴 방법론을 쓸 수 있지만 스타트업이나 프로젝트 효율을 생각할 때는 유연하게 대처하기 어려워 요즘은 거의 사용하지 않는 것 같다.

워터폴 방법론 장단점

+ 체계화된 문서를 바탕으로 안정적으로 진행할 수 있다.
+ 각각의 단계가 완료된 후 다음 단계로 진행하기 때문에 리스크가 적다.
+ 팀 규모에 상관없이 따르기 쉽다.
+ 요구사항이 정의되어 있어 실행하기 수월하고 목표를 자주 변경하지 않아도 된다.
+ 초기에 필요 예산과 자원이 확정되기 때문에 예상결과와 리스크 통제가 쉽다.

- 요구사항 분석과 타당성 검토에 많은 시간이 소요된다.
- 협업의 경우 각각 개별 방안에 의해 진행된다.
- 고객과의 의사소통이 적다.
- 목표물이 후반부에 가야 가시화 된다.
- 개발 요구사항이 초기에 정해져 변경이 자유롭지 못하다.

워터폴 방법이 적합한 조직

  • 순차적인 프로젝트 타임라인 사전 확정 예산이 필요한 팀
  • 개발상 변경이나 리스크에 덜 민감한 팀
  • 요구사항이 간단하고 타임라인이 긴 프로젝트

🛟애자일 Agile

애자일은 1970년대 윌리엄 로이스가 대형 소프트웨어 시스템 개발에 관해 제출한 논문에서 처음 증장했고 스프린트(sprint)라는 짧고 점진적인 개발 주기로 구성된 프로젝트 관리 방법론이다.

애자일 방법론은 4가지 기본 가치와 12가지 원칙에 바탕을 두고 있으며, 반복적이며 사람 중심적인 개발 방식을 취한다.

계획 > 설계 > 개발 > 테스팅 > 배포 > 피드백

애자일(Ailge)의 뜻은 민첩한이란 의미를 가져 애자일 방법론은 일정한 주기를 갖고 제품을 빠르게 출시해 고객의 요구사항, 변화된 환경에 맞게 요구를 더 하고 수정해나가는 탄력적이다.

애자일 방법론 장단점

+ 개발 과정이 빠르면서 유연하다. ★
+ 짧고 반복적인 스프린트로 구성되어있고 품질에 초점을 맞춰 결함을 빠르게 식별할 수 있다.
+ 여러 소규모 팀들이 개발 과정 상의 여러 과제를 각각 할당받아 처리한다.
+ 짧은 반복 과정을 거치므로 필요 시 개발과정 중 신속하게 제품 변경을 할 수 있다.
+ 계획 세우기에 과도한 시간과 비용을 투입하지 않는다.
+ 민첩하면서 효과적인 의사결정이 이루어지고 정보가 모두에게 높은 수준으로 공유된다.

- 빠른 반복 작업에 익숙한 숙련된 사람이 필요
- 수많은 변경사항이 있을 수 있어 번거로움 발생 가능
- 팀원이 자립성이 없거나 잘 조직되어 있지 않는 경우 애자일 방법론은 문제가 발생 할 수 있다.

애자일 방법이 적합한 조직

  • 고품질의 결과물과 지속적 개선에 초점을 맞춘 조직
  • 크고 복잡한 회사들이 프로세스를 간소화해 변화에 신속하기 대응할 때
  • 사용자의 피드백을 수집하고 빠르게 개선이 필요한 경우
  • 요구사항이 변경되거나 문제 발생이 잦은 프로젝트
  • 고객, 시장의 변화에 빠르게 대응해야 하는 기업

추가로 '나는 애자일하게 일한다!' 라는 문구를 많이 보았는데 무슨 의미일까?

  • 형식보다는 원하는 결과나 성과를 얻을 수 있는 실용적인 접근을 중요시한다.
  • 적극적인 상호 소통과 협력한다.
  • 급변하는 환경에 빠르게 대응한다.
  • 효율성보다 반응성에 초점을 맞춰 의사결정 주기를 줄여 나간다.
  • 구성원의 동기부여를 위해 기존의 금전적 보상방식보다 내적/심리적 요인에 주목한다.

🚕린 Lean

린 소프트웨어 개발 방법론은 도요타의 프로세스를 S/W 개발에 적용한 방법론으로 애자일 방법론과 비슷한듯 달라 어떤 차이가 있는지 알아봤다. 린 개발 방식은 개발 방법론이라기보다 린스타트업 이란 단어도 익숙하듯이 사고방식이라고 생각하는 것이 적합하다(Leat Thinking).

린은 낭비를 발견하고 제거하여 고객에게 가치를 빠르게 제공할 수 있을지에 생각한다. 린 방법론의 특징은 품질 기법 SW 개발 프로세스를 적용해 낭비요소 제거 7가지 개발원칙을 준수한다.

린에서 대표적인 낭비 요소
Transportation, Inventory, Motion, Waiting, Over Production, Over Processing, Defects/Rework

린 개발의 7가지 원칙

  1. 낭비의 제거(Eliminate waste)
  2. 배움 증폭(Amplify Learning)
  3. 늦은 결정(Defer Commitment)
  4. 팀에 권한 위임(Empower the Team)
  5. 빠른 납품(Deliver Fast)
  6. 통합성 구축(Build Integrity in)
  7. 전체를 볼 것(Optimize the whole)

린 스타트업 프로세스 개념
아이디어 > 가설 > 설계 > 테스트 > 판단 (pivot으로 아이디어 단계로 돌아갈 수 있음: 가설 폐기) > 출시

린 방법이 적합한 조직

  • 린스타트업에서 먼저 가설을 세우고 MVP라는 형태로 고객에게 제품을 직접 전달한다. 이후 고객의 피드백을 통해 가설을 검증한다.
  • 단기간 동안 제품을 만들고 성과를 측정해 제품 개선에 반영하는 것을 반복하는 경우

린과 애자일 공통점과 차이점

(공통) 요구 사항의 변화를 적극적으로 수용
(공통) 제품을 고객에게 빠르게 전달해 고객 가치와 만족도를 높이는데 목적
(차이) 애자일은 개인 별 또는 팀 간 고객과 협업하고 빠른 개발을 수행하는 것에 초점(고객과 협업)
(차이) 린은 고객의 관점에서 전체 프로세스 상 낭비를 제거해 고객 가치를 높이는 것에 우선(전적으로 고객 관점)

린은 스크럼(scrum) 칸반(kanban)과도 비교되는데 다음 글에 알아본다.

profile
막무가내 코딩노트

0개의 댓글