Tag Archives: Agile Development Process

Making Agile Work for Your Business

How do you go about making Agile work for your business? Many Agile coaching and consulting companies take what I would call a “developer-centric” approach to Agile:

  • The effort is heavily focused on team-level capabilities and is primarily oriented around improving the development process
  • There’s nothing wrong with that, in itself. However,
    • People often make the mistake of assuming that whatever is good for the development process must be good for the business as a whole, and
    • That is not necessarily the case
Make Agile Work for Your Business

When you apply Agile to a business at an enterprise level, a balance between two approaches is needed:

  • A bottom-up “developer-centric” approach and
  • A top-down “business-centric” approach to Agile

Background

Making Agile work for your business is a real challenge:

  • There is widespread knowledge that exists about almost every possible aspect of how to optimize an Agile development process at a team level; however,
  • The knowledge about how to make Agile work at an enterprise level is much more limited.
  • There have been numerous failures in trying to make Agile work at an enterprise level and there are some significant misconceptions behind these failures

Another big challenge is aligning the overall business strategy and the development strategy:

  • At the business level, the approach should be designed around what makes the most sense for the company’s business
  • That may or may not be exactly the same as the approach used to manage projects at the development level
  • The people designing the enterprise-level strategy need to be able to understand the business strategy as well as the development strategy and fit the two together
  • It isn’t necessarily just a matter of forcing the entire company to become more agile

Frequent Mistakes

Many people have the belief that:

  • Any kind of traditional management approach is bad,
  • Agile is good, and
  • There is a binary and mutually-exclusive choice between the two approaches

That over-simplifies what I believe is a much more complicated decision. The result of that is that people often try to force-fit a company’s business to an Agile approach

  • The right solution is to go in the other direction and fit the approach to the company’s business
  • Sometimes that may require blending an Agile approach with a more traditional management approach

How Do You Determine the Right Approach?

Becoming agile for the sake of becoming agile may not be an appropriate goal for all companies. You have to ask:

  • “What problem will it solve?” and
  • “How will it really benefit the company?”

The answer to those questions may be very different depending on the nature of the company’s business.

Product-oriented Companies

A pure Agile approach is best suited for:

  • A company that is in the business of producing some kind of software product. An example would be Intuit and TurboTax or Quicken or
  • Where the software plays a very direct role in leveraging the company’s primary business (an example would be Amazon.com).

Project-oriented Companies

Where that is not the case and the company’s business is only indirectly leveraged by the Agile development process,

  • It can be a lot more difficult to implement an Agile development process and
  • More adaptation may be required to fit the Agile development process to the company’s business environment

An example would be an internal IT application development project)

How the company handles financials and business decisions is a key difference. An Agile development approach is very well-aligned with a product development approach. Here’s an article with more detail on that difference:

Product Development versus Project Development

How Do You Develop a “Business-centric” Approach?

The key to developing a more business-centric approach is to recognize that the overall approach must be designed to satisfy the critical success factors of the company’s business.

  • A good model to look at to understand this better is the idea of “value disciplines”. Check out my article on “Agile and Corporate Culture” for more on that.
  • For example, a company like McDonalds is in a business that demands “operational excellence” as the primary value discipline
  • In that environment, one of the most important critical success factors is going to be reducing costs
  • How does an Agile development approach contribute to achieving that objective? The answer isn’t necessarily obvious.

What Is Needed?

What’s needed in this situation in many cases is:

  • More of a “top-down” business analysis to identify potential areas for process improvement
  • Aligning those initiatives with the critical success factors that are most important to the company’s business

That should be one of the first steps in an Agile transformation for this kind of company:

  • Before you jump to the conclusion that Agile is a good solution to any problem the company might have,
  • Its important to understand how its going to make the company more competitive in the business that they’re in

Enterprise-level Agile Transformation Strategies

There are a number of different potential strategies at an organizational level for implementing an Agile transformation:

  • Some organizations may choose to implement a relatively complete top-to-bottom Agile transformation for their business.
  • Dean Leffingwell’s Scaled Agile Framework (SAFe) is an example of such a model. However, that can be a very ambitious and gut-wrenching change for many organizations and it also may not be the best solution
  • Fortunately, there are other alternatives companies can select to fit an Agile approach with their business

