All agile processes are different. A variety of branded agile methodologies are available. However, many development shops have found it preferable to use these as starting points, modify the process to suit their particular needs, and then keep any single prepackaged methodology intact. In fact, most branded methodologies encourage this by providing a set of core values and a mechanism known as a retrospective to change the process around these core values. Ultimately, every mature agile process differs in some way to suit the needs of the development staff, Enterprise, or project the methodology is being used in.
Remember that this book is not about agile development. Agile development is discussed here to provide a framework and context for the use of TDD because most agile development methodologies rely heavily on the benefits of TDD.
All agile processes are slightly different, but some common themes and values permeate the agile landscape. A few principles define agile practices. While changing and tweaking agile processes is encouraged, it's generally a good idea not to stray too far from these core principles.
Most agile processes focus on the idea of small, easy-to-manage-and-understand units of work being done in short iterations. These units of work should be focused on a specific, testable feature of the system. The testability aspect is very important. Another core principle in agile is to get software in front of users as quickly and often ...