Tuesday, March 23, 2004

There are two alternative motives behind the actions of software developers

One is to be seen (by clients) to be doing as much as possible with as little effort as possible – actual effort to visible effort ratio is kept as low as possible. This results in much code being produced, little or no attention to what it should do, giving clients instant results – the poor quality of which only come to light down the track, at which time, more low effort, high visibility work is done in order to apply another “band aid”, and the cycle starts again.

The other is to do a good job (high quality outputs), and deliver a quality solution regardless of the workload. This approach comes with far less visibility – especially up front. Visibility at the start of such constructions is low, artifacts of production are more technical – sometimes labeled bureaucratic – but when the client gets what they want, everyone moves on, again, not really acknowledging they are happy, but not being unhappy.

Clients don’t send emails or letters to you to impress on you that they are satisfied with the system. They pay good money to be satisfied with the system. When pressed for an opinion on your company, a happy customer will speak highly of you. The difference however with an unhappy customer is that they will go out of their way to speak badly of you.