본문 바로가기
Computer Science/Software Engineering

[Software Engineering] Chapter 08. 소프트웨어 개발 프로세스 - 현대적 모델(Agile, 점진적)

by song.ift 2023. 2. 23.

현대적 모델

 

애자일(Agile) 개발 프로세스

  • Agile : 재빠른, 민첩한
  • 처음에 계획을 수립한대로 끝까지 개발하는 폭포수 모델과 반대되는 개념
  • 일정한 주기를 갖고 짧고 반복적으로 개발하여, 끈임없이 프로토타입을 만들고, 수정해가며 하나의 커다란 소프트웨어를 개발해나가는 것
  • 개발 즉시 피드백과 필요한 요구사항을 받으므로 변화에 유연하게 대처할 수 있는 문화
  • 특정 개발 방법론(모델)을 가리키는 말이라기 보다는, 기민하고 민첩하게 반복적으로 개발하는 다양한 방법론 전체를 일컫는 말

 

Agile = 빠르고 쉽게!

  • 변화에 대한 효과적인 (신속하고 적응적인) 대응
  • 모든 이해관계자 간의 효과적인 의사소통
  • 팀에 고객을 포함
    • 고객의 역할은 요구사항 제공, 우선순위 부여, 평가하는데 중요
  • 수행하는 작업을 제어할 수 있도록 팀 구성
    • 프로세스보다 사람

 

Ex)

기존 IT 회사

  • 영업팀 : 제발 고객이 빨리 상품 좀 찾게 해줘. 내가 파는 상품 못찾는 것 같아 (기획팀 수차례 압박, 사장님 동원)
  • 기획팀 : 쇼핑몰에 검색 기능 넣으면 매출 늘 것 같아 (기획안 확정 2개월, 기획팀장 승인)
  • 개발팀 : 검색 기능 설계 완료 (개발팀장 승인, 6개월 내 개발 확정)
  • 검색 기능 개발, 하지만 영업팀 왈 상품 판매자 검색도 되게 해줘야지.

고객은 이미 검색 기능 없어서 다른 쇼핑몰로 이동했다..

Agile

  • Product Owner
    • 영업팀과 오늘 얘기해보고, 분석해보니 검색 기능 필요할 것 같아 이번 달에 기능 추가해줘
  • 개발팀 + UX 디자이너
    • 일단 검색 기능 만들께. 한달동안 우선 가장 최소 기능만 만들꺼야
  • 최소 기능 개발 후, 고객 반응보니 검색 기능에 상품 판매자 검색 기능도 넣어줘야겠어
  • 개발팀 + UX 디자이너
    • 알았어. 이번달에 해당 기능 넣어볼께

고객의 빠른 요구 변화에 빠르게 대응해보자!

 

Agile 선언문

우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다.

이 작업을 통해 우리는 다음을 가치있게 여기게 되었다

  • 공정과 도구보다 개인과 상호작용
  • 포괄적인 문서보다 작동하는 소프트웨어
  • 계약 협상보다 고객과의 협력
  • 계획을 따르기보다 변화에 대응하기를

위는, 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.

 

Incremental Development Model(점진적 개발)

  • 끝까지 완성된 버전을 한 번에 전달하는 것이 아니라, 점진적으로 결과물을 만들어낵 전달
  • 우선순위가 높은 핵심 요구사항을 먼저 개발
    • MVP(Minimal Viable Product) : 최소한의 기능을 구현한 제품
  • 장점
    • 요구사항 변경에 유연함
    • 빠른 개발 가능
    • 클라이언트가 빠르고, 명확하게 프로젝트의 아이디어와 실현 가능성을 확인할 수 있음
  • 단점
    • 반복으로 인해 비용이 증가할 수 있음

댓글