Archive for the ‘Business’ Category

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.

A Model for the Agile Enterprise

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

I am always interested in researching existing Frameworks and Models. Today I am talking about John Boyd’s O-O-D-A model. O-O-D-A, or Observe-Orient-Decide-Act, is part of the basis for the Marine Corps Doctrine of Maneuver Warfare – the doctrine that shaped the strategy applied in Operation Iraqi Freedom.  This model is interesting because it has been applied in multiple environments to help achieve many of the things we are looking for in Agile Enterprises. It is a framework for exploiting uncertainty in the environment. It not only enables but depends on a reduction of command and control. And as a knowledge framework pattern it can be applied to small teams, products, and organizations.

O-O-D-A talks about gaining an advantage by operating inside the decision cycle of your competition. This is desirable because the faster we can learn what to deliver – and the faster we can improve our ability to deliver what is needed – the more effective we will be. If we can to this faster than our competition, we can be successful in our market.

A Knowledge Framework for Exploiting Uncertainty

The model is pretty simple. It describes a decision loop. We Observe the unfolding environment, noting mismatches between what we think it should be and what is actually happening. We Orient our mental model to what is actually happening. We Decide what is important; what our options are for acting and form a Hypothesis for our action – including how we will measure the outcome. Then Act according to the decision. Action tests our hypothesis, hopefully moves us toward our goal, and changes the environment we are observing. This takes us back to the beginning.

At a more complex level there may be multiple decision loops overlapping in your environment. The Decision process may bring up possibilities that send you directly back to Observe. And we maintain guidance and control over the entire process.

This model looks a lot like our Agile development cycles.  Every time we visit the backlog we are basing our selection on what we currently understand. New events in the market, what we learned from our last iteration and new ideas all impact the backlog. We decide what is most important, build it in small increments, and then test it against our understanding. O-O-D-A in action.

Reduce Command and Control

Top down command and control not only doesn’t support this approach, it hinders it. We need each team make their actions serve the strategic intent in terms of what is to be accomplished. The teams need a wide freedom to exercise their imagination and initiative in terms of how intent is to be realized. Teams have freedom to self-organize, but freedom within the strategic framework.

According to Chet Richards, who wrote “Certain to Win: The strategy of John Boyd applied to Business”,

“It is not more command and control that we are after. Instead, we seek to decrease the amount of command and control that we need. We do this by replacing coercive command and control methods with spontaneous, self-disciplined cooperation based on low-level initiative, a commonly understood intent, mutual trust, and implicit understanding and communications.”

The secret is in the clear communication of intent – coupled with discipline on the part of the performing team. Again, this is completely aligned with what we have found works in Agile development.

Scaling to the Enterprise

As a knowledge framework O-O-D-A has been shown to work at the small team level. It also works at the product and the Enterprise level. For example, since October of 2001 there have been 19 releases of five different IPod models. This rapid cycle of release allows Apple to Observe the unfolding environment of customer preferences and emerging competitive products, Orient their product direction, then Decide and Act in a faster decision cycle than any other player in the market. Apple excels in all four activities and this garnered 90% market share and a continued advantage over the competition.

What is particularly interesting is that this framework scales up better when it is modeled at lower levels. Apple is able to release product faster because they are good at developing software rapidly. At the Enterprise level, effective Agile development allows us achieve the four strategies of Agile Portfolio Management Jim Highsmith wrote about last week:

  1. focus on strategic advantage projects,
  2. keep projects short,
  3. re-align portfolios quarterly,
  4. implement value-driven success criteria.

Enterprise Agility

I think this is a useful model. It is not a process model like Lean. It is not a capability model that is limited to a single domain like development or projects management. It is a model that helps us think about and improve knowledge work. Like Agile, O-O-D-A helps move faster by incorporating learning with action. Like Agile, O-O-D-A operates best when teams are empowered and highly disciplined within clear strategic guidelines. I believe that, like O-O-D-A, the principles of Agile can be scaled to the Enterprise to create competitive advantage.

Methods, Practices, and Outcomes

Posted on September 1st, 2009 by Dennis Stevens  |  No Comments »

There continues to be discussion about Scrum (as a brand) vs. Kanban (capital K) vs. Crystal vs. FDD, etc. If fact, I received a comment today on a March post discussing the Scrumbut test. My comment became to long and is so relevant to recent discussions that I turned it into a blog post. From my perspective these method wars tend to fall into “How Trap” discussions. How Trap discussions are not about specific outcomes you are trying to achieve and developing a situationally specific approach to achieving those outcomes.

