스크럼(Scrum)은 애자일 개발 프로세스의 한 유형이다. 원래 스크럼은 럭비에서 공이 경기장 밖으로 나가서 경기를 다시 시작할 때 취하는 전술 대형을 말하는 것이다.
스크럼 자체가 XP를 실천법으로 사용하고 있기 때문에 전반적으로 새로운 내용이 있는 것은 아니다. 회고를 진행하는 것도 익숙한 내용이고, 문제에 집중하고 목표를 잡아가는 것 또한 새로운 것이 아니다. 하지만 스크럼은 좀 더 현실적인 방향에 집중하고 결과를 만들기 위해 팀을 최적화 해 나가는 경험을 바탕으로 하고 있다.
스크럼이나 XP 에 대한 정보를 얻고 싶다면 아래 사이트에 접속해 보라.
2008년 한 통계에 따르면 Scrum 을 사용하여 개발하는 비율이 점차 증가하여 폭포수 모델을 앞지르고 있다는 내용이 있다.
물론 이 내용은 국내 상황은 아니다.
(출처 : http://crankypm.com/2008/10/poll-results-software-development-methodologies-agile-vs-waterfall/ )
스크럼은 특정 언어나 방법론에 의존적이지 않으며, 개발 언어는 물론이고 객체지향 언어와도 관련이 없는 넓은 응용 범위의 개발 기법이다.
스크럼은, “지식창조기업(知識創造企業)“이라는 이름으로 소개된 일본의 조직론에 이론적 기반을 두고 있다. 지식창조기업에서는, 가정용 제빵기나 저가 복사기등을 획기적으로 개발한 일본 기업의 조직론을 소개하고 있다. 이 지식창조가업에서는, 암묵지와 형식지를 상호 변환할수 있는 프로세스를 가지고 그에 따라 새로운 지식을 창출해 내고 있다.
Ken Schwaber는 스크럼의 가치와 개발 프로세스가, 지식창조기업에서 이야기 하는 지식 창조 프로세스와 그것을 촉진하는 5가지 요소들을 충족시켜 프로젝트를 성공적으로 이끌게 된다고 이야기 하고 있다.
스크럼을 하기 위해 꼭 지켜야 할 다섯 가지가 있다.
스크럼에서는, 일정 주기(스프린트)로 실제 동작하는 제품을 만들면서 개발을 진행시킨다. 아래는 스크럼 진행시 나타나는 중요 요소이다.
상기 요소들을 아래와 같은 순서에 따라 사용하여 스크럼을 진행시킨다.
이러한 진행 방식과 더불어, 개발 팀원 이외에 아래와 같은 직책이 정의되어 있다.
스크럼 마스터는, 일반적인 관리를 수행하는 프로젝트 관리자들과는 달리 팀원을 코칭하고 프로젝트의 문제 상황을 해결하는 역할을 하며, 제품 책임자는 스프린트 목표와 백로그등의 결정에 있어 중심이 되는 상위 관리자로, 제품 책임자가 독단적으로 목표를 결정하지 않고, 고객과 관리자 및 팀원들이 모여서 목표를 정한다.
이런 과정을 거친 뒤, 개발 팀원들이 주도적으로 스프린트 목표를 달성하기 위한 작업을 정해 나가게 된다. 보통, 각 작업들은 4 시간에서 16 시간 정도 걸리도록 정한다. 물론, 작업을 정하고 할당하는데는 고객이나 제품 책임자와는 상관 없이 팀원 자율로 진행된다. 이와 같은 자율적인 행위를 통해서 팀원들은 의사를 활발하게 주고 받게 되고, 끈끈한 협업체계를 가지게 된다. 애자일 프로세스는 외부로부터의 질서보다는 팀원 스스로가 만들어나가는 자기 조직화를 중요하게 여기고 있다. 하지만, 이러한 부분과 더불어 애자일 프로세스는 무질서해 보이기 때문에 전통적인 프로세스 개선과 마찰이 생기게 된다.
스크럼은 소프트웨어 개발 생명 주기(SDLC:Software Development Life Cycle) 가 짧고, 휴대폰 프로그램과 같은 모델마다 약간씩 다른 프로그램을 여러개 개발하는 경우에 아주 적합한 개발 방법이 될 수 있다.
스크럼은 개인의 삶에도 적용해 볼 수 있을 것 같다. 하루 하루 계획을 세우고, 실천하고, 전념하고, 자신을 숨기지 않고, 남을 배려하며, 항상 용기있는 삶을 사는 것… 이것이 바로 스크럼적인 삶이 아닐까…
아마 인생이 바뀔지도 모릅니다… 인생이 바뀌어도 저는 책임 안집니다. ㅋㅋㅋ…