Study/소프트웨어공학
애자일
Gyuri
2021. 8. 22. 20:23
애자일 개발 방식
점진적/반복적 개발 방식
- 점진적 개발 : 이전 시스템에 새로운 요구사항 추가해 개발
- 반복적 개발 : 반복적으로 기존의 (이전의) 시스템을 반복적으로 개선하고 수정함
모든 불확실성은 프로젝트 초기에 제거하는 것은 불가능하기 때문에 불확실성을 줄이기 위해서는 제품을 고객에게 보여주고 피드백을 받아 다음 제품에 반영하는 것!
점진적으로 불확실성을 낮춤
애자일 프로세스 : 반복적이고 점진적인 개발 방법 따름
이터레이션 이라는 짧은 개발 기간으로 나누고 그 기간이 종료되면 사용자가 피드백을 줄 수 있게 동작하는 소프트웨어가 산출됨. 이터레이션 기간은 짧기 때문에 개발팀이 기간동안 만들 수 있는 소프트웨어는 제한적임.
요구사항은 우선순위가 있어야 하고 우선순위에 따라 개발이 진행됨
각 이터레이션에서 설계, 구현, 테스트, 분석을 함. 피드백을 바탕으로 요구사항이 들어오면 추가를 하고, 프로그램을 개선함
애자일 개발방식 (IID)
- 소프트웨어 개발 주기를 여러 개의 반복주기로 구분 (이터레이션 : iteration )
- 각 반복주기에서 요구분석, 설계, 구현, 테스트와 같은 활동들로 구성된 소규모 프로젝트
- 각 반복주기가 종료되면 부분적으로 완성된 시스템이 산출됨
- 반복주기에서 산출된 시스템은 내부 개발자가 관리하는 것이고 사용자에게 외부적으로 릴리즈 되는 것은 최종 반복주기의 산출물임
- 각 이터레이션의 반복주기는 보통 1주-4주. 반복마다 새로운 요구사항이 추가돼 개발함
- 각 반복주기에서 개발할 요구사항은 고객이 각 반복주기 시작 전에 선택하는데 우선 순위가 높은 순서부터 개발하기 때문에 고객은 자신에게 가장 높은 비즈니스 가치를 가져다 주는 요구사항의 우선 순위를 가장 높게 둠
- 요구사항의 선정이 각 반복주기가 시작할 때마다 이뤄지기 때문에 자주 변경될 수 있는 고객의 요구사항을 탄력적으로 처리할 수 있는 기회 제공
- 일단 반복주기에 들어서 개발이 시작되면 더 이상 요구사항의 변경 받아들이지 X
애자일 선언
- 애자일의 사전적 의미 : 민첩한, 날렵한, 기민한
- 폭포수 모델과 같이 문서중심의 복잡하고 프로세스 위주의 방법론과 대치됨
1. 개인과 그들과의 소통을 프로세스와 도구(개인의 관심사를 중요시 여기지X)보다 더 중요시 여긴다
2. 문서화 보다는 실제 동작하는 소프트웨어에 가치를 둔다
3. 계약관계가 아닌 고객과의 협력을 중요시 여긴다
4. 계획을 따르기 보다는 변화에 대응한다 (변화를 거절하지 X) 프로젝트 막바지에서도 변화 거부 X
폭포수 모델의 문제점을 깨닫고 스키장에서 모여 XP, Scrum과 같은 방법론이 어떤 점을 갖고있는가? 토론하며 탄생한 것이 ‘애자일 선언’ 이다!