Take a look at the Scrumbut test I learned about from Jeff Sutherland. Whether you are doing (or even like) Scrum – when viewed through an outcome lenses, these questions lead to discussion regarding clearly important outcomes. Below, I list the question category from the Scrumbut test, then the outcome that is desired from the practices described in the Scrumbut test, then a hopefully clarifying description.  The practices are detailed at the Scrumbut link.

Question 1 – Iterations: Limit Work in Process – don’t start anything you can’t finish

Question 2 – Testing within the Sprint: Maintain Code Quality – Shorten quality feedback loops to zero to maintain code quality and reduce the waste of rework

Question 3 – Agile Specification: Communicate Business Needs to Development – Ensure developers understand outcomes while minimizing coordination and transaction costs, maintain traceability to business need

Question 4 – Product Owner: Maintain Product Roadmap – The business communicates a plan of what is being built

Question 5 – Product Backlog: Prioritize Investments Based on Return – the business prioritizes work based on a current understanding of business value

Question 6 – Estimates: Provide Meaningful Effort Estimates – Understand rate the team can produce work to support planning, investment decisions, and customer commitments

Question 7 – Burndown Chart: Communicate Release Schedule – Be able to predict content and timing of future releases. This clarifies corrective action, next most valuable investment decisions, marketing decisions and customer commitments

Question 8 – Team Disruption: Maintain Productive Work Environment – Management understands and supports the focus on rapid delivery. Trust is established that the team will be able to meet current and future commitments.

Question 9 – Team: Develop an Empowered Team – The team feels empowered to make decisions about how to move forward. Management has provided sufficient guidance and direction that they trust the team will make operational and tactical decisions aligned with the best interest of the business.

Yes, Jeff has a brand he is protecting. If you think you are doing Scrum and you aren’t achieving these outcomes then you aren’t doing what was intended. Bad Scrum and Scrumbut hurts the Scrum brand. In fact, since Scrum is a dominant Agile brand, it hurts all of us trying to move Enterprises towards improved software agililty.

But, Scrum isn’t the only way to achieve these outcomes. I can map these outcomes to mature implementations of XP, DSDM, FDD, Crystal and Kanban (etc.). Now the interesting conversations sound like –

  • In what situations does Kanban reduce transaction and coordination costs more than Scrum?
  • In what situation does one method lead to better adoption over another? Why?
  • In a specific organization, what approach to developing empowered teams and upstream trust will be most likely to succeed?

The outcomes described in the Scrumbut test can be achieved by applying specific strategies that are consistent within an organization’s environment. When these outcomes are adopted development teams tend to become more mature, better at delivering software (many times dramatically), and improve their work environment. Regardless of method, you need to be focused on the outcomes that result in improvements in productivity and find the way that works in your organization to adopt and sustain the outcomes.

It’s the Agile Practioners that are not ready for the Enterprise

Posted on May 11th, 2009 by Dennis Stevens  |  7 Comments »

I spent last week in Miami at the Lean & Kanban conference. There was discussion (and twitter chat) about why Lean was better than Agile for the enterprise and how Lean and Kanban are different than Agile. But many of the distinctions were debatable because you can find Agile practioners that have adapted and inspected to include many of the Lean Software practices, including Kanban. I personally don’t see Lean and Agile as competitors. Lean is about improving flow through a value stream and Agile is about writing better software. Lean can help Agile teams perform better and realize benefits from agility at the Enterprise level. What was notable at the Lean & Kanban conference was the level of sophistication and maturity of the practioners that attended. These were experienced professionals focused on improving their organizations (and clients) ability to rapidly and profitably deliver value to their customers.

Big Agile Practices Survey

I gained some insight into the discussion about the distinction between Lean and Agile as I reviewed the results of Jurgen Appelo’s survey http://www.noop.nl/2009/05/the-big-agile-practices-survey-report-part-1.html into Agile practices. Agile is considered risky or even a pejorative by many Enterprises. Many executives don’t trust it as a mature or viable approach. The lack of trust that corporations have in Agile teams is not a reflection of “management’s” ignorance. It is a reflection of software teams failing to reliably deliver the software organizations and customers need. I have decided that the problem is not with Agile itself, it is in the level of process immaturity followed by many Agile Practioners.

