[Clean Agile : Back to Basics] 1장 : 애자일 소개
애자일 개발은 어떤것인지 알아보기 위해 클린 애자일(Clean Agile : Back to Basics) 도서를 읽어가며 학습해보았다.
애자일 탄생 역사
(1) 1970년 원스턴 로이스가 논문에 묘사한 그림이 절묘한 위치에서 강조되어 폭포수 모델이 알려짐
(2) 약 30년간 폭포수 모델이 산업을 지배, 이 시기 프로그래머의 상황은..
- 폭포수 모델에 짜맞춘 일정 강제화
- 개발 과정에서 유입되는 요구사항을 유연하게 받지 못하는 경직된 구조로 업무
(3) 1980~1990년 초반다양한 개발론 등장, 다양한 의견 표출
- 객체지향 설계, 크리스털 방법론 등
(4) 2000년 효과적인 프로세스를 지향하는 발전적 논의 모임
- 스노버드에 17명의 개발자들의 모임
- 서로 각자의 관점이 있었으나 '개인과 상호작용', '작동하는 소프트웨어', '고객과의 협력', '변화에 대응하기' 라는 키워드를 핵심으로 정리
- 이를 애자일이라 칭하게 됨
애자일의 성격
(1) 애자일은 마치 프로젝트 관리의 철십자와 같다.
- 4개의 요소중 4개만 가질 수 있다.
(마치 한쪽을 누르면 양 옆은 일부 기울어지지만 반대쪽은 뜨게되는 팽이와 같은 균형을 가진 십자가?!)
- 십자가 각 방향의 요소는 서로 교환될 수 있다.
- 프로젝트 관리자는 단계별 상황에 따라 가중치를 판단한다.
- 모두가 100%가 될 순 없지만, 상황에 따른 판단과 변화를 추구한다.
(2) 애자일은 개발자와 관리자가 프로젝트를 실용적으로 관리할 수 있도록 돕는 체계이다.
- 체계를 자동으로, 누군가 항상 올바른 결정으로 도출할 수 없기 때문에 객관적으로 수치화된 데이터(번다운 차트, 작업속도 차트 등)를 통해 관리한다.
애자일 방법
(1) 프로젝트를 일정한 크기로 나눈다.
- 반복주기 혹은 스프린트라고 한다.
(2) 반복주기당 기능 목록을 구성한다.
- 각 기능 목록을 스토리라고 한다.
(3) 탐색 작업(분석, 설계)은 매주기 항상 진행한다.
(4) 주기별로 진행하면서 일정을 추산한다.
- 주기별로 남은 작업량을 추산할 수 있고 이를 번다운 차트로 구성할 수 있다.
- 남은 작업량은 항상 줄지 않고 반복주기랑 확인된 문제점이나 새로 유입된 요구사항에 따라 늘어날 수 있다.
(5) 작업이 진행될수록 작업 속도와 번다운 차트 등으로 데이터화하여 관리한다.
- 수치화하여 개발자와 고객간에 진행상태를 공유한다.
(6) 철십자 관리
- '일정 변경', '인원 추가', '품질 저하', '범위 변경' 등 여러 요소를 감안하여 현재 상황에 맞춘 관리를 매 반복주기당 진행한다.
애자일의 실천 방법을 잘 표현하고 있는 이론 : XP(eXtreme Programming)
- XP는 애자일의 프로토타입이라 할 수 있음
- XP의 각 반경
- 바깥 : 비즈니스와 관련된 실천 방법, 개발팀이 사업 부서와 의사 소통하는 방법과 원칙
- 중간 : 팀과 관련된 실천 방법, 팀을 관리하고 서로 소통하는 체계와 원칙
- 내부 : 기술 실천 방법, 프로그래머가 기술적인 품징르 높게 유지하도록 하는 원칙