현대적 모델
애자일(Agile) 개발 프로세스
- Agile : 재빠른, 민첩한
- 처음에 계획을 수립한대로 끝까지 개발하는 폭포수 모델과 반대되는 개념
- 일정한 주기를 갖고 짧고 반복적으로 개발하여, 끈임없이 프로토타입을 만들고, 수정해가며 하나의 커다란 소프트웨어를 개발해나가는 것
- 개발 즉시 피드백과 필요한 요구사항을 받으므로 변화에 유연하게 대처할 수 있는 문화
- 특정 개발 방법론(모델)을 가리키는 말이라기 보다는, 기민하고 민첩하게 반복적으로 개발하는 다양한 방법론 전체를 일컫는 말
Agile = 빠르고 쉽게!
- 변화에 대한 효과적인 (신속하고 적응적인) 대응
- 모든 이해관계자 간의 효과적인 의사소통
- 팀에 고객을 포함
- 고객의 역할은 요구사항 제공, 우선순위 부여, 평가하는데 중요
- 수행하는 작업을 제어할 수 있도록 팀 구성
- 프로세스보다 사람
Ex)
기존 IT 회사
- 영업팀 : 제발 고객이 빨리 상품 좀 찾게 해줘. 내가 파는 상품 못찾는 것 같아 (기획팀 수차례 압박, 사장님 동원)
- 기획팀 : 쇼핑몰에 검색 기능 넣으면 매출 늘 것 같아 (기획안 확정 2개월, 기획팀장 승인)
- 개발팀 : 검색 기능 설계 완료 (개발팀장 승인, 6개월 내 개발 확정)
- 검색 기능 개발, 하지만 영업팀 왈 상품 판매자 검색도 되게 해줘야지.
고객은 이미 검색 기능 없어서 다른 쇼핑몰로 이동했다..
Agile
- Product Owner
- 영업팀과 오늘 얘기해보고, 분석해보니 검색 기능 필요할 것 같아 이번 달에 기능 추가해줘
- 개발팀 + UX 디자이너
- 일단 검색 기능 만들께. 한달동안 우선 가장 최소 기능만 만들꺼야
- 최소 기능 개발 후, 고객 반응보니 검색 기능에 상품 판매자 검색 기능도 넣어줘야겠어
- 개발팀 + UX 디자이너
- 알았어. 이번달에 해당 기능 넣어볼께
고객의 빠른 요구 변화에 빠르게 대응해보자!
Agile 선언문
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다.
이 작업을 통해 우리는 다음을 가치있게 여기게 되었다
- 공정과 도구보다 개인과 상호작용을
- 포괄적인 문서보다 작동하는 소프트웨어를
- 계약 협상보다 고객과의 협력을
- 계획을 따르기보다 변화에 대응하기를
위는, 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
Incremental Development Model(점진적 개발)
- 끝까지 완성된 버전을 한 번에 전달하는 것이 아니라, 점진적으로 결과물을 만들어낵 전달
- 우선순위가 높은 핵심 요구사항을 먼저 개발
- MVP(Minimal Viable Product) : 최소한의 기능을 구현한 제품
- 장점
- 요구사항 변경에 유연함
- 빠른 개발 가능
- 클라이언트가 빠르고, 명확하게 프로젝트의 아이디어와 실현 가능성을 확인할 수 있음
- 단점
- 반복으로 인해 비용이 증가할 수 있음
'Computer Science > Software Engineering' 카테고리의 다른 글
[Software Engineering] Chapter 10. 코딩 컨벤션 및 네이밍 컨벤션 (0) | 2023.02.25 |
---|---|
[Software Engineering] Chapter 09. 프로세스 - 구현 단계 (0) | 2023.02.23 |
[Software Engineering] Chapter 07. 소프트웨어 개발 프로세스 - 전통적 모델(폭포수, 나선형, V) (0) | 2023.02.23 |
[Software Engineering] Chapter 06. 소프트웨어 개발 프로세스 (0) | 2023.02.23 |
[Software Engineering] Chapter 05. 아키텍처 설계 (0) | 2023.02.23 |
댓글