For example, here are the practices that are not considered Agile in the Survey. The percentage reflects the number of practitioner’s who selected the practice as an Agile practice. Less than 50% means that the majority of the community does not consider it an Agile practice.

  • Configuration Management: 25.2%
  • Issue Tracking: 27.4%
  • Use Cases: 28.2%
  • Risk Management: 29.5%
  • Design by Contract: 32.2%
  • Software Metrics: 32.5%
  • Usage Scenarios: 37.9%
  • Code Reviews: 42.3%
  • Root Cause Analysis: 42.6%
  • Move People Around: 42.5%

The ones that jumped off the page to me were Configuration Management, Issue Tracking, Risk Management, and Software Metrics. Building Enterprise or commercial software without caring deeply about these items is problematic. An Agile team, who is interested in continuous delivery of valuable software pretty much has to care about these items. You can’t inspect and adapt without metrics and an understanding of your issues. You can’t continue to deliver the next release without configuration management. And Agile is all about Risk Management.

In fact, you hear people who believe that Agile is a no documentation, no planning, no requirements, and no control free for all. Apparently, many of these are Agile practioners themselves.  This is incorrect. Agile is a disciplined process that, when done correctly, helps companies improve their ability to reliably deliver valuable software to the business. So how does the immature implementation of Agile become so common? There are a lot of forces at work here.  I think the lack of “maturity” in many agile teams is the result of two different forces – the reaction to bad process and the local optimization problem.

A Reaction to Bad Process

Agile, at least partially, arose as a reaction to bad process. I think the pendulum has swung too far away from responsible software practices in response to costly and painful implementations of traditional big ceremony around things like risk management, issue tracking, requirements management, and configuration management. As a reaction, some Agilists believe that just enough, just in time documentation means no documentation. It doesn’t. Or that responding to change means no planning and no requirements. Not accurate. I got a tweet today that “By definition, agile programming dispenses with process.” What? One of the things that Agile is supposed to do is to eliminate the pain of big ceremony for its own sake and embed the purposes of these processes into your daily work. But a failure to understand the principles behind the practices leads to a large community (according to the survey – a majority) who don’t build software responsibly. Agile is a high discipline, introspective, continuously improving approach focused on delivering customer value. A reaction to bad process is not an excuse for no process, it is a basis for figuring out other ways to achieve the right purpose.

Local Optimization

Local optimization is the second major force. Local optimization is where one group focuses on improving its ability to do its job at the cost of the organization. Development organizations, like most functional groups, operate within their sphere of control. They can fall into the trap of believing that the business revolves around them. In an effort to improve development performance, Agile teams implement practices they have read about or experienced without understanding how they fit into the overall value stream. Gaps arise (i.e. configuration management) when there is a lack of clarity on responsibility across the value stream. Agile teams also don’t recognize the additional strain on other parts of the organization when they implement new Agile practices.  The only time you should subordinate one functional area for another one is to elevate or eliminate a constraint.  The goal of the organization is to improve the organization’s ability to profitably deliver value to the customer, not to get better at software development.  

Agile Practioners are Solving the Wrong Problem

When implemented maturely, Agile works to improve quality, fit, reliability, and responsiveness. The forces of reaction to bad process and local optimization result in Agile teams implementing not enough process or focusing on the wrong processes. The difference in (many) Agile practioners and Lean practioners is the problem they are solving. Immature Agile practitioners are focused solely on writing code better. This is important, but not a worthy goal in and of itself. Lean practioners (and mature Agile practioners) look at the overall value stream. They strive to identify the right process (and amount of process) while focusing on eliminating waste in the value stream.  The problems with Agile are not a problem with the principles and practices of Agile. It is a problem with the perspective and purpose on the part of many Agile practioners.

Reducing Multi-tasking: Key to Productivity

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