Organizations typically have different layers of management as shown in the diagram below. And, at each level, there is a choice of:

  • Taking more of an Agile approach or
  • More of a traditional, plan-driven approach:
Making Agile Work for Your Business

Business Process Reengineering

It doesn’t necessarily require throwing out any existing management processes that the company may have:

  • There may be a legitimate reason for some of those management processes
  • Those processes may be already well-aligned with the critical success factors in the business, and
  • It may require some compromise to adapt an Agile development approach to that environment

The approach for doing that analysis is actually similar to a Business Process Reengineering initiative. Check out this article for more on that:

Business Process Reengineering and Agile Transformation

Overall Summary

The important things to recognize are that:

  • This is not a “one size fits all” decision. What is the right approach for one company may not be the best approach for another
  • It’s also not an easy thing to do and “cookbook” solutions don’t generally work

It’s kind of like a chess game to choose the fit the right strategy to each level of the organization as shown in the diagram below:

Making Agile Work for Your Business

You have to consider an Agile development process in the context of the business it operates in. And, many times you need to adapt an Agile development process to fit the business environment.

  • Within the development process itself, the process may be largely the same
  • The differences may be at a higher-level such as the project portfolio management layer that wraps around the project
  • Those higher-level layers could also be Agile, but
  • That kind of complete, top-to-bottom Agile transformation just doesn’t work in all business environments

Additional Resources

You will find much more detail on this in my Online Agile Project Management Training.

My course, “Agile Project Management for Executives” is specifically designed to help business leaders deal with this challenge.

What is an Enterprise Agile Coach?

What is an Enterprise-level Agile Coach? There are very different Agile Coach roles and when people use the term “Agile Coach” it is often not exactly clear what role that they are referring to.

Enterprise Agile Coach

Typical Team-level Agile Coach Role

Most often, what they’re talking about as an “Agile Coach” is what I would call a team-level Agile Coach. Someone in that role works at a tactical level with individual members of an Agile team to help them become more proficient in executing a Scrum process.

What Is an Enterprise Agile Coach?

The role of an Agile Coach at an enterprise-level needs to be better-defined and differentiated from a normal team-level “Agile Coach” role. Beyond the team-level Agile Coach role, an enterprise-level Agile Coach:

  • Helps companies design and implement an effective Agile transformation for their business
  • Works at a more strategic level to integrate an Agile development process with a company’s business. (See diagram above)

An enterprise-level Agile Coach should be able to see the need for an Agile transformation from a broader business perspective. Check out this article for more on that:

The Impact of the Business Environment

The problem is that there is a big difference between companies whose primary business is focused on product development and other types of businesses.

Product Development Companies

  • Agile works very well in companies that are in the primary business of developing products (particularly software products). Intuit is an example that develops TurboTax, Quicken, and QuickBooks).
  • In those companies, there is a strong and natural alignment between an Agile development process and the overall business goals of the company
  • It is very easy to apply an Agile development process in that environment.

Non-Product Development Companies

It is much more difficult to apply an Agile development process in a company that is not in the primary business of developing products. In that kind of business, the relationship of an Agile development process to the company’s overall business strategy is much more indirect.

In companies that are not in the primary business of developing products:

  • You can’t just force the company to be “Agile” in order to make the company more amenable to an Agile development process
  • The company’s overall culture and business strategy needs to be optimized around the critical success factors for that business

Fitting the Approach to the Business

An enterprise-level Agile Coach role can be very challenging. It’s important to fit the approach to the business rather than force-fitting the business to some arbitrary approach, Here’s an example:

  • If a company is in a business that requires operational excellence, it needs to focus its overall culture and business strategy primarily on efficiency of operations and reducing costs and
  • That doesn’t necessarily align completely with just becoming more “Agile”.
  • In that kind of environment, you have to develop a strategy that considers both the company’s business strategy and the requirements of an Agile development process to develop a well-integrated approach
  • The implementation of that strategy often requires fitting the approach to the company’s business environment rather than simply trying to force-fit the company to some kind of overall Agile approach

Blending Agile and Plan-Driven Project Management

