Posts Tagged ‘Big Agile’

Agile Business Analysis Planning and Monitoring

Posted on October 13th, 2009 by Dennis Stevens  |  No Comments »

Today I am discussing the tasks from the BABOK associated with Business Analysis and Planning. These are the tasks to determine which business analysis activities are necessary to support an effort. There are six tasks associated with Business Analysis and Planning. I show the BABOK® purpose. Then I discuss the impact on who and how in projects leveraging progressive elaboration, incremental delivery, close customer engagement, ongoing learning, and self organization.

Plan Business Analysis Approach

BABOK Purpose

Agile Impact

Describes how to select an approach to performing business analysis, which stakeholders need to be involved in the decision, who will be consulted regarding and informed of the approach, and the rationale for using it. The Business Analysis approach is agreed upon by team at the start of the project. The approach will support progressive elaboration of requirements and feedback from the customer. It will also support evolution of the business analysis approach throughout the project via learning that occurs through retrospectives.


Conduct Stakeholder Analysis

BABOK Purpose

Agile Impact

Covers the identification of stakeholders who may be affected by a proposed initiative or who share a common business need, identifying appropriate stakeholders for the project or project phase, and determining stakeholder influence and/or authority regarding the approval of project deliverables. This will be performed by the Product Owner, Project Management, or Business Analyst. Additional understanding of the Stakeholders will be needed for Agile projects. What is the impact of the Agile cadence on the stakeholder? How does progressive elaboration impact the expectations of the stakeholder? Can the stakeholder participate in updating the processes, interactions, and products specifications during the course of the project?


Plan Business Analysis Activities

BABOK Purpose

Agile Impact

Determine the activities that must be performed and the deliverables that must be produced, estimate the effort required to perform that work, and identify the management tools required to measure the progress of those activities and deliverables. This will be performed and agreed upon by the team. The business analysis activities will be consistent with the business analysis approach. There is less of a focus on formal documentation (although it still exists at a situation appropriate level) and more focus on progressive elaboration of documentation throughout the life of the project. Also, much of the elaboration is replaced by interactions and ceremony so these outcomes need to be accomplished with activities addressed in the communication plan.


Plan Business Analysis Communication

BABOK Purpose

Agile Impact

Describes the proposed structure and schedule for communications regarding business analysis activities. Record and organize the activities to provide a basis for setting expectations for business analysis work, meetings, walkthroughs, and other communications. This will be performed and agreed upon by the team.  In Agile projects, some deliverables – or elaboration of these deliverables – are replaced by specific interactions or ceremonies. By definition, these interactions and ceremonies require real-time participation by the Business Analysis. The Business Analysis Communication activities need to address these interactions and the team needs to have a shared understanding of the purpose of these interactions and ceremonies



Plan Requirements Management Process

BABOK Purpose

Agile Impact

Define the process that will be used to approve requirements for implementation and manage changes to the solution or requirements scope. This will be defined by the team and performed by the Product Owner or Business Analyst. The term “Requirements Management” raises the hackles of Agile practioners. It implies a change is an exception rather than anticipated outcome of learning. Producing documentation that is going to change before it is used and any efforts to “Control Change” are therefore considered a wasteful effort.  A Requirements Management Process must support approval and changes in a way that facilitates delivery of value – rather than tracking for the sake of tracking.


Manage Business Analysis Performance

BABOK Purpose

Agile Impact

To manage the performance of business analysis activities to ensure that they are executed as effectively as possible This will be performed by the Product Owner or the Business Analyst’s manager. This should be measured based on performance of the project rather than adherence to process. The Business Analyst is making sure just enough of the right features are being developed. The right features are those that burn down risks early and drive deliverable business value as early as possible. The business analyst also has to find the balance between formal requirements documentation and clear communication of need. Effective Business Analysis Performance will result in limited rework of the requirements documentation, effective prioritization and scoping of requirements, and clear communication of need to the development team.


Business Analysis Planning and Monitoring Summary

All of the tasks in Business Analysis Planning and Monitoring are important on Agile projects. They won’t be dictated from existing policy, they will be decided on as a team. The activities will support the Agile approach. The primary distinctions in this Knowledge area are planning for  continuous engagement with  the customer and the progressive elaboration of requirements. In an enterprise that has governance requirements, the team will have to negotiate how they will deliver communications to the governance team that is sufficient to support the needs of the business.

