운이 좋게도 저는 애자일 선언문(http://agilemanifesto.org)을 작성한 사람 중 한명입니다. 이번 장에서 말하려고 하는 이야기는 애자일 선언문과 관계가 있습니다. 있는 힘껏 이야기해보겠습니다. 본질적인 방법은 제가 반세기 정도 소프트웨어를 개발한 것과 20년 가까이 애자일을 통해 배워왔던 것의 결정체입니다. 저는 여기에서 또 다른 애자일 방법을 만들려는 것이 아닙니다. 현실적으로, 저는 애자일 전후에 겪은 모든 경험을 기반으로 소프트웨어가 어떻게 개발돼야 하는지를 정리하려 합니다.
애자일 소프트웨어 개발을 더 많이 알고 싶다면, 다양한 애자일 프레임워크나 방법을 찾아보세요. 가장 대중적인 방법론은 의심할 여지 없이 제프 서덜랜드(JeffSutherland)와 켄 슈와버(Ken Schwaber)가 만든 스크럼입니다. 구조적인 면에서 스크럼은 소프트웨어만을 중점으로 둔 것이 아닙니다. 예를 들어, 스크럼은 인수테스트 주도 개발이나 테스트 주도 개발, 리팩토링과 같은 기술적인 행위를 포함하고 있지 않습니다. 성장하는 팀을 만들려면 이런 것들을 스크럼 프로젝트에 추가해야 합니다.
켄트 벡(Kent Beck)이 창시한 익스트림 프로그래밍(XP, eXtreme Programming)은 기술적인 행위들을 명확하게 포함하고 있습니다. 익스트림 프로그래밍은 스크럼과 비슷하지만 스크럼만이 가진 스크럼마스터ScrumMaster를 포함하고 있지 않습니다. 익스트림 프로그래밍에는 비슷한 역할을 하는 코치가 있습니다. 제 경험으로는 스크럼에 기술적인 프랙티스를 추가한다면 익스트림 프로그래밍과 같은 방법론이 됩니다. 제 생각에 동의하지 않는 분도 있을 것입니다.
앨리스터 코번(Alistair Cockburn)의 크리스털 클리어(Crystal Clear)는 스크럼보다 더 간결한 애자일 프레임워크입니다. 물론 동적 시스템 개발 방법(DSDM, Dynamic Systems Development Method)이나 라만/보드(Larman/Vodde)의 대규모 스크럼(LeSS, Large Scale Scrum)처럼 복잡하고 큰 규모의 애자일 프레임워크도 있습니다. 스콧 앰블러(Scott Ambler)의 학습 애자일 개발(DAD, Disciplined Agile Development)이나 딘 레핑웰(Dean Leffingwell)의 스케일 애자일 프레임워크(Scaled Agile Framework) 같은 방법론도 있습니다. 이외에도 더 많죠. 흥미가 있다면 한번씩 찾아보기 바랍니다.
다시 한 번 말씀 드리지만, 이 책에서 또 다른 애자일 프레임워크를 만들려는 것이 아닙니다. 어떤 소프트웨어 개발 프로젝트(특히 “애자일” 소프트웨어 프로젝트가 될수 있는)에서 무엇이 필요한지 생각하게 하는 것이 목적입니다. 따라서 어떤 프레임워크를 선택하든 프로젝트를 성공적으로 이끌어 나갈 수 있습니다.
물론 프레임워크에 대해서도 다음과 같은 몇 가지 조언을 드릴 수 있습니다.
최신 콘텐츠