책 한 권이 나오기 위해서는 집필 → 디자인 → 인쇄 → 마케팅의 과정이 필요하다.
소프트웨어 또한 개발 과정이 존재한다.
각 과정 (=단계, =task)을 정의한 framework가 SDLC이다.
여기서 반드시 SDLC와 Approach를 구분할 수 있어야 한다.
SDLC: 구체적인 방법과 방법론 (개발 과정의 단계와 순서를 명확히 구분)
Approach: SDLC를 유사한 개념적 특징에 따라 그룹지은 것
모든 법은 헌법이 수호하는 가치를 위반해서는 안 된다.
마찬가지로, Agile 또한 Agile이기 위해 헌법과 같은 4 Value와 12 Principle이 존재한다.
Individuals and interactions over Process and tools
프로세스나 도구보다 개인과 상호 작용
Working software over Comprehensive document
포괄적인 문서보다 작동 소프트웨어
Customer collaboration over Contract negotiation
계약 협상보다 고객과의 협력
Responding to change over Following a plan
계획 고수보다 변화에 대응
4 value 모두, 뛰어넘어야 하는 대상을 명시하고 있음
비교 대상은 기존의 개발 방법론에서 거쳤던 과정임
Agile의 핵심 가치들이 모두 기존 개발 접근법의 한계를 극복하기 위해 탄생하였다.
그러므로 기존의 접근법을 알아야 한다.
Predictive (SDLC: Waterfall): 분석, 디자인, 빌드, 테스트, deliver로 이어지는 전형적인 방식
Iterative (SDLC: Spiral): 요구사항과 일치할 때까지 분석과 디자인 반복 이후 빌드와 테스트 반복
Incremental: 분석, 디자인, 빌드, 테스트, deliver을 조금씩 추가
Agile: Timetimebox의 단위로 제품을 만들고, 동시에 피드백 받음


Product Backlog: 제품에 대한 요구사항 목록
Sprint: 반복적인 개발 주기
Sprint Backlog: 개발 주기에 맞게 수행할 작업의 목록 및 목표
Shippable Product: Sprint 후 개발된 실행 가능한 결과물
Product Owner: Backlog 정의 후 우선순위를 세우는 역할
Scrum Master: 전통적인 프로젝트 관리자와 유사하나, Servant Leadership이 요구됨
BurnDown Chart: 남은 일 (Y축) - 시간 (X축) 그래프를 통해 진행 사항 확인
이런 Tool은 Project Owner가 프로젝트 예상 진행 상황과 실제 진행 상황을 바교함으로써 프로젝트 기간을 연장할 것인지, 추가 Resource를 투입할 것인지, 아니면 마무리 할 것인지를 결정하는데 근거 자료가 되므로 중요함
Scrum을 통해 Agile의 기본 과정을 이해했다면, 그 세부 내용을 구성하는 Iteration (=Sprint) 및 반복의 과정에서 어떤 technique가 쓰이는지 이해해야 한다.
어제 ~을 했고, 오늘 ~을 할 것이며, 현재 ~ 어려움이 있습니다.
Restrospective: 고객이 없는 상황에서 Iteration이 끝난 후, 팀에서 어떤 것이 문제였고, 무엇을 고칠 수 있는지 이야기 한다.
Iteration Review: 고객이 함께 있는 상황에서 Iteration의 결과물로 나온 Shippable Product에 대한 피드백, 평가를 받는다.
참고 📖