Mike Cottmeyer has also been talking about scaling Agile. In his recent post on Second Order Agile Scaling he talks about how important it is to reduce the number of active projects in the portfolio. In other words, the goal is to focus on finishing projects as fast as possible, not on starting them faster or keeping your resources busy. When the organization has too many active projects at a time, it overloads the system and actually slows down delivery. You will see this when you have too many applications open on your computer. One application runs fast. Two probably still run well. But if you open ten or more applications, all of them slow down.

 In the last year I have seen a company with almost as many active projects as IT resources. Another company had the philosophy to start projects early so they wouldn’t get cut when the budgets were revisited. Not surprisingly both of these companies are late and over budget on almost every project. This is not a talent or process problem, it is a scheduling problem. When you overload the system, the resources start multi-tasking. My friend Steve defines multi-tasking as the intentional stoppage of ongoing work to transition focus to another task area. This is a bad plan. You want to avoid overloading the system with multi-tasking.

I have written about Multi-taking before. Several of my favorite bloggers have also discussed multi-tasking. Reforming Project Management, Focused Performance, and Clarke Ching often explain the dreadful impact of multi-tasking. Multi-tasking is bad for a number of reasons. I am drawing on my post at http://blogs.synaptus.com from March 2007 to discuss four of them here in the context of the current conversation.

One: Starting sooner doesn’t mean you will finish sooner.

Let’s say you have three people that want you to do something. To simplify this example, each thing takes three days to perform. You want to make everyone happy so you start working everything as soon as possible. You switch between them each day to continue to show progress on each thing. So your work looks like this.

Scenario 1: ABCABCABC

You deliver “A” on day 7. “B” on day 8. And “C” on day 9.  In trying to make everyone happy, you pushed A and B back and didn’t do C any favors. If you had worked on these things in sequence, your work would look like this.

Scenario 2: AAABBBCCC

You deliver “A” on day 3. “B” on day 6. And “C” is still delivered on day 9. Starting sooner didn’t get work done sooner.

Two: Sometimes work needs to be expedited.

It just happens. In Scenario 2 above, you could just drop the expedited work into the queue as the next thing to do. You don’t interrupt other work in progress, and you will finish it just as fast as possible. Remember, starting it as soon as possible isn’t what’s important. Finishing it as soon as possible is what’s important. Mixing expedited work into the middle of the flow will slow everyone down. Because it takes an incremental approach and working software is delivered at the end of each iteration, Agile development enables this much better than BUFD projects.

Three: Customer requirements change over time.

When you take longer to deliver work, you raise the risk that the customer requirements will change.  You want to have the shortest amount of time from when the work starts to when the work is delivered to the customer. This will reduce the risk that the customer requirements will change on work in progress. When customer requirements change on work in process, it creates rework. Rework is extremely expensive.

When you run in an Agile fashion, you will schedule epics (or big features or capabilities) into the pipeline well in advance. You have an Order of Magnitude estimate of time and cost, a general idea of what problem it addresses, and a perspective on the value of the epic (or big feature or capability) that you use for prioritization. You don’t do the detailed requirements and design until just before you drop it into the pipeline to be built. This shortened time reduces the risk that the customer will change the requirement.

Four: Task switching is expensive.

As this NY times article points out, we are not effective at getting back to productive work when we are multi-tasking. One of the tenants of lean is to eliminate waste. There are Eight Wastes defined in Lean. Multi-taking directly contributes to six of these wastes. We create Defects from forgetting what we were doing. We create Inventory from work piling up when we switch away. We create additional Processing from having to put away work and then find it again. We create Waiting (interruption of flow) and then the customer forgets what they asked for or their requirements change. We create Overproduction because we have more work started then the system can efficiently process. Finally, we create Non-Utilized Talent through the stress that is created for the developer who is always behind and having switch between tasks. Multi-tasking is a bad investment.

Following an Agile approach increases productivity because it specifically focuses on reducing these wastes. This is not accidental. When I took the Certified Scrum Master class from Jeff Sutherland he said that among other things they had intentionally drawn on proven concepts from Lean. 

Excessive multi-tasking derails productivity.

Our work lives are probably impacted by most of these issues – often in combination. The multiplying effects of multitasking are devastating to performance in organizations. You can have the right people, the best processes, and a solid strategy. Multi-tasking can derail the productivity of the group. Fixing this problem can double the productivity of a work group. In reality, you can’t eliminate multi-tasking completely. This is a complex problem to address but it is worth the investment. Taking an Agile approach to work, prioritizing completion of work over starting work, and intentionally coordinating work across functions with the intention of reducing multi-tasking are the first steps.

It’s in the White Spaces

Posted on April 20th, 2009 by Dennis Stevens  |  3 Comments »

