0. 시작하기 전에...
아무것도 모른 채 IT라는 대도시에 상경한 사람이든, 거친 야망을 품고 프로그래밍의 배에 승선한 사람이든간에
몇 년이 지나고 나면 까칠한 얼굴이 되어 다음과 같은 말을 하곤 한다.
"이 쪽 일은 너무 힘들어..."
여러 가지 이유가 있겠지만, 그 중에서 가장 IT인들을 괴롭히는 공통 주제는 "개발 방식"일 것이다.
처음부터 빽빽하게 채워지는 요구사항과 그에 따른 두꺼운 설계 문서들,
촉박한 개발 일정에 수시로 바뀌는 고객들의 요청, 게다가 테스트, 산출물...
무엇이 잘못된 것일까?
다들 이렇게 지내고 있으니, 이게 오히려 맞는 길일까?
1. 애자일(Agile)과 스크럼(Scrum)? 그게 대체 뭐야?
언젠가 직원들과 개발방법론 그룹스터디 중에 애자일(Agile)이라는 것을 들었다.
처음엔 그게 뭐지 하며 들었다가 들으면 들을 수록 매력적인 방법론이라는 생각이 들게 되었다.
때마침 이번에 [애자일 개발과 스크럼]이라는 도서가 있어 읽어 보게 되었다.
위에서 언급한 IT인들의 답답한 일상은 놀랍게도 하나의 개발방법론이다.
고전적 모델의 대표 모델이면서 지금도 꽤나 유용한 "폭포수 모델"인데,
이 방법론이 요즘과 같은 시대에는 오히려 독이 될 수도 있다고 저자는 말하고 있다.
폭포수 모델의 특징이 논리적이고 완벽한 설계를 중시하는 것이고, 이에 따른 단계적 진행을 강조하고 있는데
변화에 따른 소비자의 필요가 시시각각 변하는 요즘에는 빠른 대응이 불가능한 이론이라는 것이다.
많은 회사들이 이러한 시대 흐름에 맞는 개발방법론을 고민하였고
그 고민 속에서 탄생한 것이 바로 애자일 방법론인 것이다.
때문에, 애자일은 폭포수 모델과는 정반대의 양상을 가진다.
한 마디로 요약하자면, "짧은 주기로, 유연하면서 협동적으로" 개발하는 것이 애자일의 특징인 것.
공정에 집착하지 않고 오히려 사람들의 상호 작용을 중요시하면서
변화에 효율적으로 대응할 수 있는 고객친화적인 소프트웨어를 생산하는 것이 주목적인 것이다.
애자일은 여러 개의 개발 방법을 총칭하는 것으로
그 중 가장 애자일의 성격을 잘 드러내는 것이 스크럼(Scrum)이다.
스크럼은 기존 조직과는 달리 제품소유자, 개발팀, 스크럼 마스터로 구성된 소규모 조직으로
단기 기간에 주어진 과제를 수행해내는 실용적이고 합리적인 조직 구성을 시작으로 한다.
이를 통해 과거와는 달리 작은 결과물을 빠르게 만들어 낼 수 있고
이들을 통한 피드백으로 점점 완전한 프로그램을 만들어 낼 수 있다는 것이다.
본 도서에서는 스크럼 이외에도 애자일 개발을 수행할 다양한 실천 방법인
"사용자 스토리", "플래닝 포커", "태스크 칸반", "소멸 차트", "짝 프로그래밍" 등
다양한 활동방법들을 소개하고 있어, 읽어 보며 많은 생각을 해 볼 수 있었다.
2. 이런 것은 누가 실행해 봤을까?
대한민국의 IT업계보다 더욱 보수적이라 하는 일본에서도
이미 애자일 실천을 위한 시도들은 수년 전부터 계속 되어 왔고
저자는 그 중 몇 가지 우수 사례를 소개하고 있었다.
조직 문화의 변화와 사업부서의 이해를 감수해 하며 애자일을 도입하여 성공을 이끈 리쿠르트사의 예시에서
올바른 고객과의 관계는 어때야 하는지, 참된 협업은 무엇인지 생각해 볼 수 있었던 기회가 되었다.
자동화된 테스트 시스템의 도입으로 애자일을 시도한 후 자발적으로 확산해 가는 라쿠텐의 성공사례도 무척 좋았으며
애자일 도입을 통해 현장에서 빠른 대응을 가능하게 했던 후지쯔의 사례에서는
애자일의 장점이 현장에서 어떤 식으로 드러나게 되는지를 잘 보여주고 있었다.
3. 애자일 개발과 스크럼은 그냥 나온 게 아니다!
이런 효율성 좋은 개발방법론은 어떻게 등장하게 되었을까?
개발방법의 변화를 언급한 논문이나 실제 현상의 경험을 통해 나온 다양한 아이디어들이 결국 애자일을 만든 셈인데
모두 공통적으로 효율성과 경험 공유, 또한 이를 통한 조직의 발전을 강조하고 있었다.
이는 과거 학자들이 주장했던 지식의 성장 모형과도 크게 다르지 않다는 게 저자의 주장이다.
단순히 효율성만을 강조한 것이 아닌, 논리적인 주장을 기반으로 한다는 것을 알 수 있었다.
도서 후반부에는 IBM, NHN, SDS 등의 국내외 사례를 몇 가지 더 언급하면서
애자일 개발과 스크럼의 가치를 다시 한 번 확인할 수 있게 구성되어 있었다.
4. 책을 덮으며...
사실 IT에서는 개발방법론이 무엇보다 가장 추상적인 개념일 것이다.
디지털이 주를 이루는 분야이기 때문에 이런 개념들은 적응하기 쉽지 않을 수 있는데
[애자일 개발과 스크럼]에서는 실제 사례들을 기반으로 이야기하듯 편하게 기술을 하는 방식이어서
독자들이 읽기도 편할 것이며, 이해도 쉽게 가리라 생각이 든다.
다만, 삽화가 약간 부족한 점과 후반부의 내용이 조금 지루한 편인 것은
개선되었으면 하는 작은 아쉬움이 든다.
이 책은 중급개발자 이상이면 읽는데 무리가 없을 것 같으며
초급개발자나 대학생들은 좀 어려울 수도 있을 것 같다.
인프라 관련 종사자나 정밀함을 요하는 분야에 종사하는 사람들에는
이 책의 방법론이 꼭 능사가 아니란 말도 덧붙여 해 둔다.
간만에 좋은 개발관련서적을 읽은 것 같아 기분이 좋다.
강추!