In a recent sprint planning session we

had a discussion about Who our customer is in an Enterprise Agile project.  You see Enterprise agile finds all the holes in the pure agile model.

In an Enterprise project the customer is sometimes a mixture.  We found it useful to identify two customers:

  • Technical Customer
  • Business Customer

The technical customer is the lead of the team who’s technical work will consume the product. The business customer is the person who in the long run will be responsible for the system defined.  A simple way to identify the business customer is to ask the question:

If this fails who will get called and be responsible to the company, to resolve the issues?

Specifically, we are building a lot of web services. These are needed to complete the whole project but how do you create and demonstrate them in a sprint?  Multi-tiered structure.  What happens when a story calls another story?  and they are both developed by the same team?  Who is the customer? You can’t be your own customer.  I said, “The customers of the top level are the customer of the bottom layer.” Alternatively you could call the bottom layer stories just tasks of the top layer but that is up to you.

The technical customer is the technical lead (typically on another Scrum team) who will be building the product that “consumes” the product being created in the story.  So if someone is writing a webpage that consumes a web service that developer is the “Technical Customer” of the product. They have input in to the technical design of the product.

Have you had issues with defining customers of a story in an Enterprise Agile Project?   What did you do to resolve?