The Focus of This Course
Get an overview of what we'll learn in this course.
We'll cover the following
Specifying the projects in focus
This course is based on our experience with projects with teams ranging in size from one person to 200 people. We learned a lot about scaling agile processes while working with these different-sized teams. In our experience, one would recognize significant consequences with a team of twenty or more. So, although this course deals mainly with issues faced by teams with over a hundred members, projects with more than even ten people will also benefit, especially if they are embedded in a large organization. Although we do not examine the special aspects of teams with 1,000 people or more, we do assume that issues and challenges exist in these circumstances, which are addressed by this course. This course explain the agile value system and shows how to preserve these values even with large projects. It also clarifies the difference between the agile value system and its realization in a specific process, such as in Extreme Programming (XP).
Our experience was mainly with colocated teams that outsourced only minor parts of their development effort. This means that dispersed development is not a focal topic of this course, although it is nevertheless discussed. The projects we worked on were varied in their nature. We worked with financial, automobile, telecommunications, and software teams. Of course, we exchanged experiences with a lot of other people, most of whom had similar experiences to ours, in terms of the largest teams we had worked with. Some of them have experience with teams of 350 people and still encounter similar challenges. Therefore, all the issues and suggestions in this course are based on experiences with large teams and large projects—either our own or those of our colleagues.
Detecting the agile method for scaling
This course neither presents agile processes in general nor does it present any agile methodology in particular. So, although a reader might, for example, detect some techniques that remind one of Extreme Programming, neither the title nor the focus of this course is Scaling Extreme Programming. However, it is 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.
A large team is typically split into many smaller teams. Because a lot has been said already about agile processes in small teams, the course does not focus on the processes these subteams are using. Instead, it concentrates on the process that brings them all together and enables them—despite the large number of people— to work together agilely. Therefore, rather than focusing on every aspect of agile processes, the course tries to concentrate only on those that work differently in large projects developed by large teams.
The problem is that processes, also agile processes, do not scale linearly because, depending on the “jump” in size, completely new difficulties can occur with the increased team size. 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. Others are based on problems that arise solely in large teams, like communication as we have seen before. Therefore, instead of scaling a particular agile method, this course presents best practices that allow us to scale up the agile principles by respecting the agile value system.