Understanding the customer
In my viewpoint, one of the key things about Agile is bringing the customer and the team (the implementers) MUCH closer together. So that, for example, the team starts to understand many (most?) of the marketing issues and activities in effect.
In this regard, let me mention two things:
- While the customer often knows their own problem (well, pretty well), they typically are rather clueless about what the solution should be. Nonetheless, we typically ask them ‘the requirements,’ and we are shocked — shocked later when they say, “Well, now that I see it, it is not what I want.” As one angle to this, most normal people don’t want ‘a product.’ They don’t want software or a technology gizmo (yes, there are a few people who do want this, but they are few). They want only what the product will bring, e.g., that the problem will go away. As an example: They don’t want a music playing thingie (Zune or iPhone), they just want to be able to hear the music they want almost anytime they want to. (Spotify?) Along with this, the customer is a normal human being; meaning, that what they say is often not very articulate. As a perhaps not minor point, no two customers agree.
- We can’t hear what the customer says. This is of course normal human behavior, as, for example, any wife (or husband) knows, and there are also lots of additional root causes for us.
- we put extra people (noise) in the process
- our topic is very abstract
- we are talking about something that does not even exist yet
- it has all kinds of geeky, fast changing, fast moving lingo around it
- we want to hear features, and the customer wants to talk about his problem
- etc., etc., etc.
To improve this situation, Agile says: Bring the two sides much closer together, even closer than we can possibly imagine. Far from perfect, but hopefully most of the time much better.
(Why still imperfect? Well, for example, even a husband and wife who have been together for 20 years don’t perfectly understand each other. As another example, most business-customer types are challenged hanging out with techno-geeks talking a different language.)
Now, it is still ‘not good enough,’ so I think we should enable ourselves to discover more quickly when the cycle is especially stupid.
So, I am suggesting putting in a tight P-D-C-A cycle in there (Plan, Do, Check, Act). That cycle in seen in Scrum both with a Sprint and then a Release (i.e., two cycles).
Also with some BV metrics (which are indeed very hard, but delivering Business Value is what’s important). Example: Measuring the BV delivered after each release with some metric or two. We will still make lots of mistakes, but we should learn faster.