1 개요[ | ]
- Agile software development, agile, Agile
- 애자일 소프트웨어 개발, 애자일 개발 프로세스, 애자일 방법론, 애자일 모형, 애자일
- "가벼운 프로세스"
- 협업 + 피드백 ★
- "민첩함", "능동적", "자발적", "형식에 구애받지 않음"
- 반복 점진 개발 + 품질 개선 활동[1]
- 프로그래밍에 집중하는 유연한 개발 방식
- 요구사항 피드백을 계속 받고 자주 릴리즈
- 반복적인 개발주기와 자기조직화 팀을 강조하는 실무적 방법 모음
- 프로젝트의 생명주기동안 반복적인 개발을 촉진하는 소프트웨어 공학 개념
- 신속하고 적응적으로 소프트웨어 개발을 실시하는 가벼운 개발 방법들의 총칭
- 가치가 프로젝트의 맨 마지막에 생성되는 폭포수 프로젝트와 달리, 애자일 소프트웨어 개발은 지속적·점진적인 가치 전달과 프로세스 자체의 진화적 개선에 중점을 둔다.
- 원리: 고객참여, 반복적 릴리스, 사람 중시, 변경 수용, 단순성 유지
- 타임박싱을 도입한다. 작동하는 소프트웨어를 기준으로 한다. 협업한다.
- 소프트웨어 프로젝트의 모든 이해관계자에 대한 요구사항을 정의, 의사소통 및 이해하는 것은 매우 어렵다.
- 그러나 고객은 소프트웨어 프로젝트가 제 시간에, 좋은 품질로, 예산과 범위 내에서 제공되기를 원한다.
- 폭포수 전략과 달리, 애자일 소프트웨어 개발은 주기적인 특성이 있어 요구사항을 지속적으로 적용하고 더 빠르게 적응할 수 있다.
- 애자일 소프트웨어 개발에는 요구공학, 계획, 구현, 검토, 테스트, 전달과 같은 전통적(폭포수와 같은) 전략의 모든 단계가 포함된다.
- 가장 큰 차이점은 소프트웨어 프로젝트의 전체 시간 범위가 각 단계가 모든 단계를 포함하는 반복으로 분할된다는 것이다.
- 각 반복 후에 생성된 가치는 고객과 함께 검토될 수 있으며 요구사항은 최종 목표를 향해 조정될 수 있다.
- 또한 개발 팀은 프로세스 자체를 개선하기 위해 취해야 할 조치사항에 대해 회고한다.
2 특징[ | ]
- 짧은 기간 단위[2]의 반복 절차를 통해 리스크를 줄임
- 개발 주기(계획, 개발, 출시)가 여러 번 반복
- 요구사항이 추가·변경됨
- 고객의 피드백에 민첩하게 반응
- 문서작업 줄이고 프로그래밍에 집중
- 고전적인 개발방법론, 폭포수 모형의 반대 개념
- 일정한 주기를 가지고 끊임없이 프로토타입 작성
- 상시적으로 요구를 추가·수정하는 과정 (적응형)
3 실천예시[ | ]
- ★ 익스트림 프로그래밍(XP) - 2주 주기로 반복개발
- ★ 테스트 주도 개발(TDD)
- RUP
- 스크럼 - 스프린트(30일 주기)마다 동작가능한 산출물
- 크리스탈 클리어
- 적응적 소프트웨어 개발
- 피처 드리븐 개발
- 동적 시스템 개발 방법(DSDM)
4 의견[ | ]
- 문서화 금지?[1]
- 문서를 통한 의사소통, 인수인계 지양하는 것은 맞음
- 문서를 만들지 말라는 것은 아님
- 문서를 어떻게 작성하는지가 중요…[3]
- 야근 금지?[1]
- 비효율적이므로 지양해야 하는 것은 맞음
- 다만 일정이 지연된다면 어쩔 수 없는 경우도 있음
- 애초에 계획을 잘못 세운 것이 문제임…[4]
5 같이 보기[ | ]
6 참고[ | ]
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.