Agile Business Analysis

Posted on October 12th, 2009 by Dennis Stevens  |  No Comments »

Agile methods are helping teams deliver software faster and with much higher quality than ever before. In response, Agile has emerged as a driving force in software development. Businesses want to achieve the benefits of improved quality and rapid delivery.   But getting faster at development is just part of the equation.  As I discussed in my presentation “Feeding The Agile Beast”, you have to identify, prioritize, and scope what you are going to build so that risk is managed and ROI is maximized.

So, What’s New?

Agile methods have emerged from a few simple concepts. Change happens and people trump process (Thanks to Ken Schwaber via Steve Adolph). In response to this, substantially all of the Agile methods describe a way of delivering software that support the following attributes:

  • Progressive elaboration a little ahead of demand (for planning,  requirements,  architecture, testing,  etc)
  • Incremental and iterative delivery (though not time-boxed in Kanban/Lean continuous flow)
  • Ongoing learning through close customer engagement regarding product fit/business value that informs requirements and prioritization
  • Ongoing learning regarding development/delivery approach and interactions that informs ongoing improvement efforts
  • Self organization around the work (where the people performing the work decides how best to do their jobs within organizationally appropriate constraints)

In traditional software development, this identification and prioritization of what you are going to build falls in the role of the Business Analyst. However, traditional business analysis methods do not operate in harmony with the iterative and incremental cadence of Agile methods. For the most part, this is different than traditional plan driven projects.  Over the next week or so, I am going through the capabilities associated with Business Analysis and discuss the how Agile impacts how business analysis is performed.

The Guide to the Business Analysis Body Of Knowledge

I am going to build this discussion on work from The Business Analysis Body of Knowledge® (BABOK®) from the International Institute of Business Analysis. The IIBA® is the independent non-profit professional association serving the growing field of Business Analysis.  The IIBA has collected the current generally accepted practices within Business Analysis in The Business Analysis Body of Knowledge® (BABOK®).The BABOK® Guide describes Business Analysis areas of knowledge, their associated activities and the tasks and skills necessary to be effective in their execution.

The BABOK has six Knowledge Areas.

  • Business Analysis Planning and Monitoring: Determine which business analysis activities are necessary to support an effort.
  • Elicitation: Understand the underlying needs rather than stated or superficial desires.
  • Enterprise Analysis: Understand what the enterprise is capable of performing.
  • Solution Verification and Validation: Determine which solution best fits the business need – includes assessing the performance and effectiveness of the solution.
  • Requirements Analysis: Organize, prioritize, and model requirements and risks.
  • Requirements Management and Communication: Ensure knowledge gained through business analysis activities throughout the effort is shared among the team.

Within each Knowledge Area are several tasks. I will focus on how progressive elaboration, incremental delivery, close customer engagement, ongoing learning, and self organization impact who performs business analysis tasks and how business analysis tasks are performed.

Agile Business Analysis

Just to set my context. All of the Capabilities that are reflected in the BABOK happen on all projects – traditional or Agile. They may or may not be done by a specific role. They may or may not happen in a specific phase. They may or may not be done with any ceremony or intention. They do occur. Since the identification, prioritization, and scoping of requirements is so important to success, they need to be done well. And on an Agile project they need to be done so they enable – not constrain or impede – the delivery of value in projects leveraging progressive elaboration, incremental delivery, close customer engagement, ongoing learning, and self organization.

Big Agile Adoption Approach

Posted on October 5th, 2009 by Dennis Stevens  |  1 Comment »

This post is going to go back over the past month’s posts and bring them together into a model I can use to discuss Big Agile. I took me a while to noodle this out so I haven’t posted in over a week. This approach is based on over two decades of improving performance in development organizations. The last decade has been spent working to explicitly articulate what I’ve done to consistently deliver results. It is amazing how much you learn when you take concepts practiced unconsciously and write them in a (relatively) concise format.

Enterprise Agility

Many companies are dependent on technology to be competitive. Either because they deliver technology as their product or because technology enables the processes they depend on. For those companies it is important to be able to operate faster than their competition.  This requires not only the ability to rapidly deliver technology – but the ability to adapt their organization.  This is the concept of operating within your competitors decision cycle. The model I use to demonstrate this concept is John Boyd’s O-O-D-A model.

