본문 바로가기

프디아 백엔드

소프트웨어 개발 방법론 (애자일과 폭포수)

애자일과 폭포수 방법론에는 어떤 차이가 있을까? 먼저 짝꿍과 파트를 나누어 조사해보았다 (내가 폭포수 짝꿍이 애자일)

  • 폭포수
    • 요구사항 분석 → 설계 → 구현 → 검증(테스트) → 유지보수
    • 특징: 순차적 진행, 단계 검증, 하향식 접근, 피드백(결함 발견 시 전 단계로)
    • 장점: 수직적으로 진행되기에 과정에 대한 이해 용이, 각 진행 단계 별 산출물(문서)이 확실, 진행 중 및 진행 이후 관리 용이
    • 단점: 개발 도중에 요구사항이 변경되었을 경우, 추가적인 비용과 시간이 들게 됨
    • (수정사항을 반영하여 처음부터 진행), 사용자 피드백에 대한 빠른 대응 어려움, 각 단계가 종결되어야 다음 단계 진행 가능
    • 폭포수 모델 적용하기 좋은 조건
      • 고객의 요구사항이 단순하고 변경 가능성이 높지 않은 경우
      • 프로젝트의 규모와 난이도가 높지 않은 경우
      • 각 단계 종료 후 나올 산출물의 결과가 명확한 경우
    • 개선 모델 : 사시미 모델
  • 애자일
    • 작업 계획을 짧은 단위로 세우고 제품을 만들고 고쳐 나가는 사이클을 반복함으로써 고객의 요구 변화에 유연하고도 신속하게 대응하는 개발 방법론
    • 애자일 방법론은 프로젝트를 작은 단위의 작업과 단계로 나누는 프로젝트 관리 공정
    • 업무를 세부적으로 나눠 진행하기 때문에 팀이 공정의 각 단계에서 관계자의 피드백을 적용하고, 작업을 재평가하고, 신속하게 반복 작업을 실행

    • 애자일 방법론에서 가장 일반적으로 사용되는 방식은 짧은 개발 주기인 '스프린트'를 통해 업무를 점진적으로 진행하는 것입니다.
      • 이를 통해 팀은 업무를 신속하게 진행하고, 스프린트 계획 단계와 매일 진행되는 스크럼을 통해 관리자, 관계자들과 정기적으로 업무를 재평가할 수 있죠.
        프로젝트팀과 관계자들은 검토를 거쳐 업무를 현재의 방식대로 계속 진행할 것인지, 아니면 앞으로의 스프린트에서는 계획을 변경해 적용할 것인지 결정할 수 있습니다.
        전통적인 프로젝트 관리 방식과 비교하면 애자일 방법론은 속도, 유연성, 팀워크, 관계자의 요구 사항을 가장 우선순위로 둔다는 점에서 차이가 있습니다.
    • 워터폴(Waterfall) 방식은
      • 주문 ➪ 디자인 ➪ 기능구현 ➪ 테스팅 ➪ 배포
    • 애자일(Agaile) 방식은
      • "주문 ➪ 디자인 ➪ 기능구현 ➪ 테스팅 ➪ 배포" x ∞
    • 아주 작고 중요한 단위로 쪼갠 MVP(최소 기능 제품)를 구현하고 배포하는 것을 반복하자

나는 개발 단계에 대한 이해도를 높일 수 있는 폭포수 방식을 더 선호한다

 

그렇다면 설계가 중요할까 개발이 중요할까?

나의 생각은
개발이 조금 더 중요하다

구현 과정에서 설계와 어느 정도의 오차는 있는 게 자연스러운 거라고 생각하고 설계 과정에서 심각한 오류를 만들지 않았다면 개발 과정에서 해결 가능하다고 생각하기 때문이다