애자일Agile
소프트웨어의 모든 것은 변한다. 요구사항은 변한다. 설계도 변한다. 비즈니스도 변한다. 기술도 변한다. 팀도 변한다. 팀 구성원도 변한다. 변화는 반드시 일어나기 때문에, 문제가 되는 것은 변화가 아니다. 그보다는 변화를 극복하지 못하는 우리의 무능력이 문제다. extreme programming. Kent Beck.
- 짧은 주기로, 작동하는 소프트웨어(MVP,Minimum Viable Product)를 만들어가면서 커뮤니케이션의 비용을 최소화 하고 이슈사항에 바로 대응하며 개발하는 방식이 애자일 소프트웨어 개발방식(↔폭포수 개발방식(water fall))
- 스크럼을 포함한 애자일 방법론들은 애자일 선언문의 중점가치를 계승
스크럼(Scrum)이란?
스크럼*은 혁신을 창출하는 역동적인 아이디어 싸움에 참여하는 다기능팀을 의미한다. Jeff Sutherland
*스크럼은 럭비에서 경기를 재개하기 위해 팀원이 서로 밀착하여 형성하는 전술 대형을 가리킴
- 5~9명으로 구성되는 소규모의 다기능팀이 제품 개발을 완성하기 위해 스프린트(sprint)라는 업무주기를 반복
- Project Owner가 관리하는 ‘해야할 일들의 목록(Product backlog)’에서 ‘스프린트 동안 해야하는 일들(Sprint backlog)’을 스스로 결정하고 완수하여 매 스프린트마다 결과물(increment)을 산출
- 스크럼마스터(scrum master)는 팀이 성과를 낼 수 있도록 조력하는 역할 수행
- 팀이 과제를 완수할 수 있도록 필요한 자원을 지원하거나 장애요소를 제거하며 프로세스를 인도
스크럼의 특징
스크럼에서는 30일을 주기로 실제 동작하는 소프트웨어를 만들면서 프로젝트를 진행하며,
팀의 스크럼 적응도 및 진행 상황에 따라 1주~4주의 유연성을 가질 수도 있음
- 솔루션에 포함할 기능 및 개선점에 대한 우선순위를 부여
- 개발 주기는 30일 정도로 조절하고 개발 주기마다 실제 동작할 수 있는 결과 제공(MVP)
- 개발 주기마다 적용할 기능이나 개선에 대한 목록을 제공
- 날마다 15분정도 회의를 가짐(daily scrum meeting)
- 항상 팀 단위로 생각
- 원활한 의사소통을 위하여 열린 공간을 유지
스크럼 용어
- Scrum Team
- 프로젝트 수행에 필요한 모든 역량을 갖춘 팀으로 이를 위해 관련된 모든 부서로부터 팀원이 구성되며, 팀원은 자신의 전문영역에 고정되지 않고 다같이 팀 과제를 수행
- 자율관리(self-managing)조직으로 제3자의 명령을 받지 않고, 팀 스스로 업무분량, 목표, 달성 방안을 결정하고, 자신이 약속한 목표를 달성할 책임이 있음
- 스프린트 후에 필요한 인력을 보충하거나 필요없는 팀원을 내보낼 수 있음(self-organizing)
- Product Owner
- 제품 백로그를 관리, 통제할 수 잇는 권한을 가진 사람으로 PO는 단 한명이어야 함
- 고객 및 조직 가치에 기반하여 제품 백로그 항목들의 우선순위를 결정하고, 매 스프린트의 결과를 검토하여 우선순위를 지속적으로 조정, 관리
- Scrum Master
- 스크럼의 가치와 실천법에 대한 이해를 바탕으로 현장에 맞는 실천법을 정립하여 실제로 프로젝트에서 실행될 수 있도록 이끔
- 일일 스크럼회의(daily scrum meeting)를 주관하여 팀의 진척도를 모니터링하고, 팀의 생산성에 악영향을 미치는 정책, 절차, 구조를 공론화하여 처리함
- 기존의 프로젝트 관리자와는 달리 업무를 지시, 통제하지 않으며, 팀의 성공적인 목표 달성을 돕기 위해 필요한 자원을 지원하거나 장애물을 제거하는 조력자 역할
- Daily Scrum Meeting
- 매일 어제 한일, 오늘 할일, 해결해야 할 장애/문제 요소를 공유하는 회의(매일 15분 정도)
- 모든 참여자가 보고가 아닌 수평적으로 공유 차원에서 진행해야 하며 팀원이 아니면 발언권은 없음
- Product Goal
- 스크럼팀이 계획할 대상이 될 수있는 제품의 미래모습
- Scrum Board
- 스크럼팀의 정보를 시각화하는 물리적 보드(게시판), 주로 스프린트 백로그 관리
- Sprint(스프린트)
- 과제가 진행되는 주기를 지칭하는 것으로 약 30일로 구성되며, 하나의 스프린트가 끝나면 곧바로 다음 스프린트가 시작됨
- 스프린트를 진행하는 동안 기간, 과제 가감 등의 변경은 불가능
- 특정기능에 대한 계획-개발-테스트-기능구현 주기
- Product Backlog
- 제품 완성에 필요한 특성, 기능, 개선점 등 제품의 모든 요구사항을 우선순위에 따라 나열한 목록
- 제품 백로그는 확정, 고정된 것이 아니라 사업 환경이나 변화에 따라 지속적으로 업데이트됨
- 우선순위가 높은 백로그는 낮은 백로그보다 더 명확하고 상세하게 기술됨
- Sprint Backlog
- 하나의 스프린트 동안 완료할 과제들의 목록
- Sprint Review(스프린트 리뷰)
- 스프린트 결과물을 검토하고, 수행한 작업이 전반적인 스프린트 진행에 미치는 영향을 평가하고, 다음 스프린트의 가치를 극대화하기 위해 제품 백로그를 업데이트하는 것
- 스프린트 마지막날 개발자가 개발한 내용을 PO, 고객 등에 시연하고 검토
- 스프린트 결과물을 검토하고, 수행한 작업이 전반적인 스프린트 진행에 미치는 영향을 평가하고, 다음 스프린트의 가치를 극대화하기 위해 제품 백로그를 업데이트하는 것
- Sprint Retrospective(스프린트 회고)
- 스프린트 팀이 과거 진행한 스프린트를 검토하고 다음 스프린트에 개선될 사항들을 계획하는 것
- 스프린트 마지막날 좋았던점, 개선할 점을 도출하고 더 나은방향으로 개선
- 스프린트 팀이 과거 진행한 스프린트를 검토하고 다음 스프린트에 개선될 사항들을 계획하는 것
- Burn-down Chart(번 다운 차트)
- 백로그에 남아있는 작업량을 보여줌
- 프로덕트 백로그 또는 스프린트 백로그에 남아있는 작업을 번다운 차트를 통해 확인가능
- Burn-up Chart(번 업 차트)
- 완료된 작업량을 보여줌
스크럼 진행 순서
- PO는 제품의 요구기능과 우선순위를 제품 백로그로 정한다.
- PO가 정한 제품의 우선순위에서 어디까지 작업을 할지 팀과 조율 한다.
- 스프린트 목표를 구현 가능 하도록 팀에서 스프린트 백로그를 작성한 뒤 작업을 할당한다.
- 해설:PO는 기능과 우선순위에 대한 권한이 있고, 개발팀은 Sprint내에 해야 할 업무량을 결정할 권한이 있다.
- 특히 개발경험 있는 PO가 너무 적은 개발량을 문제제기 하기도 하지만, 실제 개발하는 개발팀원의 개발속도에 따른 조정이 중요하다.
- 스프린트를 진행하는 동안, 매일 정해진 장소와 시간에 모든 개발 팀원이 참여하는 일일 스크럼 회의를 가진다.
- 매회의 스프린트가 종료할 때마다, 스프린트 리뷰(Review)를 통해 만들어진 제품을 검토하고 개선사항을 이해 한다.
- 제품의 리뷰를 통해 제품의 지속적 개선사항 도출이 끝나면, 스프린트 회고(Retrospective)를 통해 팀의 개발 문화(프로세스)에 대한 개선의 시간을 갖는다.
- 스프린트 Review는 제품을 개선하는 활동이고, 회고는 우리(프로세스, 문화)를 성장시키는 활동
- 다음 스프린트에서 수행할 백로그를 PO와 필요 인원이 모여 선정하고 계획하는 시간을 갖는다.
References
HR 블레틴은 기업 경쟁력의 핵심 요소로 부각되고 있는 기민한(agile) 조직에 대해 4회에 걸쳐 조명한다. 1부에서는 기민한 조직이 등장한 배경에 대해 살펴보고, 2부, 3부에서는 기민한 조직을 만드는데 주로 참조되는 애자일 방법론, 스크럼(scrum)과 린스타트업(lean startup)에 대해 탐색한다. 마지막 4부에서는 애자일 기법을 성공적으로 도입하기 위한 핵심 요건 및 유의 사항에 대해 논의한다. * agile이 환경 변화에 빠르게 적응하는 의미로 쓰일 […]
스크럼(Scrum)이란? 스크럼은 애자일 소프트웨어 개발 방법 중의 하나로, 프로젝트 관리를 위한 상호 점진적 개발 방법론입니다. 이 방법은 특정 언어나 방법론에 의존적이지 않은 넓은 응용 범위의 개발 기법입니다. 스크럼의 특징 솔루션에 포함할 기능 및 개선점에 대한 우선순위를 부여한다. 개발 주기는 30일 정도로 조절하고 개발 주기마다 실제 동작할 수 있는 결과를 제공한다. 개발 주기마다 적용할 기능이나 개선에 대한 목록을 제공한다. 날마다 15분 정도 회의를 가진다. 항상 팀 단위로 생각한다. 원활한 의사소통을 위하여 열린 공간을 유지한다. 스크럼에서는 30일 주기로 실제 동작하는 소프트웨어를 만들면서 프로젝트를 진행합니다. 단, 팀의 스크럼 적응도 및 진행 상황에 따라 1주~4주의 유연성을 가지기도..
스크럼은 애자일 개발 프로세스입니다. 우선 스크럼의 유래가 있는데요. 럭비에서 유래된 용어입니다. 스크럼의 목적은 사소한 반칙이나 정지 후에 빠르고, 안전하게 그리고 공정하게 플레이를 재개하기 위한 것이다. 각 팀에서 8명의 선수들이 세 줄로 서로 바인드하고, 상대측과 밀착하여 각 팀의 프론트 로의 머리가 서로 엇갈리도록 형성하는 것이다. 이와같이 하면 스크럼 하프가 볼을 투입할 수 있는 터널이 만들어져 프론트로 선수들이 그들의 두 발 중 하나로 후킹함으로서 볼 소유를 위해 경쟁할 수 있게 된다. 간단히 말하면 여럿이 똘똘 뭉쳐 힘을 쓰는 것을 스크럼을 짠다 라고 표현합니다. 서로 협업하여 개발하는 모습으 보고 용어를 따온 거 같아요. 스크럼 프로세스 그림입니다. 애자일, 스크럼을 보면 스프린트란 단어가..
애자일 실천 방법