This is Enterprise Agility, when the enterprise has learned to leverage technology and change management to develop an energized workforce frequently delivering value that meets the emerging needs of the customer.

Three Concepts for Achieving the Agile Enterprise

I am going to build on three concepts in showing how to build Enterprise Agility.

1. Theory of Constraints. You can’t get there all at once. It is necessary to decide where to focus. You have to develop the underlying capabilities from the bottom up. If you can’t produce quality product, the best ideas in the world will run into problems. The way of thinking about problems covered in the management system the Theory of Constraints provides the method for deciding where to focus. Identify the current constraint, get the most out of the capability that is the constraint, subordinate the system to the constraint, elevate the constraint, and then continue to pursue this cycle. This “Process of On-Going Improvement” is applied to the flow of value to the customer.

2. Creative Solution Finding. Once we understand where to change we need to understand what to change to. We have to apply a method to lead the overall adoption effort that supports aligning the capabilities with the overall goals of the organization. The stages of Creative Solution Finding are useful for identifying the situation specific approach to developing this road-map. There is no magic sauce for developing this road-map. By applying the seven principles, along with a knowledge of applicable best practices, a useful road-map that fits both the process and social context of the Enterprise can be developed.

3. The Learning Organization. Technology development efforts are knowledge based efforts. As such, they are performed through a social construct. To improve the performance of software development we have to not only improve the methods of development, we have to improve the performance of the social construct. First the individuals on the team must be willing to change. While the People Design principle in Creative Solution Finding will help prepare individuals for change, their personal fears and concerns must also be addressed. Once the constraint is identified and a road-map for improvement is developed, the learning organization concepts in the Fifth Discipline are relevant. The right individual competencies must be developed on the team to do the job (Personal Mastery and Mental Models).  The team has to be functioning well together (Shared Vision and Team Learning).  And the Team has to be functioning in a way that is aligned with the goal of the overall system (Systems Thinking).  The primary tool used to influence a social construct to create change and to improve performance is the conversation.

Discussing Big Agile

So the approach is to take the Big Agile capabilities, (1) provide insight to identify when a specific set of capabilities at a level of scaling are the current constraint, (2) leverage the solution finding model and best practices to define/refine the roadmap to move toward,  (3) and then identify the competencies to develop and conversations that are necessary to execute the change.  Then continue the cycle continuously.

capabilitymodel

This is the Big Agile improvement approach. It takes a model that I have been applying for two decades implicitly and evolving explicitly for the last decade. Clear direction combined with appropriate best practices and an effective adoption approach. All that’s left now is to build out the details of the capabilities, when they are a constraint, how to select appropriate best practices, and the conversations and change approach at each level of scaling for the model.

What Does Scaling Agile to the Enterprise Mean, part 2?

Posted on September 23rd, 2009 by Dennis Stevens  |  No Comments »

You’ve heard people say, “That’s great, but does it scale?” , we think we all agree on what that means. But, as with many words we use in this space, the word scale is potentially overloaded – everyone has a different idea of what the term means. This led to some interesting comments on my post Monday, What Does Scaling Agile to the Enterprise Mean?. Even though I explained the five orders of scaling, and that the practices were different at each order of scale, there is confusion about what I mean by scaling and what we are scaling.

I have gone to dictionary.com to gain clarity on what it means to scale.  I pulled eight definitions to determine which one we intend.

Scale (skeyl)

  1. one of the thin, flat, horny plates forming the covering of certain animals, as snakes, lizards, and pangolins
  2. a balance or any of various other instruments or devices for weighing
  3. a succession or progression of steps or degrees; graduated series:
  4. a succession of tones ascending or descending according to fixed intervals
  5. the proportion that a representation of an object bears to the object itself
  6. Australian Informal. to ride on (public transportation) without paying the fare
  7. Dentristy scal•ing. The removal of calculus and other deposits on the teeth by means of instruments
  8. a certain relative or proportionate size or extent

We don’t mean what comes off fish, what we weigh things with, a way of measuring temperature, a musical construct, making a model of something, riding without paying the fare, or cleaning teeth.