There is a lot of focus on Agile practices in software development today. This is because, when practiced successfully, Agile engineering, collaboration, and management practices improve the ability to produce valuable software reliably and continuously. These new practices also create new possibilities that can improve the organizations ability to profitably deliver value to the customer. However, if you plan to realize the benefits of Agile by focusing only inside the software development organization, you are likely to be disappointed in the outcome.

When implementing Agile, there is a lot of time and energy invested in improving software development teams. Businesses don’t make this investment because they want to get better at software development. They are trying to improve their capabilities from “Identify Customer Need” all the way through to “Fulfill Customer Need”. The Agile team is only one part of the business ecosystem.

delivery-organization

Agile Impacts the White Space

Implementing Agile practices in the software development team impacts their interactions with the other functions in the business. The frequency, content, and context of the interactions are different in Agile. As much as the Scrum and XP practices help improve performance within the development team, addressing what happens in the white space between functions is the key to implementing Agile in an organization. In an existing organization of any scale, these white spaces can’t be hidden behind a Product Owner where the challenges self-organize themselves out of existence.

Agile Teams have to integrate with existing Product Management. Based on their understanding of the market and customer needs Product Management has to make promises on the timing and profitability of products to a CFO who reports those promises to a board and to the public. They still have to support the BUFD (Big Up Front Design) Teams. This work is important to the organization and the Agile Team has to interact in a way that allows Product Management to keep these promises.

Agile Teams have to integrate with existing Project Management. Project Management has to make promises on releases regarding cost and timing. They manage risks (external to the Agile team), track and report status, coordinate procurement, arrange for resources, and manage the performance of the project through the phase gates to the governance committee. This work is important to the organization and the Agile Team has to interact in a way that allows Project Management to be successful.

Agile teams have to coordinate with Sales and Marketing, Accounting, Operations, Human Resources, and Customer Support to make sure they are aligned with the features and timing of a product release. These functional areas are key to the operation of the business and the delivery of value to the customer. The Agile Team has to interact in a way that allows them to perform successfully.

Optimize the Whole Value Stream

In most sizeable organizations the development team is not on an island with no dependencies. They need to operate in a way that they can help the other functions of the organization be successful (and vice versa). Implementing Agile with a myopic focus on the development team and a lack of understanding of the interactions within the organization can actually increase the cost to the organization of meeting the needs of the customer.

To gain benefit from Agile, you need to understand how the capabilities fit together within the organization to create value for the customer. Focus on scenarios where Agile practices can improve the flow of value to the customer and create a competitive advantage. Identify the conflicts in the white spaces that are in conflict with the processes and metrics that currently exist. The decisions you make about these conflicts will determine the level of benefit you can get from implementing Agile. If your functional metrics, processes and incentives do not align behavior in the White Spaces you won’t get the benefit.

Mike Cottmeyer over at Leading Agile is talking about scaling Agile across multiple teams. This is an important conversation and must be addressed to get benefit from Agile practices. But to truly realize the promise of Agile an organization must intentionally improve the interactions in the white spaces as well.

Rethink

Posted on March 25th, 2009 by Dennis Stevens  |  No Comments »

Ric Merrifield, led the development at Microsoft of what has become the Microsoft Business Architecture Service offering. He is also a coauthor of mine on “The Next Revolution in Productivity”, a June 2008 Harvard Business Review article focused on case studies that highlight needs of the organization and the opportunity to rethink business operating models before making major technology changes. Under Ric’s leadership, I was a significant contributor to the development of the Business Architecture offering and performed several of the projects that serve as case studies in the HBR article. We have spent a lot of time together over the last five years and he is a really smart guy and a friend of mine.

The concepts we have been leveraging revolve around using capabilities to help organizations clearly connect their business model to customer value. Typically, executives don’t have a good view of this except through their intuition. Organization charts are about the chain of command. P&L’s provide a historical view but a limited in what to do to improve performance. Process charts are too granular and change frequently. Technology architecture doesn’t help clarify how the business model connects to delivering customer value. Using the capability model based approach we can describe “what” a business does and “why” it is important without getting tied up in “how” they do it.  This approach overcomes the limitations of the current views most executives have.

This is important stuff to be talking about and I have been harassing Ric for several years about getting online because we need to have a broader discussion around the concept of capabilities or “hows”. Ric finally signed up for Twitter about three months ago, you can follow him at ricmerrifield. 

