분리수거 대기중
Agile process
청소부
2019. 5. 9. 18:02
0. 개요
- agile: 형용사) 기민한, 재빠른, 민첩한
- 방법론
- 유연하게 일하는 방식
1. 폭포수 개발방식
1) 분석, 설계
3) 개발
4) 테스트
5) 배포
※ 프로젝트가 항상 1) ~ 5) 의 과정대로 순탄히 흘러가지 않음
이유는 '고객의 요구사항 변경'
고객의 요구사항 변경은 극단적으로는 프로젝트를 망치기도 한다
2. 사색
1) 요구사항 변경과 같은 일은 비일비재
2) 잦은 요구사항 변경과 같은 변화에 적응하지 못하는 개발자가 어쩌면 무능력한 것일지도?
※ 2)의 의견은 테스트 주도 개발에서 자주 사용되는 JUnit을 고안한 켄트벡의 저서에 나와 있는 말을 발췌
3. 결론
1) 짧은 주기로 개발하여 고객이 사용할 수 있는 소프트웨어를 만들어가며 개발
2) 커뮤니케이션 비용을 최소화, 이슈사항을 줄여가며 개발하는 것이 'agile software development'
3) 작업의 단위가 줄어듦
4) 처음에 고안했을 때 방향과 틀어질 가능성을 낮춰줌
5) 수정할 필요성이 발생하면 바로 바로 수정 가능
6) 단순히 조각을 내서 개발하는 것과는 다름: 모호한 요구사항에 대응하여 전체적인 그림을 그려가는 것을 우선시
- 전체적인 그림을 그린다 = 동작하는 소프트웨어 작성
4. 첨언
- scrum, kanban, extreme programming 등이 agile software development 방식을 구현할 수 있게 도와주는 도구들