마이크로소프트에서도 애자일 개발(Agile Development)을 지원한다?!
Friday, April 20th, 2012
이미지 출처: Manifesto for Agile Software Development
애자일 개발(Agile Development)이라고 하면 웬지 큰 기업이 아닌 작은 기업에서만 받아들이고 적용할 것 같은 오해가 있다. 예를 들면, 마이크로소프트와 같은 큰 기업에서는 애자일을 사용하지 않을 것 같고, 작은 벤처로 시작한 구글과 같은 기업에서 웬지 많이 사용될 것 같은 생각이 든다. 하지만 마이크로소프트는 이미 애자일을 지원하는 개발툴까지 있다고 하면 믿을 수 있겠는가? 또한 애자일의 대표격인 스크럼(Scrum)의 아버지라고 불릴 수 있는 Jeff Sutherland가 마이크로소프트의 애자일 부분을 여러모로 도와주고 있는 것 같다. (스크럼은 1993년에 Jeff Sutherland와 Ken Schwaber에 의해서 만들어졌다.) 오늘은 마이크로소프트에서 지원하고 있는 애자일 분야에 대해서 아주 간단하게 이론적인 것들만 소개 하고자 한다. 사실 사용해보지를 않아서 MSDN(MicroSoft Developer Network: 마이크로소프트 개발자 네트워크)에서 제공하는 애자일 관련 문서들만 소개하려고 한다.
마이크로소프트 비주얼 스튜디오(Microsoft Visual Studio) 2010에서는 애플리케이션 수명 주기 관리(ALM: Application Life-cycle Management)의 소스 및 형상관리, 리포팅, 테스팅 등 모든 업무를 통합 지원하고 있다. (참고: http://www.microsoft.com/korea/press/pressroom/2010/04/04.aspx) 애플리케이션 수명 주기 관리에서도 프로젝트 계획과 추적(Visual Studio Application Lifecycle Management - Planning and Tracking Projects)에 대한 MSDN의 설명을 보면 성공하는 프로젝트들이 가지는 특징을 다음과 같이 소개하고 있다.
이미지 출처: http://msdn.microsoft.com/en-us/library/dd286619.aspx
(* 사실 한글 문서도 지원하고 있고, 자동 번역이 아니라고 명시되어 있음에도 이해하기 어렵거나 오해를 불러올 수 있는 번역들이 있어서 직접 번역/의역을 했다.)
- 고객의 요구(the needs of the customers)에 따라 프로젝트가 나아가는 방향이 결정된다.
- 프로젝트를 완료하기 위한 상위 레벨의 계획(high-level plan)을 가지고 있다.
- 여러 번의 반복(several iterations)을 통해 제품을 개발하면서 진행 상황에 따라, 필요하다면 이미 가지고 있는 상위 레벨의 계획(high-level plan)도 프로젝트가 나아가는 방향에 따라 수정할 수 있다.
- 프로젝트에 변경 사항이 발생했을 때, 이러한 변경사항들을 잘 받아들일 수 있는 효율적인 툴들을 팀원들이 사용하고 있다.
또한 프로세스 가이드로 다음과 같은 3가지의 제품들을 지원하고 있다.
- Visual Studio Scrum 1.0
- MSF for Agile Software Development v5.0
- MSF for CMMI Process Improvement v5.0
역시 마이크로스프트 답게 스크럼, 애자일 그리고 CMMI까지 지원하고 있다. 각각의 제품들에 대한 자세한 사항들은 링크를 통해서 확인할 수 있다. 여기에서는 MSF for Agile Software Development v5.0에 대해서 좀 더 살펴보겠다. 링크를 클릭해서 들어가보자.
우선 다음과 같은 간단한 소개가 나온다.
Your team can apply agile practices more easily by using the process template for MSF for Agile Software Development v5.0 with Visual Studio Application Lifecycle Management (ALM). The template and this guidance will help you practice Scrum and apply agile engineering practices. These processes and practices come from Scrum, eXtreme Programming, and other agile methodologies, as Agile Principles and Values, by Jeff Sutherland describes.
비쥬얼 스튜디오 애플리케이션 수명 주기 관리 패키지에 포함되어 있는 MSF for Agile Software Development V5.0에서 제공하는 프로세스 템플릿을 사용하면 애자일 실천사항(agile practices)을 더 쉽고 간단하게 팀에 적용할 수 있다. 제공되는 템플릿과 이 가이드가 스크럼을 사용하고 애자일에서 말하는 여러가지 실천사항들을 적용하는데 큰 도움이 될 것이다. 여기에서 소개하고 있는 프로세스들과 실천사항들은, Jeff Sutherland가 이야기하는 애자일 원칙과 가치(Agile Principles and Values)에서 설명하는 것처럼 스크럼, 익스트림 프로그래밍(XP: eXtreme Programming)과 다른 여러 애자일 방법론(agile methodology)들에 그 뿌리를 두고 있다.
이 소개에 이어서 단순해 보이면서도 애자일 개발의 큰 그림을 볼 수 있고, 마이크로소프트가 애자일 개발 중에서도 어떤 부분을 중요시 여기는지를 볼 수 있는 다음과 같은 그림을 소개하고 있다.

또한 더 자세한 정보들은 다음과 같은 하위항목들을 통해서 설명하고 있다. 링크를 클릭하면 더 자세한 정보들을 볼 수 있다.
- 스크럼 - Scrum
- 공학적인 측면의 실천사항들 - Engineering Practices
- 산출물 (애자일) - Artifacts (Agile)
- 역할 분담 - Roles
- 미팅 (애자일) - Meeting (Agile)
각각의 링크를 클릭해서 정보들을 보면 알겠지만, 아주 자세한 실제적인 설명보다는 좀 더 개념에 치우친 간단한 설명들이 나온다. 하지만 그것만으로도 마이크로소프트가 어떻게 애자일을 생각하고 지원하고 있는지 이해할 수 있을 것이다. 기회가 된다면 MSF for Agile Software Development V5.0을 한번 사용해 보고 싶다. 어느 정도까지 지원을 하고 있는지...
각각에 대한 설명들은 관심있으신 분들은 들어가서 읽어보시기를 권한다. 다음에는 이 자세한 설명들 보다는 위에서도 잠깐 언급되었던, 스크럼의 아버지라고 불릴 수 있는 Jeff Sutherland가 쓴 애자일 원칙과 가치(Agile Principles and Values)에 대해서 알아보겠다. 아마 이 글이 마이크로소프트에서 애자일을 지원하는데 있어 근간을 이루지 않을까 싶다.


