Detecting the Agile Method for Scaling
This book neither presents agile processes in general, nor does it present any agile methodology in particular. (However, at the beginning of the next chapter, I provide a very brief introduction to the fundamentals of agile processes.1) So, although you might, for example, detect some techniques that remind you of Extreme Programming, neither the title nor the focus of this book is Scaling Extreme Programming. It is, however, possible to scale some of the practices of Extreme Programming so they are therefore beneficial to large teams. And, in parallel, they support the underlying value system of agile processes.
As we shall discuss later (see Chapter 3), a large team is typically split into many smaller teams. Because a lot has been said already about agile processes in small teams, I do not focus on the processes these subteams are using. Instead, I concentrate on the process that brings them all together and enables them—despite the large number of people—to work together with agility. Therefore, rather than focus on every aspect of agile processes, I concentrate only on those that work differently in large projects developed by large teams.
The problem is that processes, including agile processes, do not scale linearly. Depending on the “jump” in size, completely new difficulties may occur. The differences are rooted in the fact that some parts of the process cannot be done well by large teams and require a specific treatment. Other differences are the problems that arise solely in large teams, such as communication, as we have seen before.
Thus, instead of scaling a particular agile method, this book presents best practices that allow us to scale up agile principles by respecting the agile value system.