Tag Archives: scaling

“Which project is best suited to pilot Scrum?” is a question I get regularly asked in my workshops and training courses. While it is always important to carefully consider the specific situation of an organisation, I have found the following six criteria helpful to select the right agile pilot project:

  1. Small: Your pilot project should be small and consist of no more than two to three teams. Large-scale agile development introduces additional challenges and requires further practices. If you must scale, start with one or two teams and slowly add more teams by splitting the existing teams and adding new members.
  2. Important: Make sure that your pilot is relevant to the organisation. Otherwise skeptics might dismiss it as a “pet project” and undermine the buy-in for the new approach. But avoid mission-critical projects – development efforts whose success severely impacts the organisation. Agile software development is a disruptive process innovation for most organisations. It requires the ability to experiment, to make mistakes, and to learn from them.
  3. Independent: Choose a project that has few dependencies on other teams. Having to coordinate with other projects or different groups adds a level of complexity and makes the disciplined application of agile practices difficult – particularly if the other projects follow a different process. If all you have to choose from is a large, complex project then look for a subproject with few dependencies to pilot your agile approach.
  4. Collocated: Start with a collocated agile project and avoid distributed development efforts, as these make effective collaboration more difficult and require additional practices and tools. Jointly writing user stories, pair programming, and having effective sprint review meetings become much more challenging, for instance.
  5. Software only: Limit your agile pilot to software development. This reduces the added complexity that arises when other disciplines such as hardware and mechanics are involved. Agile software development practices are also well understood. That’s true to a much lesser extent for hardware and mechanical engineering.
  6. New product development: Select a new product development project rather than updating an existing product if you want to try out Scrum. This allows you to explore how an idea is best transformed into a shippable product using agile practices. It frees you from worrying about a legacy code base that may be difficult to understand and lack the necessary tests. What’s more, Scrum is particularly well suited to cope with the flux, uncertainty, innovation, and risk that are characteristic of new product development.

Before you now select your pilot project or decide to delay experimenting with agile practices, consider the following advice:

  1. Know your goal: Understand why you want to try out a certain agile approach and what benefits you expect – even if it’s just to see what all the hype is about.
  2. Just do it: While it is helpful to look for the right pilot, nothing beats applying agile practices – even if you can only use selected techniques within your established process.

“What I hear, I forget.
What I see, I remember.
What I do, I understand.“
~ Confucius ~

The product owner is the person in charge of the product. For products of modest complexity and small projects, it may be feasible to have one individual playing the product owner role. But how do we deal with product ownership on large Scrum projects that develop complex products?

The Chief Product Owner

A large agile project consists of many small teams. Each team needs a product owner, but my experience suggests that one product owner usually cannot look after more than two teams in a sustainable manner. Consequently, when more than two teams are required, several product owners have to collaborate.

This puts us in a dilemma, as it conflicts with the Highlander Principle, which states that there should only be one product owner. The solution is to introduce a chief product owner. A chief product owner is responsible for the overall product, guides the other product owners, and facilitates product decisions.

There are two ways to apply the chief product owner role: working with one potentially large and complex product, or breaking up the product into multiple, independent sub products.

Option 1: One Product

If you develop one cohesive product with lots of functionality, you are likely to end up with a hierarchy of collaborating product owners with a chief product owner at the top, as the following image shows:

In the picture above, the chief product owner is responsible for the overall product whereas the other product owner manage feature sets or individual features.

Option 2: Product Suite

The second option is to break up the product into vertically-aligned, focused sub-products that can be managed by one product owner, as the following image illustrates:

The advantage of the product suite approach is to release the individual products separately and to package them to product variants. A flatter project organisation also means less overhead and faster decision making. The product backlogs are focussed and more concise reducing the grooming effort and increasing transparency.

Summary

If you work with more than one product owner, put one individual in charge of the overall product. As your product grows and becomes more feature rich, consider breaking it up into focused, vertically-aligned products that can be managed by one product owner and developed by no more than three teams. This allows the product owners to control their product, reduces decencies and overhead, and speeds up development.