He has also written a book “ReThink: A Manifesto for Cutting Costs and Boosting Innovation” coming out in May (I am mentioned in it so ;-D). The book is endorsed by guys like Jim Champy, Robert Scoble, and David Anderson so you know it’s good. The book guides readers through a strategic re-think to efficiently set priorities, achieve goals, reduce costs, and unlock hidden value in today’s challenging business environment and set a course tailored for them. I will let you know 

And now, Ric has launched a blog at http://ricmerrifield.com/blog/. This is an important concept and it matters to business leaders, project managers and technology agilists.  We need to get involved in this conversation and help shape it and spread the work. Rick has his first two posts up.  Please go read them and add Ric to your blogroll. 

OPM3

Posted on March 23rd, 2009 by Dennis Stevens  |  2 Comments »

Last week I became an OPM3® Certified Consultant. After spending almost three years as the Deputy Project Manager with the volunteer team developing OPM3 Second Edition, I spent a week taking the OPM3 Certified Consultant course and passed the final exam. I have received a lot of questions about what that means and whether there is any value in it. There are about 100 OPM3 Certified Consultants in the world. I want to talk about OPM3, project management standards, getting organizationally mature, and what being an OPM3 Certified Consultant means. This might not sound exciting, but hang with me. There are very few organizations that won’t benefit from getting better at implementing strategy.

What is OPM3?

OPM3 is a standard that was first published in December of 2003 by the Project Management Institute. OPM3 stands for Organizational Project Management Maturity Model. Per PMI, “Organizational project management is the systematic management of projects, programs, and portfolios in alignment with the achievement of strategic goals. The concept of organizational project management is based on the idea that there is a correlation between an organization’s capabilities in Project Management, Program Management, and Portfolio Management, and the organizations effectiveness in implementing strategy.”

[There is some conflict in the terms process and capability. I will use the term capability consistently through my discussion. A capability describes “what you do and why you do it”. A process describes “how”. PMI doesn’t describe “how” in their standards even though they call them processes.]

To put this simply, organization’s have to implement changes in their structure, processes, management practices, and/or technology to implement a strategy. This is difficult but there are some capabilities that have been show to support them in consistently implementing these changes.  These capabilities can be categorized into effectively and efficiently executing projects, the coordination of multiple projects to optimize resource utilization and project performance, and deciding which projects are the best ones for the organization to invest in based on the organizations strategy. These are Project Management, Program Management, and Portfolio Management respectively. OPM3 uses the capabilities identified in PMI’s Project Management Body of Knowledge-4th Edition, The Standard for Program Management-Second Edition, and The Standard for Portfolio Management-Second Edition. More on standards in a minute.

OPM3 wraps a continuous process improvement approach around these capabilities. For example, when implementing a project you probably want to manage the scope of the project. Within most organizations -most of the time, that means you have to gather requirements, define the scope of the project, and create a work plan when planning a project. There are a lot of different ways to do this. It may make sense on some projects to do this once at the start of the project and on other projects, you should do it iteratively and in progressively more detail. What organizations that are good at executing strategy do is they define how they are going to manage scope. Then they pay attention to how well this works continue to improve their method over time. This is organizationally mature.  OPM3 breaks the capabilities down into Standardize, Measure, Control, and Improve.

OPM3 also includes a set of Organizational Enablers. These are the capabilities that must exist in an organization to support the implementation and ongoing existence of Project Management capabilities. These include things like project management training, project management sponsorship, and other structural, cultural, technological and human resource practices.

You can pick up a copy of the OPM3 standard from PMI’s website for about $100. This standard describes the approach in detail, lists all the capabilities, and includes a nice Self Assessment tool in the appendix.

Project Management Standards

The Project Management Body of Knowledge (PMBoK) is a catalog of capabilities (called “processes” by PMI)  related to the management of projects. When the first OPM3 standard was published, PMI had not published standards for Portfolio Management or Program Management.  These first versions came out in 2006 and have been significantly updated with the simultaneous release of new Editions of the standards for Project, Program, Portfolio, and OPM3 in December of 2008.

The new standards provide a comprehensive catalogue of the capabilities that cover Project, Program, and Portfolio Management. These standards show the capabilities that will work in most organizations most of the time. They are based on years of research and the input of thousands of volunteers. They give examples of existing practices within the capabilities.  Despite what some critics claim, they don’t tell you “how” to implement those capabilities, just “what” you should be thinking about. They also don’t tell you to do all the capabilities whether they make sense for you or not, follow a high ceremony waterfall process, or make the purpose of the organization about project management.

