Creating a new software application… is that a glass is half-full or a glass is half-empty thing to you?
Does the thought of actually employing programmers fill you with joy or with dread?
Get it right and software technology is magical, get it right and software technology can change the world.
The browser you are reading these words with.
The phone in your pocket.
The GPS signal which will help you go… well… anywhere!
Some technology is absolutely magical. And some software development teams are absolutely magical. They really can get things done - “hyper productive” as they say. The Alpha AXP compiler team (“commitment management”) or the Quattro Pro development team are two of my favourite better known teams but I know a few others who nobody will ever hear of.
Done right software technology is like magic dust, a little bit of software sprinkled about in the right place, in the right way and Magic!
But many, probably most, never experience this. Such people don’t know how good it can be.
For people who’ve never seen a great software team it can be hard to comprehend what software development can be. The closest these people ever get it is using Google Maps on their iPhone to find a beer.
This is sad, so sad, because it colours peoples view: software development is seen as an expensive painful exercise destined to disappoint.
Most teams aren’t hyper-productive, rather than working on a mission to change the world they remind me of an old Peugeot 206 advert - its on YouTube:
If you’ve not seen it it goes like this: Man looks at a picture of a beautiful Peugeot 206 car in a magazine. He looks at his old heap… and then sets about smashing his car up, driving it into a wall or two, then setting about it with a hammer while people laugh at him.
At the end of the advert his old car kind of resembles the Peugoet 206 - it helps if you squint.
Unfortunately an awful lot of software teams seem to be stuck in this model. They seem intent on smashing something into the shape they want rather than building it right.
Things can be better, so very much better.
Those who believe software is a painful glass-half-empty exercise make it worse for themselves:
- they try to constrain the builder by giving them a long elaborate “requirements” document
- they sign contracts to protect themselves, they specify what, when, how much and even how
- they drive price down because at least it if costs less the pain will be less which often means things end up in some cheap offshore location, out-of-sight, out-of-mind, out-of-control
- they compromise on quality left, right and centre
- quantity over quality is the mantra
- and they blame the coders: after all, everyone knows they are a bolshy bunch opinionated overpaid factory line workers (think Red Robbo) who always mess up
In making these assumptions, in protecting themselves from these beliefs the glass-is-half-empty people create a self-fulfilling prophecy. Each and every one of these actions will make the development process worse.
On the other side, those who see magic at work see software development as a glass-is-half-full thing and will work with the team who understand what is needed, they will be flexible on expectations and they will understand that high quality is faster and cheaper, they will see the development team are experts in the technology and how the technology can deliver benefit.
This too is a self-fulfilling prophecy. Treat the team as adults and they will respond as adults.
Its up to you: your beliefs will determine the result.