What Do I Mean by a Complex Product?

WRITTEN BY Mike Cottmeyer
I’ve been rambling on for the past few years about agile in larger, more complex enterprises. Quite often in that discussion, I’ll get asked to show a real life example of what I mean when I refer to a larger, more complex product. I think there are quite a few folks in our industry that have not worked on products of this scale, so I think it is a fair question. This post is going to explore this a bit.
A large, complex product is one where many products are integrated into some larger product that has some distinct value proposition. The core products are products in and of themselves, with teams and product owners and revenue projections and customers. The integrated products also have teams, and product owners, revenue projections, and customers.

The resulting matrix looks something like this:

In this case, we have several integration products… online banking, phone banking, payment processing, and remittance processing. These products leverage payment services, risk services, business intelligence, and corporate financials.
I want to reiterate… both the products identified in the rows AND the products identified in the columns have teams, product owners, revenue projections, and customers. As a company, I sell both dimensions to different customer bases and different markets.

Let’s make this look a little more physical than just a matrix in an Excel spreadsheet…

… and here lies the nut of the issue with the feature team vs. component team debate. Agile tells us that we have to build a cross functional team that is made up of individuals from each of the blue boxes and maybe some folks from the orange boxes. They become a team and deliver cross-functional features… but from who’s perspective? Which dimension are we accounting for? We need to account for both.

Just to give you some insight as to the environment… the technologies involved here included Java and .NET and Cobol; Web Services and Enterprise Data Warehousing and ERP systems… not to mention that there is specialized business domain knowledge held by the developers and analysts in each part of the product organization. At the very least it is a bit naive to think that we are going to mash all this up and get hyperproductivity in just a few sprints.

I am all for disruptive change… but this is the kind of disruption that results in nothing getting delivered.

So what I am saying when I talk about organizing around capabilities… or services… or components… is to build agile teams around the sub-products in the organization. You might also form agile teams around the integration the various sub-products. The challenge then becomes how you manage the enterprise portfolio so that all of the teams are in sync and constantly converging to deliver value along both dimensions of the matrix.

The reason that I think most teams don’t get the value from Scrum that they expect is that they have narrowed their definition of value to something that they can control.

If I’m part of a Scrum team organized around the Credit Card Payment Processing engine… and I build a lot of great features into my product… but the business really cares about the Phone Banking System… which you are a an integral part, but not the entire thing…. what happens? Your value is not recognized by the business… and THAT is the problem. Many of us say we are systems thinkers… but what system are we thinking about.

We have to care about the flow of value… not features from our part of the product.
Note: These images were created by a good friend of mine, Brian Sondergaard, who blogs (sometimes) over at http://blog.softwarearchitecture.com. He created these pictures for a talk we did together in DC at Agile 2007 around how to use RUP to scale Scrum. The 7 or so people that came really seemed to like it ;-)
leave a comment

Leave a comment

Your email address will not be published. Required fields are marked *

4 comments on “What Do I Mean by a Complex Product?”

  1. Anonymous

    Interesting thought. I realize the scenario and have encountered similar situations.

    I'd love to just give you a silver bullet and say perhaps you need to move more toward Lean-Agile or Kanban rather than scrum. But a statement like that wouldn't give anyone any guidance on best to proceed.

    I think you started with the right idea: A blended team (pulling members from various products and features). Your question is from which perspective should they develop features/values to the overall products? My answer to that would be the team's perspective. Keep in mind, however, that the product backlog should be organized and prioritized by a Product Owner. And this product owner should have the larger picture in mind.

    Now with the largeness of this situation, you could have multiple teams each working on one product. Then you would have a scrum of scrums overseeing the overall integration. This works to some extent. The breakdown occcurs when one team produces many more features than the other products and thus they start delivering lower value features for the overall systems.

    One solution to this is to move to a Kanban system for the scrum of scrums. Take a look at which products/features are moving at slower velocity. Have the other teams move in and help the product that either (a) has the highest priority/value backlog list, and/or (b) is experiencing issues that slow down the workflow.

    Reply
  2. Mike Cottmeyer

    Thanks for the thoughtful reply. I tend to assume that people that read my blog have been reading for a while… I need to put in links to my older relevant posts.

    http://www.leadingagile.com/2010/03/okay.html

    Check this out… Scrum or Kanban at the team level… Lean portfolio management across the teams. I think you and I are on the same page. The cross functional team won't work and the Scrum of Scrum metaphor is insufficient.

    I've been noodling around these ideas for a year or so. Check out some of my earlier posts.

    Reply
  3. Paul Boos

    One thought had is that it may be a communication/ownership issue. The product owner of the Credit Card Processing system, may be in need of being linked in to the Phone Banking team. In order to improve this linking and perhaps make it less intensive on the consumers (i.e. lower level product owners), the planned and actual values could be communicated on some form of big visible chart. I would think Velocity (high level value-oriented features) or Kanban (see where each item is as far as the overall system of systems team thinks it is) would work for a visibility, but this is only a one-way communication. There needs ot be a feedback from the lower level system's team up and how what they are implementing has the linked value. Without this, there will always be a disconnect I suspect.

    Reply
  4. Dean Stevens

    We have to care about flow – that's a process view.

    We have to care about value. That's a vision and prioritization view. What does the team do when the Credit Card Processing is good enough – new features don't add sufficient incremental value? Is the enterprise agile enough to respond to this change?

    Reply