Getting Mature

Maturity is an interesting concept. It has a lot of meanings. Mature can be a show you wouldn’t like your kids to watch, a bill of exchange that is due, or a ripe or fully aged piece of fruit. The definition of maturity I am using here is fully developed. What makes organizational project management maturity an interesting concept in business is that fully developed is different in almost every business. It can also change over time within an organization as the needs for project management change.  The key to organizational project management maturity is not to try to implement every capability with a robust set of process maturity. But to implement the capabilities that are right for helping a specific organization implement their specific strategy. This includes implementing an appropriate level of continuous improvement and only the necessary organizational enablers.

I have written about this focused approach to improving project management performance here and here. Invest when it improves the organizations ability to drive value. The goal is not to get better at project management, it is to get better at profitably delivering value to your customers. Project Management maturity efforts should be tied directly to business results.

 OPM3 Certified Consultant

An OPM3 Certified Consultant isn’t just someone who understands the OPM3 standard. Just to get into the course OPM3 Certified Consultant course you must demonstrate comprehensive knowledge of the OPM3 standard through completion of a SAM assessment or an OPM3 fundamentals course. An OPM3 Certified Consultant has demonstrated significant program or project management experience, since a PMP or PgMP is an eligibility requirement. An OPM3 Certified Consultant also has significant assessing and/or consulting experience.

Once in the course, the consultant is trained on the OPM3 assessment methodology and tool set, and the improvement methodology and tool set. This is during an intense four day training course. The consultant must successfully complete an exam.  The handbook that walks you through this process can be found at the PMI website.

The Value of OPM3 Certified Consultants

Most businesses can benefit from getting better at executing their strategy. Improving Organizational Project Management Maturity is a method of improving the organization ability to execute their strategy. OPM3 provides a systematic approach to identify and implement Organizational Project Management improvements appropriate to each business. Project Management Maturity is a tricky thing – it requires insight and experience to focus improvements in project management so it improves the organizations ability to deliver value to its customers. An OPM3 Certified Consultant has an assessment and improvement methodology, a robust tool set, and has demonstrated the experience with identifying and implementing improvements based on PMI’s standards.

For me, the value of the certification includes the assessment and improvement methodology training I received, the time I have spent with other experienced Organization Project leaders, access to the assessment and improvement tools provided by PMI, and some branding. I can combine this with my experience in software development and IT Operations excellence and cost optimization to rapidly deliver value to organizations. For organizations looking for a way to rapidly improve the performance of thier projects, an OPM3 certified consultant with proven experience and expertise in your domain is a good option. Guided by a proven systematic approach, they can perform an assessment and create an improvement roadmap and tie the improvements to your business results. 


Teams and Promising

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

I have been having a lot of discussions lately with Mike Cottmeyer over at www.leadingagile.com about scaling Agile to the Enterprise. Today he has a great post, Teams are the Building Blocks of Agile. Mike is exactly right. In fact, teams are the building blocks of organizations. And promises are the glue between the teams. In realms of uncertainty such as knowledge work and software development, Donald Sull would say to focus on Promises over Process.

Managing the promises in an organization is called Promise-based Management. The primary idea in Promise-based management is that work moves through organizations based on a network of promises. And that the better the promising is, the faster the work will move. The whole business is a network of “if you can do this”, then “I can do this” promises. When this network works well, the business improves its ability to profitably create value for the customer. We can improve the performance of the network by improving the reliability of the promises made between teams in the organization.

If you read Mike’s post from a certain perspective, it sounds like Mike is saying the purpose of the organization is to make life easier for the developer’s. That isn’t what he is saying, though.  He is saying that for an Agile team to keep its promise, you have to set the Agile team up to be successful by providing the appropriate context and coordination.

The promise the agile development team makes is to rapidly produce high quality software for use by the business. This is probably so the business can keep the promises it makes to its customers and stakeholders. The Agile development team is willing and able to make these promises when the <Product Owner>Product Manager, Project Manager, Designer, Subject Matter Expert, Business Stakeholder, Business Analyst</Product Owner> is able to set the table for the team by getting the proper context and coordination in place. Mike defines this part of the promise on his blog. This context and coordination effort is the “If you can do this” part of the promise that the Product Owner and Agile development team make.