So we must mean taking Agile to a proportionate size. That’s to point of the different orders of scaling. That Agile will be expressed differently at each order. But what are we actually taking to a proportionate size? Do we want to have an Enterprise wide stand-up with thousands of people? Do we want to have every job done by two people? What are we scaling?

Small team agile, as guided by the Agile Manifesto for Software Development, is a set of values and principles. Agile, as practiced in many development teams, is a set of management, leadership, and engineering practices resulting in an energized workforce frequently delivering software that meets the emerging needs of the customer. For other definitions of Agile, I went back to dictionary.com.

Agile (aj-ahyl)

  1. quick and well-coordinated in movement
  2. marked by an ability to think quickly

Well, we aren’t hoping that every person in the Enterprise learns to write code. It isn’t the specific practices that we want to see scale. It is quick and well coordinated movement we see in small team agile. It is the ability to think quickly and respond to emerging customer needs.

What do we mean by scaling agile to the enterprise? We are scaling the benefits of agile – the benefits of an energized workforce frequently delivering value that meets the emerging needs of the customer. We want to take this up from small development teams  so that the entire organization can be more adaptive and responsive.

It turns out that the capabilities (not the specific practices) that make the benefits of small team agile possible can be expressed at each order of scaling. And when layered together, the benefits of agile can be scaled to the enterprise level. Over the next few weeks, I am going to go through the management, leadership, and engineering capabilities of small team agile and discuss how the capabilities scale to deliver benefits at the different orders of scaling.

Creative Solution Finding and Big Agile

Posted on September 16th, 2009 by Dennis Stevens  |  No Comments »

The Model I am looking at today is from “Creative Solution Finding: The triumph of Breakthrough Thinking over Conventional Problem Solving” by Gerald Nadler, Ph.D. and Shozo Hibino, Ph.D. I used a lot of these concepts as I laid the initial capability analysis input to Microsoft’s Business Architecture offering. The concepts support rapid development of a strategically-aligned and situation-specific solution road-map. The focus on solution context and including people in the design also encourages adoption by the end users. I believe the application of these concepts were instrumental in several successful transformations I have led.

Creative Solution Finding

There are seven principles in the model. These principles build on and support one another. Like the other models, none are complicated – but all are difficult to apply. In this case, you are stretched to think in some new directions. First, thinking about purposes in the context of the system. Secondly, thinking about creating solutions and not on studying problems.

Uniqueness: Every problem is unique. You can’t just copy a solution from somewhere else. Take time to understand the context of the solution.

Purposes: Always and continually ask the purpose of solving the problem. Expand the purpose question as far as possible. Focusing on purposes within purposes will high light the uniqueness of the problem.

Solution-after-next: Find solutions today that achieve the focus purpose, based on what might be the solution after next. Working backwards from some ideal target solution can stimulate innovation and high-light larger purposes.

Systems: Understand the elements and dimensions that comprise a solution so you can determine in advance the complexities you must address and the actions you must take in implementation.

Limited Information Collection: Before gathering and analyzing extensive data determine what will be achieved from the data. “What do we need to know to accomplish our purpose” is a powerful question to focus data collection on the solution. The goal is not to become an expert on the problem, but to study the solution.

People Design: Let everyone affected by the solution to take part in the development. People are interested in exploring purposes and solutions-after-next. The people involved will also make sure the system is addressed and the critical details are attended to.

Betterment Timeline: As you are building today’s solution, build in and monitor a program of continual change. A sequence of purpose-directed solutions and knowledge of the solution-after-next are bridges to successful adoption and a better future.

Creative Solution Finding and Enterprise Agile

This model is interesting because it gives guidance on how to create strategically-aligned situation-specific solutions. This is very relevant to implementing Agile – whether in a small team or at any order of scaling. Combined, these principles provide some guidance for leading a company toward Big Agile.

The Fifth Discipline and the Agile Enterprise

Posted on September 15th, 2009 by Dennis Stevens  |  4 Comments »

Today, I am looking at the Learning Organization model Peter Senge presents in “The Fifth Discipline”. This model is interesting because there are strong corollaries between the way effective Agile teams form and the Learning Organization. The book is called the Fifth Discipline because it describes five disciplines that build on each other: Personal Mastery, Mental Models, Shared Vision, Team Learning, and the Fifth Discipline is Systems Thinking.  I am going to briefly describe each discipline and how they apply to the Agile Enterprise.

