원칙, 패턴, 실천방법 등도 모두 중요하지만, 이것들이 그 기능을 제대로 발휘하게 하는 것은 바로 인간이다. 프로세스와 기술은 프로젝트의 결과에 이차적 영향만을 미칠 뿐, 일차적 영향을 미치는 것은 인간이다. 따라서 프로젝트를 성공적으로 이끌기 위해서는 협력적이고 자기 조직적인 팀을 구성하는 것이 중요하다.
2000년대 초기에는 많은 회사들이 실천방법(practice) 없이 개발을 해왔다. 오류는 계속해서 발생했고 복잡해진 프로세스는 계속되는 악순환을 낳았다. 그래서 소프트웨어 분야의 전문가들이 소프트웨어 팀으로 하여금 빠르게 일하고 변화에 반응할 수 있도록 하는 가치와 원칙을 세우기 위한 모임을 가졌다. 이를 애자일 동맹이라고 하며, 이 모임에서 애자일 동맹 선언이 등장한다.
프로젝트가 성공하기 위한 가장 중요한 요소는 사람이다. 프로젝트에는 뛰어난 능력을 가진 팀원이 필요한데, 이때 뛰어난 능력이란 프로그래밍을 잘하는 것이 아니라 다른 동료와 함께 잘 일할 수 있는 능력을 뜻한다.
적당한 툴은 성공을 위해 꼭 필요한 것이지만, 팀을 구성하는 것이 환경을 구성하는 것보다 더 중요하다는 것을 명심해야 한다. 우선 팀을 만들기 위해 노력하고, 그런 다음에 팀의 필요를 기반으로 환경을 구축해야 한다.
문서화되어 있지 않은 소프트웨어는 실패한 소프트웨어이다. 사람이 읽을 수 있는 형태로 된 문서는 꼭 필요하지만, 지나친 문서화는 오히려 해가 된다. 문서를 만드는 것은 오랜 시간을 필요로 하며, 코드와 동기화를 하는 데에 많은 노력을 기울여야 한다. 코드와 문서의 내용이 맞지 않다면 이는 프로그래머를 잘못된 방향으로 유도할 것이다.
간소화된 문서로 인해 새로운 팀원이 시스템 적응에 힘들어한다면 동료 개발자와의 긴밀한 소통을 통해 적응해나가도록 해야한다. 시스템에 대한 이해를 다른 사람에게 전해주기 위한 것으로 '사람 대 사람의 상호작용'보다 더 빠르고 효율적인 것은 없다.
성공적인 프로젝트는 정규적이고 빈번한 고객의 피드백을 수반한다. 프로젝트의 요구 사항, 일정, 비용을 명시한 계약서는 근본적으로 부족한 부분이 있다. 대부분의 경우 계약서에 명시된 기한은 의미 없이 늘어나기만 하므로, 바람직한 계약서는 개발 팀과 고객이 함께 작업하면서 협의해야 한다.
도메인 주도 설계에서 접했던 도메인 전문가의 존재에 관한 내용과 맥락을 같이 하는 부분이라고 생각한다. 고객을 단순히 고객으로만 보지 않고 프로젝트에 새로운 통찰력을 제공해줄 수 있는 협조자로 받아들여야 한다.
프로젝트를 진행해 감에 따라 요구사항은 변화하기 마련이다. 고객은 시스템이 일단 동작하기 시작하면 요구 사항을 좀 더 높은 단계로 끌어올리고 싶어할 것이다. 기존에 계획했던 어떤 태스크는 필요 없어질 것이고, 또 어떤 태스크는 새로 등장하고 추가되어야 한다.
그렇기 때문에 팀은 변화에 민감하게 반응할 수 있도록 단기적으로만 구체적인 계획을 수립해야 하고, 중장기적인 계획은 대략적으로만 설정해야 한다.
앞서 설명한 가치들은 다음 12개의 원칙을 이끌어낸다. 이 원칙은 애자일 실천방법을 기존의 무거운 프로세스와 차별화하는 특징이다.