수업 과제로 애자일에 대해 한 페이지 정도로 요약했던 것이다.
요즘 애자일 용어에 대해 헷갈려서 리마인드 하는 겸 블로그에도 기록한다.
애자일
- 신속한 개발 방법론, 지속 가능한 개발 장려
- 공정과 도구 < 개인과 상호작용
- 문서 < 소프트웨어
- 계약 협상 < 고객과의 협력
- 계획 < 변화에 대응
애자일 우산
애자일 원칙을 실천하기 위해 제안되는 방식들
스크럼
- 작은 팀이 짧은 주기로 일을 나누어 협업하고, 변화에 유연하게 대응하는 프로세스
- 팀이 강한 조직력을 가질 수 있도록 해줌
- 백로그: 프로젝트를 구성하는 주요 아이디어, 피드백, 요구사항을 모아 프로젝트의 목표를 구성하는 각 단계로 나눈 각각의 요소
- Sprint: 1~4주 정도로 계획/구현/리뷰/회고를 반복하는 하나의 단위, Backlog에서 이번 스프린트에 진행할 백로그 선정
- Daily Scrum: 매일 동안 진행되는 15분 정도의 짧은 회의, 어제 뭐했는지 / 오늘 뭐할건지 / 방해요소 없는지, Sprint를 잘하기위해
- Retrospective(회고): 다음 스프린트는 어떻게 하면 잘할 수 있을지 개선점을 찾는 과정, Action Item(구체적 행동 제안)
- 가치: 매 스프린트가 끝나면 작동하는 소프트웨어가 만들어짐, 잘 하고 있는지 고민해볼 수 있음, 명확한 목표가 주어짐
칸반
생산량을 조절하고 과잉생산을 줄이기 위한 기법
ex. Jira, GitHub issues
린
- 자원 낭비를 최소화하고 가치를 최대화하기 위해 지속적으로 개선하는 제조업에서 시작된 개념
- 소프트웨어 개발에서는 린 소프트웨어 개발이라고 하며, 고객 가치 중심으로 작은 배포 가능한 제품을 빠르게 개발하여 피드백을 받고 이를 통해 지속적으로 개선
XP
- 개발 과정에서 테스트 주도 개발(TDD), 짝 프로그래밍, 계획과 반복, 간단한 설계 등의 가치를 강조
- TDD : 테스트코드 작성, 테스트코드가 수시로 내 프로그램 검증
- Pair Programming : Driver(코드 작성하는 사람)와 Navigator(제안하는 사람), 실력차이가 적을 때 효과적
애자일 도구 < 애자일 선언 < 애자일 Essence
- 애자일 Essence는 애자일 방법론의 본질적인 가치와 원리를 포괄하는 개념
- 애자일 방법론을 적용할 때 사용되는 도구나 프레임워크보다는 애자일 선언에 명시된 가치와 원칙을 이해하고 따르는 것이 더 중요
- 애자일을 단순히 도구나 프로세스로만 보지 않고, 그 철학과 가치에 중점을 두어야 함