The solution in that kind of environment could be a blend of Agile and traditional plan-driven management principles and practices. That is a lot more difficult thing to do and requires a lot more skill than a typical team-level Agile coach would normally have. It requires an understanding of:

  • Agile principles and practices; as well as
  • Traditional project management principles and practices
  • And a deeper understanding of the principles behind both of them to know how to blend them together as necessary to fit a given situation

Business Perspective

An enterprise Agile Coach should have the ability to look at a very complex, broad-based, enterprise-level business from both:

  • A more strategic high-level business management perspective as well as
  • A more tactical product development process perspective to develop a strategy for integrating the two.

Overall Summary

An Enterprise Agile Coach is a different kind of Agile Coach role:

  • Instead of working at a team-level on improving team performance,
  • He/she needs to work at a much higher strategic level to help a company fit an Agile approach to their business

Additional Resources

You will find much more detail on this in my Online Agile Project Management Training.

Product Development versus Project Development

Agile has been most widely used in “product” development environments and less widely used in “project” development environments.  The difference between product development versus project development is not widely-recognized.  Of course, this is not a totally universal, black-and-white distinction; but, in general, there are some key differences.

Product Development versus Project Development

General Characteristics

AreaProduct DevelopmentProject Development
Objectives
  • Products typically have broadly-defined objectives
  • Products are less deterministic and the business model is usually a little more open-ended
  • Projects generally have more clearly-defined expectations and requirements
  • Projects are typically more deterministic and the business model is more closed-ended
UncertaintyProducts are generally somewhat speculative and might require a significant amount of innovation particularly if it is something that has never been done beforeProjects are generally less speculative
DurationFor many products, it’s an effort that simply goes on-and-on without end to provide ongoing support and enhancements for the life of the productProjects typically have a well-defined beginning and end and are completed as soon as the project objectives have been accomplished
ExamplesFor example, a company might say that:
  • We want to develop a product to satisfy “X” market need (where that market need may only be generally defined and might need to be validated) and
  • We’re going to invest $X to fund a team for ongoing development to support that product development initiative
For example, a company might say that:
  • We want to implement a project to install and implement a new CRM system with the following requirements
  • The project needs to be completed in six months and is expected to cost $X

Budgeting, Business Model, and Decision Process

AreaProduct DevelopmentProject Development
BudgetingThe budget for a product development effort may have some slack in it depending on the level of uncertainty associated with the product development effortVery few development teams are given a “blank check” to do some kind of project without having some expectations of what the project will accomplish, what it’s going to cost, and what the schedule will be
Business ModelThe business model behind a product development effort is typically based on a projected return on investment (ROI) that the decision to invest $X in the ongoing development effort will provide an acceptable return from the profitability that the product will generate over the life of the productThe business model behind projects is typically very different. A company typically has a given amount of funding to invest in projects and some kind of project portfolio management approach is generally needed to determine the appropriate mix of projects that will provide the greatest overall benefit
Decision ProcessThe decision process associated with a product development effort is generally focused on prioritizing what features should be added to the product to provide the highest level of customer satisfaction and profitability
  • In order to make the decision of what projects to fund, something may need to be known about the expected results, costs, and schedules of the projects in that portfolio
  • There is also an ongoing need to monitor the performance of those projects to see if they really are going in the right direction to provide the return that was expected

Overall Summary

There is a big difference between the business model and decision process in a product versus project development environment. 

Agile is very well-suited for a product development environment. Applying Agile principles and practices in a “project” development environment can be a bit more challenging but it definitely can be done. 

  1. Agile works best where there are limited constraints on costs and schedules and the primary goal is to add features to maximize market acceptance and customer satisfaction
  2. When you introduce constraints on costs and schedules in a project development model, a hybrid agile approach may be necessary to meet the competing demands of:
    • A highly flexible and adaptive development approach, and
    • The predictability of meeting cost and schedule constraints that is often demanded in a project environment.

The Hybrid Agile Development Approach is an example of how this can be done.  It involves wrapping a “shell” around an Agile development process. That “shell” can be as thick or thin as you want it to be. The approach can balance the need for planning and predictability with some level of flexibility and adaptivity.

Additional Resources

You will find much more detail on this in my Online Agile Project Management Training.