February 16, 2011

...Learn TDD with Codemanship

Let The Rubber Meet The Road - Software Design Turns Out Better When Informed By Users

In order for one thing to influence another thing, there needs to be a connection between these two things. Cause and effect requires a medium.

Stop me if I'm getting too technical for you.

I have a phrase I love to use when I spot teams trying to change things or achieve things that they have no actual causal effect on. This could be people sitting up in their ivory towers writing process guidelines that nobody's ever going to read. Or it could be teams trying to figure out what features or qualities a product will need to satisfy a customer they've never met.

I say "Let the rubber meet the road".

As software developers, bogged down in the complexity and politics and time pressure of projects, we can easily overlook the fact that the person telling us what we should build is not necessarily the right person.

It can go one of several ways:

1. We deal directly with people who will be using the software to understand how it will be used, and why

2. We deal directly with someone who is paying for the software and hopes that people will use it

3. We deal with some kind of proxy to these first two groups, for example, a business analyst or a project manager

4. We pull the requirements out of our arse

Now, I would argue that 3. is often not much better than 4. Just because the requirements are being pulled out of someone else's arse doesn't make them right.

1. and 2. tend to work better. But we still can fail to draw a distinction here. If the users don't see the value in it, then it's academic what value the project backers or sponsors see in it.

Let me explain: there are people out there, with more money than sense, presumably, who will line up to pay over $1 million for a performance car they can't even take out on the roads. This is a car that they'll only ever get to drive on racing tracks or on other private land. It will probably only be themselves who drives it. This is $1 million for the sheer thrill of driving at 200MPH+ and for knowing that you are one of an elite few who gets to own this car.

The value the car's maker sees in it is $1 million. Well, maybe. There's probably a whole heap of professional pride and elitism mixed in there, too. But mostly is the $1 million. Business is business.

And here's where we can go wrong. If we take our steer from the maker and not the buyer on what has value, then we're getting the wrong point of view. The maker's requirements are constraints on how we satisfy the buyer's requirements. Give the buyer what they want, without giving away the maker's profits.

How many software applications have you seen that have obviously been designed to satisfy the people paying to have it developed, and not the people using it? I've seen tonnes. And tonnes. And tonnes.

Now here's the thing. A $1M car is only a $1M car if someone with $1M to spare is prepared to spend $1M on it. What it'd worth to the maker is zero if it's not worth it to the buyer. The value to the maker is completely 100% dependent on the value to the buyer. And guess what, the buyer doesn't want to spend $1M. Measuring value in those terms is often useless where the buyer is concerned. The value to him (or her - though probably, in this case, him, as women generally don't have small penises they feel they need to compensate for) is in the thrills and the kudos. And "thrills" and "kudos" are highly subjective concepts. Just like "love", "happinness" or "funny".

But, I'm afraid, in order to deliver dollar value to the backers of software projects, we must deliver these highly subjective, intangible kinds of value to the end users, or they probably won't use it.

In all probability, the only way we'll know if end users are "thrilled" or see "kudos" or even "love" our software is to put it in front of them. Beauty is in the eye of the beholder, so let the beholder behind.

If we never get to meet the end users, and as our software designs evolve they never get to see it and we never get to see the looks on their faces and see if we're getting hotter or colder, there's a high probability we could end up delivering a $1M supercar to a customer whose target audience sees more value in a $300 bicycle. And a $300 bicycle that get's bought is worth more than a $1M supercar that doesn't.

Posted 10 years, 1 month ago on February 16, 2011