Personal Mastery

Senge says Personal Mastery “goes beyond competence and skills…it means approaching one’s life as a creative work, living life from a creative as opposed to a reactive viewpoint.” In Agile, this means being very good at what you do. If you code, you should aspire to be a great coder – but not just a coder. Great Agile teams depend on Generalizing Specialists.  This means that you have one or more specialties, you have general knowledge of product development, you have general knowledge of your  business domain, and you actively aspire to improve your specialization while broadening you general knowledge.

Personal Mastery doesn’t just apply to development. It applies to all aspects of the business. Seeking personal mastery improves the performance of the team in two ways. First, each individual is competent to perform their job. Second, they are better able to understand and meet the needs of the people they work with.

Mental Models

Mental Models are a way to describe a person’s intuitive perception of the world around them.  We make decisions in order to achieve some result from the options we perceive based on our Mental Models. Learning occurs when we observe the result of our decision in the real world. If we don’t get the result we want, we will try something different. In Agile we call this Inspect and Adapt. Because you can represent this as a cycle it is also known as single loop learning.

SingleLoopLearning

One of the key challenges to successful adoption of Agile is changing Mental Models. This is because many Agile principles aren’t intuitive or are counter to traditional management approaches. Some of these initially counter-intuitive principles include:

  • Starting more stuff faster means you will finish more stuff later.
  • Striving for perfect definition up front is going to slow down delivery.
  • Don’t build everything that might ever be needed right now – only build what you will need today.
  • More testing speeds you up.

Changing Mental Models creates new possibilities and allows us to make better decisions. We allow the results to influence our Mental Model and not just the next decision. When learning influences our Mental Model we call this Double Loop Learning. Personal Mastery can bring in outside influences and open our eyes to improvements in our Mental Models.

DoubleLoopLearning

Shared Vision

Shared vision describes the common understanding the team has of where they would like to be and how they would like to interact in getting there. This shared vision exists whether the team makes it explicit or not. It can just be assumed from the larger organization or it can be intentionally managed by the team.  Intentionally developing a shared vision, or shared Mental Models, about how to work together effectively and what needs to be delivered to the customer is a powerful approach to improving team performance.

In Agile, many of the practices support creating an effective shared vision. The product vision, release schedule, and backlog create a shared understanding of where the team is going.  Frequent delivery, continuous integration, daily sprints, focus on quality, co-location, and constant customer interaction all support a shared vision of how to deliver.

Team Learning

Team Learning is the next step after Shared Vision. In Team Learning, the team works together to improve their ability to achieve the Shared Vision. Individual Skills may have to be developed. Mental Models regarding how teams perform may have to be changed. The Shared Vision may be updated as the team acts and responds to feedback based on their efforts.

Agile has a number of feedback tools and learning opportunities built in. Burn-down charts, Swarming, Transparency, Sprint Reviews, and Retrospectives represent things Agile teams use to learn how to improve their collective abilities. In Agile we call Team Learning self-organization.

Systems Thinking

Systems Thinking is a framework for understanding that the component parts of a system can be better understood in context with each other, rather than in isolation. A core concept of systems is interdependence, the concept that the actions of any component have the potential to impact other components.

In Agile, the concept of interdependence is used to overcome the linear nature of Waterfall and over-specialization.  Rather than isolate requirements, design, development, and test into separate functional teams, Agile recognizes the interdependence and brings all the skills and competencies necessary to deliver product onto a single team.

Systems Thinking and the Agile Enterprise

Systems Thinking and the Agile Enterprise is very interesting. First, because it gives a model to follow for developing individuals and then teams into a functioning Learning Organization. Unlike software development models, Learning Organization efforts are written by people specializing in change management. So there is a substantial body of knowledge about creating this type of change up to the Enterprise level.

Secondly, development is just one component of the larger Enterprise system. Getting better at software development doesn’t always result in an improved delivery of value to the customer. There is a lot to learn through applying Systems Thinking as a problem solving tool in establishing the Agile Enterprise.

The Big Agile Learning Framework

Posted on September 9th, 2009 by Dennis Stevens  |  4 Comments »

If we accomplish one thing in Big Agile, we hope it will be to provide a way for people to think about what they are doing and create a learning framework for being able to do it well and take it to scale.

