Businesses don't like surprises. And they don't like surprises because surprises can be dangerous. Unexpected changes can harm a business because enterprises are fragile - they are easily damaged and broken by unexpected and unpredictable changes and events.
How can we deal with this problem? We can solve it by building an enterprise that is not easily damaged and broken by unexpected and unpredictable changes and events. An enterprise that is agile to rapidly adapt to tomorrow's surprises. It is not easy to create such an enterprise because it requires the development of a whole new set of business practices as well as radical changes across the whole enterprise.
Note that agility is not just about speed of response - it is about rapid adaptation. In other words, enterprise elements adapting in response to unexpected and unpredictable changes and events, new opportunities and customer requirements, new technologies and changes to industry structures.
What is an Agile Enterprise?
An agile enterprise is a fast moving, adaptable and robust business. It is capable of rapid adaptation in response to unexpected and unpredicted changes and events, market opportunities, and customer requirements. Such a business is founded on processes and structures that facilitate speed, adaptation and robustness and that deliver a coordinated enterprise that is capable of achieving competitive performance in a highly dynamic and unpredictable business environment.
How do we build Agile Enterprises?
It requires strategic vision to commit to embracing the emerging business environment. This involves creating an agile strategy that manifests principles of adaptation across the value chain. An enterprise's agility drastically reduces if only part of the value chain is agile, hence, an Agile Enterprise needs an Agile Governance to drive Agility across the organization. Purpose of this governance is not to control. Its main function is to ensure alignment of agile execution with agile strategy. It also takes responsibility of investing in team's agility. This agile governance needs to be very "lightweight" to justify agility of the process. In this article we will focus on how to create an Agile Governance as a building block for an Agile Enterprise.
How can we create lightweight Agile governance without compromising Agility?
In order to understand Agile Governance, you need to understand the following two key concepts:
- Communities of Practice (CoPs)
- Scrum of Scrum (SoS)
1. Communities of Practice
What are CoPs?
Communities of practice (CoP) are groups of people who share a concern or a passion for something they do and learn how to do it better as they interact regularly.
What are the characteristics of CoPs?
- Formally committed to an organizational domain e.g. architecture, user experience, quality assurance etc.
- A virtual team with shared interest and competence spans across multiple agile teams with a community "lead”
- Carry a community backlog
- Building block for Agile Governance
What are the benefits of CoPs?
- Define domain roadmap
- Promote best practices
- Manage domain dependencies across teams
- Coordination and synergy
- Mapping knowledge and identifying gaps
- Knowledge sharing and problem solving
Finally, how does these CoPs help in Agile governance?
Imagine a software project (some may call it a program) where you have 8 Agile teams working on delivering a single product. As you can easily guess, this project will have some common elements and lot of integration points. As an example, all teams need common user management, consistent look and feel, consistent error handling, common QA practices, and moreover a unified architecture to deliver a well integrated projects. Obviously, project needs multiple architects, UI designers and QA folks. It is old fashioned to create a dedicated team for each functional domain e.g. architects or UI designers or QA folks. It is too unproductive and non-agile to put these smart guys virtually away from the real teams. What can we do to bring the agility in team structure? We just need two simple steps:
- Ensure that folks in these functional domains are cross-functional and hands-on while maintaining their area of expertise.
- Convert your dedicated domain teams into virtual teams and make these domain specific folks part of the agile teams focusing on specific business capability. Each Agile team has people capable of software design, UI design, QA etc. In other words, create virtual CoPs who virtually maintain their domain specific backlog while each member of this CoP becomes part of some Agile team. Each CoP has a lead who functions more like a domain product owner. These CoPs must be self-organizing.
2. Scrum of Scrum (SoS)
So far so good, we solved the problem of creating silos while developing cross-functional agile teams, however, we also introduced a new dimension by team virtualization. How do we ensure that these virtual teams are functioning well? How can we make these virtual teams more scalable?
Let's introduce another concept called Scrum of Scrum (SoS), which helps in making Agile Governance scalable. SoS is introduced by Scrum but you can apply this concept in any Agile format.
The scrum of scrums (SoS) is an important technique in scaling Scrum to large project teams. This concept allows clusters of teams to discuss their work, focusing especially on areas of overlap and integration. SoS creates an virtual environment to members of various Scrum teams to function as Scrum of Scrum.
3. Agile Governance
As you will notice that CoP and SoS are similar concepts (virtual) but with slight difference (vertical - skill domains v/s horizontal - business function). Both concepts are used by many Agile teams. We can make process even more scalable by merging these concepts together. This merger provides us an Agile Governance which focuses on the strategic element of the organizations. Here are the key characteristics of an Agile governance:
- Key building block for an Agile Enterprise
- Focuses on integrating value
- Aligns agile strategy with agile execution
- Driving force for the agile strategy and business success
- Invests in the predictable delivery (e.g. training, coaching, certification, engineering best practices, tools etc.)
- Nurtures innovation
- An extension of SoS and CoP concepts
- Consists of PMO, Business and CoP Leads
If you need to extend this governance further in a highly distributed environment or to an contracting environment, then you may apply another concept called "Proxy Product Owners". Simply speaking, if main Product Owner cannot participate actively in your agile teams then you may assign a Proxy who represents Product Owner in the Agile team. This proxy needs to maintain a very good communication with the Product owner. There are pros and cons for this concept, hence, it needs to be applied carefully.
RULE OF THUMB:
In a nutshell, Agile Governance is based on following three basic concepts. It is not mandatory that all 3 are required to be implemented. It largely depends on the complexity of your project and organization. Ultimate objective of the Agile governance is to make Agile process more scalable without loosing focus on integration and strategy of the enterprise.
- Develop and cultivate Communities of Practice (CoP) (virtual skill domains)
- Use Scrum of Scrum as necessary (virtual process management)
- Use proxy for product owners if there is no viable way to have product owners participate in the Agile team meetings
Agile Development Teams: Scope and Scale with Mike Cohn
- Agile Strategy Manifesto
- 6 Levels of Agile Planning
- Agile Planning - Backlog Management
- Agile Iteration Lifecycle
- Agile Governance Model
- Agile -A Perfect Partner
- Agile - An Investor's Perspective
- Agile/Scrum Crash Course
You can watch agile educational videos at Agile TV. Here are Agile TV channels:
- Advice on conducting the Scrum of Scrums meeting
- Communities of practice - A brief introduction
- Agile Rules of Thumb
- Features Articles