Enterprises that are adopting agile organizational-wide will at some time have to scale their agile practices. They usually have multiple interdependent teams, which makes them look for ways to make agile practices works across the enterprise in a similar way, to enable collaboration between teams.
Frank Langeveld facilitated a half-hour session at the Agile Methods in the Finance Sector and Complex Environment conference to share experiences between the conference attendees with scaling agile in enterprises. He started by asking people to stand up if they had an agile scaling practice that they wanted to talk about. Four people stood up, and Frank asked each of them to do a 30 seconds pitch of the practice. He wrote the practices down on a flip over. Since their were only four practices, Frank decided that each presenter would get 5 minutes to explain the practice in more detail, and to answer questions from the attendees. Give the short time frame only questions which helped to clarify the practice were allowed, discussions whether a practice would or would not work were stopped by the session leader.
The 4 practices that came up in this session are:
- Risk-Value Lifecycle
- Use Case Modeling
- Two-Layer Project Structure
- Combining best practices
These are the summaries of the practices as presented:
Practice 1: The Risk-Value Lifecycle is a practice from the Rational Unified Process, available as an Eclipse Practice. It is a risk mitigation strategy that can be used in agile projects. The biggest risks of a starting project often have to do with getting all the stakeholders involved, therefore the focus of the first iterations (during the inception phase) should be on having all the stakeholder agree on the problem being solved. If they are not involved sufficiently then you cannot deliver a solution that will solve their problems. Iterations in the elaboration phase should focus on proving that you can make the product. In the construction phase the focus should be on assuring that the required functionality can be realized in the product, and in the transition phase managing risks is mainly about making sure that the users can actually use the product. Summing up, the Risk-Value Lifecycle helps you to manage different risks during a project lifecycle to deliver value.
Practice 2: Use Case Modeling can be used as an agile scaling practice for managing the requirements in agile projects. User stories are great for specification but do not help you to document the context of a system and to handle abstraction, this is where use cases have value. You can capture user stories in use cases, to show how they relate to each other. Use case modeling can also help to match the user stories to business processes and business rules at the enterprise level.
Practice 3: The Two Layer Project Structure makes it possible to manage both waterfall, agile and other kinds of projects in a Project Management Office. It consists of a project management layer and an execution layer. The project management layer is the same for different kinds of projects, and ensures that all projects will report in the same format to their stakeholders. A project manager has the flexibility to define the execution layer in such a way that it helps him/her to manage the project. It could consist of agile iterations, multiple tracks for managing multiple products or large product parts in one project, or waterfall phases. The project management layer has the phase “define”, “execute” and “close”. A waterfall project can for instance have an execution layer with design, implement and build which fits into the execute phase of the project management layer, where a project using Scrum would have sprints in the execute phase. It is also possible to have projects with teams that have different execution layers, e.g. a user interface team that is using agile iterations and a back-end team with waterfall phases.
Practice 4: When scaling agile in an enterprise it can help if the organization is capable to combine practices from different methods to build their own large scale agile approach. You could call it “a bit of everything”, where you basically use what is available in the enterprise and reuse and combine best practices to scale agile.
Which practices do you use to scale agile in your enterprise?