우리가 애자일 소프트웨어 개발 선언문을 작성했을 때, 업계의 변화를 시도했던 소수의 사람만이 우리를 지지했다. 20여 년이 흐른 지금 ‘애자일(agile)’은 주류로 자리잡았다. 그러나 애자일 소프트웨어 개발을 하고 있다고 말하는 사람들이 하는 행동은 우리가 20여 년 전에 공유한 비전과 비슷한 점이 거의 없다.
애자일 방식으로 작업하기 위해서는 소프트웨어 개발 작업 관리 및 기술적인 실행 모두에 상호 연결된 프랙티스의 그물(web)이 필요하다. 이런 프랙티스 중 많은 부분, 특히나 기술적인 프랙티스에 관해서는 이해가 부족하거나 이해하고 있더라도 프랙티스를 널리 가르치지 않는다. 그 결과 너무 많은 사람이 소프트웨어 제품을 구축하는 효과적인 방법이 무엇인지에 대한 왜곡된 관점을 갖고 있다.
제임스 쇼어는 애자일 운동(Agile movement)의 핵심 기둥인 익스트림 프로그래밍(Extreme Programming)의 길을 걸은 개척자들 중 한 명이다. 이 책의 1판은 내가 가장 좋아하는 책으로, 팀에서 애자일 프로세스를 적절하게 실행하기 위해 알아야 할 것을 보여주는 핸드북이었다. 제임스는 이후 다이애나 라센(Diana Larsen)과 함께 애자일 플루언시 모델(Agile Fluency Model)을 만들었다. 이 모델은 사람들이 애자일 접근 방식을 이용해 기술을 개발할 수 있는 다양한 방법에 대한 경험을 담았다. 이 모델에서 기본 스크럼 접근법이라 불리는 프로젝트 관리 기술의 단순한 적용은 고객의 요구사항에 초점을 맞춤으로써 어느 정도의 가치를 제공하지만, 많은 팀이 달성하고자 하는 높은 생산성과 안정성을 얻는 데 필요한 기술적 스킬은 부족하다.
이런 관점은 가치에 집중하는 방법과 해당 가치를 안정적으로 전달하는 방법에 많은 비중을 둔 이 책의 구조를 올바르게 이끌고 있다. 가치에 집중한다는 것은 강력한 팀워크의 중요성을 이해하고, 적응적 계획(adaptive planning) 기술을 개발하고, 그 결과 개발된 소프트웨어의 고객 및 사용자와 긴밀하게 협업하는 것을 의미한다. 딜리버리 신뢰성 테스트, 리팩터링, 디자인 및 공동 개발을 위한 필수 기술 사례에 중점을 둔다. 내부 품질이 높은 소프트웨어를 구축하면 비용이 절감되고 코드 전달 속도가 빨라진다는 직관적이지 않을 수도 있는 개념을 인식한다. 데브옵스(DevOps) 문화 및 지속적인 제공과 결합해 높은 빈도의 기능을 신속하게 프로덕션에 적용할 수 있게 지원한다. 팀은 이를 통해 소프트웨어가 실제로 사용되는 방법을 관찰함으로써 무엇이 더 가치 있는 것인지 더 많이 배울 수 있다.
나는 20년 전 운이 좋게 소트웍스(Thoughtworks)에 둥지를 틀었다. 우리 팀은 이런 유형의 기술을 사용해 고객이 새로운 소프트웨어 제품을 구축하고 오래된 레거시(legacy)를 대체하도록 지원한다. 제임스와 마찬가지로 우리는 익스트림 프로그래밍이 확고한 기반을 제공하는 것을 발견했고, 지난 20년 동안 이 기술을 적용해 큰 성공을 거뒀다. 그렇기에 나는 제임스가 10년 동안의 코칭 경험을 2판에 반영한 것을 보게 돼 너무나도 기쁘다. 가치 있는 일에는 시간이 걸리고 그 과정에서 좌절도 있을 것이다. 하지만 이 가이드북에는 껍데기만 남은 의식에서 벗어나 제임스와 내가 수년 전 이 기술을 처음 사용했을 때 느꼈던 활력이 있다.이 활력은 여러분의 여정을 도울 수 있을 것이다.