본문 바로가기

Domain

애자일 개발의 기술 2/e - 애자일이란 무엇인가?

인상 깊은 내용을 추렸다.

  • 대기업은 그들의 프로세스를 매우 세세하게 정의했다. 역할, 책임, 문서 템플릿, 모델링 언어 및 변경 통제 위원회까지 개발의 모든 측면을 엄격하게 정의하고 통제했다. 만약 프로젝트가 성공하지 못하면 더 많은 세부 사항, 문서 및 승인이 더해졌다.
  • 사람들은 이를 더 단순하고, 더 가볍고, 덜 상세한 SW 개발 방법론을 만들었는데 이를 Adaptive Software Development, Feature-Driven Development, XP, Scrum 등으로 불렀다.

애자일의 정수

  • 애자일 개발은 예측적이기보다는 적응적이며, 프로세스 지향보다는 사람 지향이다.

Agile Cargo Cults

미군이 한 외딴 섬에 상륙했다. 섬의 원주민들은 근대 문명을 처음 봤고, 군인들과 그들이 섬에 갖고 온 여러 물품을 보고 놀랐다. 이들은 군대가 간이 활주로와 송신탑을 설치하고, 헤드폰을 쓰고, 값비싼 화물을 가득 실은 강철 새를 하늘에서 부르는 것을 봤다. 강철 새는 하늘에서 내려와 화물을 섬의 원주민들에게 나눠 줬고, 그들은 풍족함과 편안함을 맛보았다.

군대가 떠나자 위대한 강철 새는 더 이상 섬에 내려오지 않았다. 섬의 원주민들은 화물을 그리워하면서 대나무를 엮어 직접 활주로를 만들었다. 커다란 플랫폼을 만들고, 추장을 플랫폼에 세우고, 코코넛을 깎아 헤드폰처럼 머리에 썼다. 그들의 노력에도 불구하고 위대한 강철 새는 단 한 번도 돌아오지 않았다.

사람들은 애자일의 철학은 이해하지 않으며, 사려고만 한다. 이들이 살 수 있는 것은 애자일의 껍데기뿐이다. 스탠드업 회의, 스토리, 도구, 인증서. '적응적 계획', '사람 중심적' 같은 불편한 아이디어는 잊힌 지 오래다.

애자일을 마스터하기 위한 여정

  • 마스터할 애자일 아이디어의 하위셋을 선택하라.
  • 가능한 한 많은 고나련 프랙티스를 이용하라.
  • 프랙티스를 엄격하고 일관성 있게 적용하라.
  • 프랙티스를 올바르게 적용했다고 확신하면 변화를 주면서 실험을 시작하라.
  • 마지막 단계는 없다. 계속되는 학습과 개선의 프로세스다.

애자일 플루언시 모델

각 애자일 팀은 만들어내는 결과가 다르고 해당 결과는 서로 다른 '영역'으로 구분할 수 있었다.

  • 집중하기
  • 전달하기
  • 최적화하기
  • 강화하기

집중하기 영역

애자일의 기본인 "비즈니스 가치에 집중하고, 팀으로 일하고, 오너십을 가진다"에 관한 것이다.
애자일 이전에는 계획을 태스크로 나누어 개인에게 할당하고, 태스크 처리 능력에 따라 개인을 평가한다.
집중하기 팀은 각자의 태스크 분류를 수행하고, 스스로 결정하며, 팀으로서 가치를 만들어낼 수 있는 능력에 따라 평가를 기대한다.

전달하기 영역

애자일 팀은 언제든 계획이 바뀔 수 있는데, 이는 비용 효율적인 변화를 만드는 능력을 잃어간다. 전달하기팀은 기술적 우수성을 통해 이 문제를 방지한다. 잦은 변경에 대비할 수 있도록 코드를 디자인한다. 버그를 해결하는 데 시간을 낭비하지 않는다. 비즈니스 관점에서 가장 적합한 시점에 언제든 신뢰할 수 있고, 결함이 적은 소프트웨어를 전달하는 능력을 갖고 있다.

최적화하기 영역

변화하는 시장 조건에 반응하며 대응한다. 실험하고 학습하며, 새로운 시장을 개발하고 경쟁을 압도한다.
최적의 계획을 수립하려고 노력할 때 비즈니스 및 제품 전문성이 풍부한 사람들의 끊임없는 관심이 필요하며, 이를 위해서는 제품 및 시장 전문가가 개발 팀에 상주해야 한다.

강화하기 영역

애자일 플루언시 모델의 마지막 영역이다. 애자일로 달성할 수 있는 미래, 즉 추측의 영역이다. 관리 이론과 실무에 통달한 조직에게만 적용할 수 있는 영역이기도 하다.