정의
신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식입니다.
협력과 피드백을 더 자주하고, 일찍하고, 잘하는 것 입니다.
소프트웨어를 개발한 사람들 안에서의 협력을 말함 (직무 역할을 넘어선 협력)
스스로 느낀 좋은 통찰은 협력을 통해 다른 사람에게도 전해줄 수 있음
예상치 못한 팀의 기대 효과를 가져옴
ex) 좋은 일은 2배가 된다.
ex) 안 좋은 일은 1/2(절반)이 된다.
문제가 발생하는 부분을 찾기 쉬워짐
예상치 못한 문제를 협력으로 막을 수 있음
실수를 했는데 어딘지 찾기 힘들거나, 개선점이 생각나지 않을 때 서로 다른 사람들과 협력하면 새로운 방안이 탄생할 수도 있음
학습의 가장 큰 전제조건이 피드백이다. 즉 내가 어떻게 했는지 확인하면서 학습을 진행해야 함
소프트웨어의 불확실성이 높을 수록 학습의 중요도는 올라간다.
진행 방법
애자일에서는 소프트웨어 개발의 불확실성이 중요함
불확실성이 높으면, 우리가 생각한거랑 다르다..
라는 상황에 직면한다.
이때 전통적인 방법론과 애자일의 방법론의 차이는 아래와 같다.
전통적 방법론
애자일 방법론
전통적 방법에 속하는 '폭포수 모델'은 요구분석단계에서 한번에 모든 요구사항을 정확하게 전달하는 것이 원칙이다.
하지만 요즘같이 변화가 많은 프로젝트에서는 현실적으로 불가능에 가깝다.
이런 한계점을 극복해주는 애자일은, 개발 과정에 있어서 시스템 변경사항을 유연하게 or 기민하게 대응할 수 있도록 방법론을 제공해준다.
개발자와 고객 사이의 지속적 커뮤니케이션을 통해 변화하는 요구사항을 수용한다.
고객이 결정한 사항을 가장 우선으로 시행하고, 개발자 개인의 가치보다 팀의 목표를 우선으로 한다.
팀원들과 주기적인 미팅을 통해 프로젝트를 점검한다.
주기적으로 제품 시현을 하고 고객으로부터 피드백을 받는다.
프로그램 품질 향상에 신경쓰며 간단한 내부 구조 형성을 통한 비용절감을 목표로 한다.
정의
1. 제품 기능 목록 작성
2. 스프린트 Backlog
3. 스프린트
작은 단위의 개발 업무를 단기간 내에 전력질주하여 개발한다
한달동안의 큰 계획을 3~5일 단위로 반복 주기를 정했다면 이것이 스크럼에서 스프린트에 해당함
주기가 회의를 통해 결정되면 (보통 2주 ~ 4주) 목표와 내용이 개발 도중에 바뀌지 않아야 하고, 팀원들 동의 없이 바꿀 수 없는 것이 원칙
4. 일일 스크럼 회의
5. 제품완성 및 스프린트 검토 회의
모든 스프린트 주기가 끝나면, 제품 기능 목록에서 작성한 제품이 완성된다.
최종 제품이 나오면 고객들 앞에서 시연을 통한 스프린트 검토 회의 진행
6. 스프린트 회고
스프린트에서 수행한 활동과 개발한 것을 되돌아보며 개선점이나 규칙 및 표준을 잘 준수했는지 검토
팀의 단점보다는 강점과 장점을 찾아 더 극대화하는데 초점을 둔다
스프린트마다 생산되는 실행 가능한 제품을 통해 사용자와 의견을 나눌 수 있음
회의를 통해 팀원들간 신속한 협조와 조율이 가능
자신의 일정을 직접 발표함으로써 업무 집중 환경 조성
프로젝트 진행 현황을 통해 신속하게 목표와 결과 추정이 가능하며 변화 시도가 용이함
추가 작업 시간이 필요함 (스프린트마다 테스트 제품을 만들어야하기 때문)
15분이라는 회의 시간을 지키기 힘듬 ( 시간이 초과되면 그만큼 작업 시간이 줄어듬)
스크럼은 프로젝트 관리에 무게중심을 두기 때문에 프로세스 품질 평가에는 미약함