In response to the hordes of people who have written to us begging for another update to our blog (well one person really, thanks Bryan) here is SageTea™ Blog 2013.1
In Canada, the United States and the United Kingdom alone there are approximately 2.5 million computer programmers working diligently away creating software applications. If we give each of these programmers a very conservative annual income of $60,000 the labour cost of creating software in these three countries alone amounts to $150 billion.
If we make an assumption that half of this cost goes towards games and other non-business related applications we are still left with $75 billion dollars spent on labour costs for creating business applications – once again in only three countries.
Clearly the software market is huge – really, really, insanely, obscenely, grotesquely huge.
It’s also incredibly inefficient.
The current accepted approach to software development seems to be that a programmer gets a set of business requirements (often incomplete) from a client then he or she goes away for up to two years and then they magically reappear with a software program that hopefully responds to the original needs of the client. Hopefully is the operative word because, although the programmer has the best of intentions, he or she is really just creating what they think their client wants – they have also had considerable time to come up with a whole lot of ‘wouldn’t it be really cool if’ moments that have resulted in a lot of ‘enhancements’ to the original plan, which may or may not be of value to the original customer.
Imagine hiring a contractor to build you a house, talking to them for an hour or two about what you want (lots of hand waving and ‘general ideas’ would be involved), giving them a lot of money and then not checking in on things until it’s built.
You wouldn’t do that would you? Then why is this how most software planning done?
There’s another inefficient thing happening here besides the lack of real planning bit. With traditional programming you actually have your most skilled resources (think move to the front of the immigration line type of skilled) doing mindless repetitive tasks – creating another radio button, or another drop down menu, or another text box, or another … you get the message.
So how about we change that, right now. Let’s free those same highly skilled resources from the mindless repetitive tasks and set them to work on the value added, creative parts of the applications. Let’s create software that completely meets the business requirements of the client. No wait, we can do better than that! Let’s have the business requirements define the software! Wait, wait! Let’s go one step more! Let’s have the business requirements actually build the software!
“Impossible” you say?
“Poppycock,” we respond. “We do it here every day.”
Just think how much more could be done with the aforementioned really, really big number if everyone else did it too.