We don’t want to try to present the one right path you have to follow – because we think each situation will require distinct strategies.  But we also want to get beyond the intuitive approach. Just saying, “Eliminate waste, identify and remove impediments, and write code better” is not enough guidance to create a reliable and sustainable approach that can be scaled .  So, what is a structured way to think about being good at Agile that supports getting big? Part of the answer is to focus on outcomes and purposes using capabilities. But how do we apply these and where do we start?

First off, teams are the organizational units that actually produce value.  So  getting small teams highly productive is the right place to start.  Then, as we scale, the principles that make the small team function well scale into different instances of the same principles. The objective is to add the least amount of overhead possible at each order while maintaining the productivity of the small teams.

Today, I present the (draft) Big Agile Learning Framework. This reflects the approach  I have intuitively used when approaching this problem. The three dimensions are Value, Velocity, and Context.  The capabilities of the organization operate together in an interdependent way.  Understanding how each one plays in this model, and how they impact each other, is a key to developing situation specific strategies for taking Agile to the Enterprise.

The Big Agile Thinking Framework

The Big Agile Learning Framework

Value, Velocity, and Context

Value: What the product development team provides back to the business that the business might sell to an actual customer.

When we look at value, we want to identify what Jack Welch called the value nub – the intersection where low-cost and just-the-right-features intersect. Moving up on the value axis means moving towards the nub. In Agile, we leverage the ability to get a working product to the customer frequently to continue to narrow in on the value hub. This helps us reduce the costs and risks associated with a granular up  front requirements effort.

Velocity: The rate that work is moving toward its objective.

Confusion over the distinction between speed, utilization and velocity is a common problem. Velocity is speed in one direction. The car driving 60 mph on a straight road has much higher velocity than the one going 60 mpg on a winding road.In Agile we increase velocity through finishing what we start, coordinating hand-offs to remove delay, improving quality, and continually removing waste from our processes.

Context: The environment that the team operates it. It is shaped by the team, the organization, the goal of the effort, and the sphere of influence of leadership.

Software development is a knowledge-based endeavor.  People need room to think and innovate.  Difficulties in the context can compromise efforts to improve Value and Velocity. In Agile we improve context through commitment to a productive environment, empowered teams, disciplined compliance with the team standards, working toward individual mastery, bringing in external knowledge, and managing expectations.

Each of the dimensions in the learning  framework are interdependent. Let’s take the capabilities around requirements as an example. In once case, we put in an up front focus on detailed requirements. We think they are perfect and they take a long time. So the capability is high on value but low velocity. As we move along on the project, errors in the original assumptions and evolving customer preference degrades the actual value, moving the capability down on the value axis. If we take an Agile approach, Agile recommends a lightweight, progressive elaboration approach to requirements. This would be farther right on the Velocity axis but potentially not as high on the Value axis. Over time, as we uncover specifics and move towards the value nub, the capability raises on the value axis. We also know when to stop adding things not valued by the customer – so we don’t begin to slide down the value axis again. Experience in software development shows this is effective, but the organizational context has to allow for this approach.

The Thinking Framework is a way to frame the development of strategies as we scale. As we develop situation specific strategies to scale Agile the way that we can impact Value and Velocity become more complex But keep in mind that we must not sub-optimize small team productivity. Top down approaches have not been consistently successful in scaling agile up into the enterprise. Just replicating the same practices up through the organization hasn’t worked either. Basing our work on capabilities and leveraging the thinking framework, we are able to develop appropriate strategies.

Toward a Next Generation Capability Maturity Model

Posted on September 7th, 2009 by Dennis Stevens  |  2 Comments »

You may already know that Mike Cottmeyer and I signed a contract to produce a book that describes situation specific approaches to scaling Agile in the Enterprise. This book is based on the work Mike and I have done over the last 10 years or so in helping organizations improve their ability to deliver value to their customers. While we have done the customer engagements separately, we think about this in a similar way and have been able to consistently deliver results to our clients.

Mike and I need to write about 157,000 words over the next 9 months to produce the content for the book. We will be blogging most of the ideas as we write the book and really look forward to your comments and feedback on our approach. Learning to tell the story so it resonates is really important to achieving our goal of writing a book that is very valuable to managers in organizations who are facing the Scaling Agile challenge.

Common Capability Model