Once we set the Agile development team up for success, they will be able to much more rapidly produce high quality software for use by the business. The new capability to keep this promise opens up a whole new set of promises we can make to the customer. Exploiting this new capability is not just about software development, it requires us understand impact on the other processes, promises and teams in the organization. Scaling Agile to the organization isn’t about software development. It is about fundamentally changing the promises we can make to our customers.

Check out “Promise-based Management: The Essence of Execution” in Harvard Business Review. Glen Alleman talks about the HBR article. Hal Macomber’s site is a rich resource practical application of promises and promising and making work ready. Clarke Ching’s site is an excellent source of the application of promised based management to software development.

Regarding the Blind Men and the Elephant

Posted on March 3rd, 2009 by Dennis Stevens  |  3 Comments »

If you aren’t familiar with the story of The Blind Men and The Elephant it is about six blind men that go to study an elephant. When they come back, they all report on the elephant in different ways. They variously report they found a wall, a spear, a snake, a tree, a fan, and a length of rope. They argue to defend their perspective. The discrepancy lies in the fact that each studied a different part of the elephant. The poem and the related illustrations at the link above demonstrate the story very well. The story is a metaphor about how we see the world from our individual perspective and have a difficult time understanding the bigger picture.

Delivering software and technology is a lot like that elephant. Over my career, I have been the blind man trying to figure that elephant out. I wrote code for the first decade, then began to study what great code and then architecture looked like. I joined user groups and associations and studied the engineering practices around software development. I studied function point counting and became a member of IFPUG. In the mid 1990’s Senge and Ackoff seeded my Systems Thinking perspective. My work at Perot Systems shaped my Business Process Re-engineering perspective. My degree is in Organizational Psychology and Development and I have been fascinated with the role language, knowledge creation, and team dynamics play in this area. I first read “The Goal” and “Critical Chain” in 1998 and have studied and applied the TOC thinking processes and CCPM to project scheduling. I have been greatly influenced by Theory of Constraints thinking. I have been around Agile development for over 10 years. I have a bookshelf full of eXtreme Programming and Agile books. I am also very involved with the project management institute as well, earning my PMP in 1998 and I spent the last couple years as the Deputy Project Manager of the Organizational Project Management Maturity Model - OPM3®.   I earned my Lean Value Stream Mapping certification from the Lean Enterprise Institute in 1999.

In each of these cases I went into the community trying to learn what they had to offer and figuring out how to responsibly help companies profitably deliver technology. One of the interesting things I have consistently observed is the disdain these communities hold for most of the other communities.  I was at an Architecture conference in 1991 where the various OOAD people were actually yelling about the best way to identify objects for a system. The TOC and Agile people really dislike the PMI people. Even inside the Agile community, the Lean and Agile groups are at each other’s throats. Engineers discount the human elements and the softer side of team dynamics.  Everyone is arguing for the importance of their view of the elephant. High ceromony scoff at the lack of maturity of the low ceromony while the low ceromony ridicule the waste of heavy and useless process and artifacts.

The problem is that the answer is not one particular part of the elephant. No one is completely right. We need to optimize the entire elephant and turn it into a sleek and agile race-horse. The battles between whether the elephant is a tree or a fan or a snake are not productive. They obscure the path to improving the ways that we can responsibly and profitably deliver value to our customers.

I spent last week at a course with Jeff Sutherland, one of the creators of SCRUM. The SCRUM he talks about is different than what I have seen on many SCRUM teams or read in books. Jeff incorporates aspects from Theory of Constraints, and Lean, and Knowledge Management. He promotes the items in the Agile Manifesto but incorporates elements from everything he has learned and observed. Jeff is trying to build a “big-tent” approach that brings responsible practices together while increasing performance and developing hyper-productive teams.

I encourage each of us to recognize our myopia in understanding this elephant. Try to understand the basic principles behind each practice and idea. Let’s agree that the way organization’s identify, manage, create, and deliver technology to organizations and customers is insufficient and put a lot more energy into improving. Technology plays a very important role in our economy today. We can’t get good enough fast enough right now, and dogmatic wars are too costly. What can we be doing to rapidly cross-pollinate and greatly improve our ability to profitably deliver value to our customers?

 
Switch to our mobile site