[소프트웨어공학] 애자일(Agile)이란?
Agile Process, Agile Software Development, Agile Methodology ... 부르는 이름도 많은 애자일!
"고객에게 가치가 있는 software를 일찍, 지속적으로 전달하여 고객을 만족시켜라."
애자일은 software를 개발하는 방식 중 하나다. 이전에 설명한 폭포수 방식과 개념적으로 반대되는 방식이다.
폭포수가 일방적으로 완벽히 정해진 스케줄을 그대로 따르며 선형적으로 진행하는 방식이었다면 애자일은 작은 iteration(또는 sprint, 주기)마다 제품을 만들고 고객과 끊임없이 소통하며 더 나은 production을 제작하는 방식이다.
IID(Iterative and Incremental Development) 방식 채용!
작업 우선순위가 중요하며 시간이 지날수록 production의 가치는 올라가는 동시에 위험요소는 내려간다.(시간이 지날수록 위험 요소가 올라갔던 폭포수와 다른 점)
✅ Self-organizing
팀은 작고 단단하게 작동한다.
✅ Cross-functional
작은 팀 안에 모든 기술력을 지니고 있어야 한다.
Iterative and Incremental Development(IID) 반복적이고 점진적인 개발 방법
➡ 매 iteration마다 실행 가능한 production이 나온다.
1️⃣ Individuals and interactions
2️⃣ Working software
3️⃣ Customer collaboration
4️⃣ Responding to change
📛 단점 📛
- 예측 가능성이 부족하다.
- 고객 의존성이 높다.
- Scope creep