The Principles of Effective Process Frameworks for Enterprise Agility
Like many enterprise agile frameworks, Disciplined Agile has its own set of guiding principles that are closely locked together. These principles give you a high-level overview of what to expect when looking at the different process frameworks. Some these principles have a direct effect on each of the processes, while others are more high-level and aspirational:
- Delight customers: Successful organizations find new and better ways to delight their customers. Remember that customers are not as interested in your internal processes as they are in making sure their products are easier to use and add real value.
- Be awesome: Happy and well-functioning teams produce better products. Remember that part of the Agile Manifesto is “individuals and interactions over processes and tools.” Your organization should focus on improving the process by improving how people interact.
- Embrace pragmatism: DA sees itself as a pragmatic approach to enterprise agility. It discourages “agile purism.” Instead it encourages teams to make as many positive changes as practical within the organization. Teams shouldn’t focus on agile best practices, but look at the organization as a whole and see if it could benefit from a more agile mindset.
- Context counts: Organizations are unique; that’s why it’s difficult to have one set of prescriptive practices that will work in every enterprise. The DA framework tries to give you lots of different buttons and dials to press and twist to create a customized approach for your organization. That way you can adapt the approach to your context instead of relying on one standard set of practices.
- Choice is good, and making informed choices is better: Every organization, team, individual, and situation is unique, so DA supports several delivery frameworks and a number of agile and non-agile practices. That’s the “choice is good” part. The DA framework also provides insight to help you make the right choices for your organization and teams. That’s the “making informed choices is better” part.
- Optimize flow: Like most enterprise agile frameworks, DA emphasizes the importance of continuous improvement. You always want to look for ways to improve how work “flows” through the system, for example:
- Deliver continuously at a sustainable pace: The team should be comfortable continuously delivering potentially shippable solutions instead of focusing on releases.
- Optimize the whole: All individuals on an agile team should be aware that they’re working in a larger organization. That means that no matter how streamlined a team becomes, team members still need to think of how their work impacts other teams in the larger enterprise.
- Make work flow: DA teams lean heavily on Kanban as a way to manage their work in progress (WIP) and look for potential bottlenecks.
- Eliminate waste: One of the best ways to improve is to eliminate waste in your process. (Waste is anything that doesn’t deliver value to the customer, including inefficiencies in processes.) When you simplify a process, it’s much easier to manage flow and find areas for improvement.
- Improve continuously: A DA team should always look for ways to improve the process. This means taking time to learn from the team’s mistakes and being open about ways to improve.
- Experiment to learn: This idea was popularized with Lean Startup. It’s also one of the core ideas behind Scrum’s empirical approach to delivering a product. Your team should have a scientific mindset, which encourages the team to run small process experiments. Don’t be afraid to make small changes and be transparent about the results.
- Measure what counts: Establish early on what metrics you want to use to look for ways to improve. You may want to focus on on-time delivery, customer satisfaction, or the happiness of the team. Look for specific things to measure as the first step to improving your delivery.
- Prefer long-lived stable teams: In most organizations it’s common to have temporary teams that are quickly assembled for one-off projects. A DA team is always working to become better optimized. The longer teams stay together, the more waste they’ll eliminate from their own process.
- Be enterprise aware: A well-run agile team can quickly deliver a high-value product. Yet these team efficiencies don’t necessarily scale to the rest of the enterprise. DA teams look for ways to improve the whole system. DA teams know that tuning your own race car doesn’t make the rest of the traffic run any smoother.