While discussing a completed project, we noticed that our customers seemed to fall into three groups. A couple of AntiPatterns seem to fit on the ends of this scale.
- TheCustomersAreIdiots. If one assumes the customer knows nothing about what you are doing...
- Requirements only. They have a problem to solve. They outline the problem, we get started, and deliver something later. They probably aren't going to do any serious testing with the demo version, or give much feedback.
- Tech spec. Not only do they have a problem to solve, but they have some ideas about how the solution should work.
- Full hands-on. This is TheCustomer mentioned in ExtremeRoles - or at least, near enough. They will be all over the NightlyBuild (if you are enlightened enough to allow this).
- WeAreIdiots. The customer makes all the decisions (and the project goes wrong because of this).
The different types of customer need treating differently. When the customer changes type, you need to notice and respond - and try to
ReduceSneakyScope.
Anyone else noticed this sort of division?
Here's a division I've noticed. The customers vary mainly in how they specify what they want.
- Those that know a task lacking a tool or a service they would need, and give you free hands. These are the best type of customer when they are generous enough in assessing the outcome. Often they also get the best products, given that they describe their problem specifically enough.
- Those that have decided that they need a "solution". These will take a lot of time to clarify what their "problem" is. These also include those who have seen something very nifty at another company and want a "similar thing", though they don't know why.
- Those that have a detailed spec of what they want. These customers take internally all the horrors of program design. Often they are still wrong and cause you unnecessary work for a program that works suboptimally for their purpose. But you can pin this on them.
- Those that focus on many factors of what the product should be like, and can't decide which are the most important. Somebody says the product is slow, they start to ask for efficiency first, somebody says it's hard to use, they start to focus on interface design, somebody says it's not slick enough, they start focusing on style. And this kind of customer is bad indeed.
There might be some more categories but I can't come up with any.
See also: ElicitingRequirements, WhoIsTheCustomer, KnowYourCustomer, FallingWater, TheReason/WhatYouProduceTheyConsume.
CategoryRequirements