Agile
🙄?소프트웨어 개발 방법론의 하나로, 처음부터 끝까지 계획을 수립하고 개발하는 폭포수(Waterfall) 방법론과는 달리 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법이다.
-나무위키-
간단하게 이해해보면 `개발을 진행하면서 피드백을 통해 주도적으로 개발하겠다는 뜻으로 이해가 된다.
프로젝트를 진행해보게 되면 초기에 고객 혹은 소비자에게 요구 사항을 모두 전달 받았다해도 진행 중간중간에도 요구사항은 끊임없이 바뀌고, 개발환경도 끊임없이 바뀐다.
공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를
-애자일 선언문-
Agile
선언문 처럼 현재의 개발 상황에 따라, 요구사항에 따라 대응하고
변화를 시킬 수 있어야 한다.
http://www.alltechflix.com/agile-methodologies-in-software-development/
위의 그림처럼 계획 -> 설계 -> 개발 -> 테스트 -> 전개 -> 리뷰 -> 계획이 빠르고 지속적으로 계속될 수 있다고 볼 수 있다.
기본적으로 Scrum
프로세스를 활용한다고 한다.
Scrum
🙄?개발 주기는 1~4주 정도로 잡고 개발 주기마다 실제 동작할 수 있는 결과를 제공한다.
(설명:너무 짧으면 개발(분석/설계/개발/테스트) 할 수 있는 시간이 부족하고, 너무 길면 느슨해지고 재작업의 양도 늘어나므로 적용해보면서 필요시 조율 필요)
해당 주기를 sprint
라고 칭하고 점진적으로 피드백을 통해 개선하는 방식으로 볼 수 있다.
프로젝트는 혼자하는 것이 아닌 함께 하는 것이다.
서로에 대해, 서로가 하는 일에 관심을 가져야 피드백을 주고 받을 수 있다.
Agile
스러운 사고를 가지기 위해 노력하여 고객의 요구사항과 시대흐름에 대해 빠르게 대응을 해보자.
그러면 멋진 소프트웨어가 완성이 되지 않을까..
스크럼 프로세스
제품 백로그(Product Backlog)
- 개발 제품에서 요구하는 기능과 우선순위
스프린트(Sprint)
- 실제 작동하는 소프트웨어가 개발될 수 있는 반복적인 주기를 지정.
스프린트 계획 회의(Sprint Planning Metting)
- 스프린트 목표와 스프린트 백로그를 계획하는 회의.
- 조율하여 선정된 제품 백로그가 스프린트의 목표.
일일 스크럼 회의(Daily Scrum Meeting)
- 스프린트를 진행하는 동안 매일 정해진 장소와 시간에 모든 팀원이 참여하는 회의.
- 어제 한 일, 오늘 할 일, 이슈 사항 등을 공유.
스프린트 회고(Sprint Retrospective)
- 스프린트의 결과물로 나오는 실행 가능한 제품을 확인하고 학습.
- 스프린트 회고를 통해 팀의 개발 프로세스 개선에 대한 논의.
스크럼 용어
제품 백로그(Product Backlog)
- 제품을 개발하기 위해 수행할 작업의 목록과 우선순위.
- 제품 소유자가 관리.
제품 소유자(Product Owner)
- 개발 제품에 대한 전반적인 비즈니스를 관리하고, 요구 사항을 개발 팀에 요청함으로써 제품의 가치를 극대화하는 역할.
제품 목표(Product Goal)
- 스크럼 팀이 계획할 대상이 될 수 있는 제품의 미래 모습.
- 제품 목표는 제품 백로그에 등록.
스크럼 보드(Scrum Board)
- 스크럼 팀의 정보를 시각화하는 물리적 보드(게시판).
- 스프린트 백로그를 관리하는데 사용.
스크럼 마스터(Scrum Master)
- 스크럼을 적절하게 이해하고 사용하면서 스크럼 팀과 일하는 환경을 교육(코칭) 미 지원하는 팀 내 리더 역할.
스크럼 팀(Scrum Team)
- 제품 소유자(Product Owner), 개발팀 및 스크럼 마스터로 구성된 팀.
스프린트(Sprint)
- 스크럼 활동에서 약 30일 정도의 반복적인 개발 주기.
- 계획, 회의부터 제품 리뷰가 진행되는 날까지의 기간을 1스프린트.
스프린트 계획(Sprint Planning)
- 스크럼 팀이 다음에 수행해야 할 가장 가치 있는 제품 백로그의 작업을 검토하고, 스프린트 백로그로 옮기는 것.
스프린트 백로그(Sprint Backlog)
- 스프린트의 목표를 실현하기 위한 개발 작업의 목록.
- 일반적으로 예측되는 필요 기능이나 해당 기능을 제공하는데 필요한 작업으로 구성
- 개발자가 관리.
스프린트 회고(Sprint Retrospective)
- 스프린트 팀의 과거 진행한 스프린트를 검토하고 다음 스프린트에 개선될 사항들을 계획하는 것.
스프린트 리뷰(Sprint Review)
- 스프린트 결과물을 검토하고, 수행한 작업이 전반적인 스프린트 진행에 미치는 영향을 평가하고, 다음 스프린트의 가치를 극대화하기 위해 제품 백로그를 업데이트하는 것을 뜻함.
번 다운 차트(Burn-down Chart)
- 백로그에 남아있는 작업량을 보여주는 차트.
제품 백로그 또는 스프린트 백로그에 남아있는 작업을 번 다운 차트를 통해 확인 가능.
번 업 차트(Burn-up Char)
- 완료되 작업량을 보여주는 차트.