전공 공부/소프트웨어공학
[소프트웨어공학] 애자일 (Agile) 모델
Yujin Chang
2024. 10. 17. 17:10
정의
문서작업 및 설계에 집중하던 개발 방식에서 벗어나, 좀 더 프로그래밍에 집중하는 개발 방법론.
정해진 계획만 따르기보다, 개발 주기 혹은 소프트웨어 개발 환경에 따라 유연하게 대처하는 방식. 계획과 개발, 출시와 같은 개발 주기가 여러 번 반복되며, 개발 환경에 맞게 요구사항이 추가되거나 변경됨.
결과적으로 고객에게 좀 더 빨리 결과물을 내놓을 수 있고, 고객의 피드백에 민첩하게 반응할 수 있음. 기능은 비즈니스 가치 순서대로 구현하며, 일정은 주로 범위를 조절하며 관리함.

4대 선언
- 공정과 도구보다 개인과 상호작용을
- 포괄적인 문서보다 작동하는 소프트웨어를
- 계약 협상보다 고객과의 협력을
- 계획을 따르기보다 변화에 대응하기를
12가지 원칙
- 가치 있는 소프트웨어를 조기에 지속적으로 제공함으로써 고객을 만족시키는 것을 최고 우선순위로 한다.
- 개발 작업 후반부일지라도 요구사항 변경을 기꺼이 수용한다. 애자일 프로세스는 변화를 활용해 고객의 경쟁력에 도움이 되게 한다.
- 2주에서 2개월 주기로 작동하는 소프트웨어를 자주 제공하되, 더 짧은 시간 단위를 선호한다.
- 프로젝트 전반에 걸쳐 비즈니스 담당자들과 개발자들이 매일 함께 작업해야 한다.
- 동기가 부여된 개인들을 중심으로 프로젝트를 구성한다. 구성원들이 필요로 하는 환경과 지원을 제공하고, 담당 업무를 완수할 것임을 신뢰한다.
- 개발팀에 그리고 팀 내부에서 가장 효과적, 효율적으로 정보를 전달하는 방법은 대면 대화이다.
- 작동하는 소프트웨어가 진처의 주된 척도이다.
- 애자일 프로세스는 지속 가능한 개발을 장려한다. 스폰서와 개발자, 사용자들이 일정한 속도를 계속 유지할 수 있어야 한다.
- 기술적 탁월성과 좋은 설계에 대한 지속적인 관심으로 기민함을 향상시킨다.
- 단순성 - 아직 하지 않은 작업량을 최대한 세분화하는 기술 - 은 필수적이다.
- 최고의 아키텍처, 요구사항 및 설계는 자율구성팀에서 비롯된다.
- 팀은 정기적으로 더 효과적인 방법을 찾아서 반영한 다음, 그에 따라 업무 활동을 조율하고 조정한다.
장점
- 유연성: 변화에 신속하게 대응 가능
- 고객 만족도 향상: 지속적인 피드백 반영
- 빠른 출시: 반복적 개발로 제품 조기 출시
- 팀워크 강화: 협업과 소통 증진
- 위험 감소: 정기적 검토로 문제 조기 발견
단점
- 불명확한 최종 결과물: 초기 계획의 모호성
- 문서화 부족: 지식 전달의 어려움
- 시간 및 리소스 관리의 어려움
- 이해관계자 참여 부담: 지속적 참여 필요
- 대규모 프로젝트에 적용 어려움
vs 워터폴
- 접근 방식: 워터폴은 순차적, 애자일은 반복적
- 유연성: 워터폴은 경직, 애자일은 유연
- 고객 참여: 워터폴은 제한적, 애자일은 지속적
- 문서화: 워터폴은 상세, 애자일은 간소화
- 프로젝트 규모: 워터폴은 대규모에 적합, 애자일은 중소규모에 유리