A Capability is “an ability or capacity the organization relies on for a specific purpose or outcome”. We focus on capabilities because we are initially interested in What and Why, not on How. Getting caught up in How without clarity on What and Why is common in methodology debates. We Call this the “How Trap”. Using a capability analysis approach we have been able to get people out of what we call the “How Trap” and get them thinking about purposes and outcomes.

As a core part of communicating how managers can develop situation specific strategies for scaling Agile, we are building out a common capability model. Why not use an existing model? Well, we are working from the understanding that there is no single model that is outcome/purpose focused that can be used to build out the scaling. We need to build that base – not by recreating it from scratch but by building on top of traditional models that have worked at the enterprise level, like CMMI and PMI, as well as Agile approaches that have worked at the team level like Open RUP, Scrum, and XP.

As I introduce this capability model, I will start from a Scrum/XP perspective even though those methods are based on practices and not Capabilities. For example, iterations in Scrum and short releases in XP are about Limiting Work in Progress. So is incremental development in Open RUP. I will introduce the Big Agile Capability Model in terms of  Agile practices. I will show how they are complementary to the traditional models and how this outcome-based understanding helps us develop a situation specific approach to scale. Finally, I will talk about common dysfunctions in organizations that limit effectiveness.

Capability Analysis

I have been working on this consolidated capability model for a few years. At a number of clients, I have used an approach based on a consolidation of CMMI, OPM3, XP, and Scrum. More recently I have included Kanban and the Open RUP in the model. At higher levels of scaling I rely on some other capability models like the Process Classification Framework, ITIL, Pragmatic Product Management, and the Business Architecture work I did at Microsoft. The goal is always to find a way to talk about outcomes and purposes before we talk about implementation.

The trick is in translating these jargon specific detailed models into something straight-forward that facilitates the development of situation specific strategies for scaling Agile. This is a challenge that Mike and I are working through now. Before everyone pukes on the idea of basing our approach on a capability based model, I want to cover a couple of important things.

First, I am not a big fan of staged models. I get the concept of CMMI’s levels of maturity – it is important to establish maturity in the lower level processes to gain benefit from the higher level processes. But I believe an organization can make progress on higher-level processes while they don’t have all the lower level processes in place. The capabilities are interdependent and so can’t be addressed in a linear manner.

In OPM3, the model is not staged. You pick an area of focus, such as project cost or program risk, and the model will walk your though capabilities related to that strategic area. Like OPM3, our model is not staged or prescriptive in nature. We talk about these in an order, but in reality, the team needs to be focused on improving capabilities based what makes the most sense for a specific situation.

Second, I don’t like the idea that Product Development, Project Management, and Software Engineering (http://www.dennisstevens.com/2009/03/12/project-management-product-management-and-agile/) are evaluated separately and independently of other the rest of the organization. They are too tightly integrated in real life once you get past the small team to be treated separately. At the end of the day, there is no point in getting better at any of these areas if it doesn’t result in an improvement in delivery of value to the customer.

Finally, one problem I have with formal capability models in adoption is that these models come off as overly complicated, prescriptive, and aren’t typically treated as situation specific. Typical models drive the conversation, “What do I have to do to pass an audit”. We want to change the conversations in the business to, “What is the next most important thing we can focus on to improve our ability to deliver value to my customers”.

The Big Agile Capability Model

The model that Mike and I are working on starts with Small Team Agile. We build this out to Horizontal Scaling, where you have multiple teams doing Agile development on distinct outputs. Then we build out to First Order Scaling, where multiple Agile teams are working together on a single product. At Second Order Scaling, multiple Agile teams are working on multiple products. At Third Order Scaling, we are working to leverage the ability to rapidly deliver working software across the Enterprise. Wrapped around this is a set of common capabilities that apply to every level of scaling. Over the next several days I am going to describe the capability model we have derived from our experience and research. As with everything else in the book, this model is subject to change.

I am going to describe the Small Team agile capabilities over the next few days. Over the next few weeks, I will go into the capabilities associated with Horizontal scaling, then First Order, Second Order, and Third Order scaling.

As we go through our approach, please share your thoughts – good and bad – with the approach and how it is being communicated. We need to make sure this is valuable contribution to the body of works hoping to improve our ability to deliver high quality products that meet the needs of customer.