소프트웨어 장인
이 글에서는 애자일 매니페스토의 12가지 원칙을 통해 효과적인 애자일 개발 방식에 대해 알아봅니다.

주변의 추천으로 읽기 시작하게 된 책이다. 애자일 에 대해서는 대학생 때부터 수도없이 많이 들어봤지만, 아직까지 어떻게 일해야 애자일한지에 대해서는 정확히 알지 못한다. 재직했던 회사들에서는 일하는 방식이 잘못되었고 좀 더 애자일하게 개발하고 싶다는 생각이 들었지만, 정확히 어떻게 일을 해야 애자일하게 일하는 것인지는 알지 못했다. 
실질적으로 애자일하게 일하려면 어떻게 해야 할까 ? 
애자일 매니페스토 에 쓰여 있는 열두 가지 원칙들은 다음과 같다.
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
 
가치있는 소프트웨어를 일찍, 지속적으로 전달하여 고객을 만족시키는 것을 최우선으로 한다.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
 
개발의 막바지 단계이더라도 고객의 요구사항 변경을 환영한다. 애자일 프로세스들은 변화를 활용하여 고객의 경쟁력을 높이는 데 기여한다.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
 
동작하는 소프트웨어를 몇 주에서 몇 개월 단위로 자주 전달한다. 가능한 한 전달주기를 짧게 한다.
- Business people and developers must work together daily throughout the project.
 
비즈니스 담당자들은 프로젝트 기간 내내 매일 개발자와 함께 일한다.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
 
프로젝트는 동기가 부여된 개인들로 구성한다. 그들이 필요로 하는 환경과 지원을 제공하고 프로젝트가 완료될 때까지 믿고 맡긴다.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
 
개발팀 내에서 정보를 전달하는 가장 효율적이고 효과적인 방법은 얼굴을 마주보고 대화하는 것이다.
- Working software is the primary measure of progress.
 
프로젝트의 진척도를 가늠하는 가장 기본 요소는 동작하는 소프트웨어다.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
 
애자일 프로세스들은 지속 가능한 개발을 이끈다. 투자자, 개발자, 사용자들은 일정한 개발 속도를 계속 수용할 수 있어야 한다.
- Continuous attention to technical excellence and good design enhances agility.
 
기술적인 탁월함과 좋은 설계에 대한 지속적인 관심은 기민함을 높인다.
- Simplicity–the art of maximizing the amount of work not done–is essential.
 
단순함, 즉 하지 않아도 될 일은 최대한 하지 않아야 한다.
- The best architectures, requirements, and designs emerge from self-organizing teams.
 
최선의 아키텍처, 요구사항, 설계는 스스로 조직화되는 팀에서 나온다.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
 
개발팀은 장기적으로 일을 어떻게 하는 것이 더 효과적인지 되돌아보고 그에 맞추어 일하는 방식을 조율하고 바로잡는다.
이것도 읽어보세요