Discover more from The Art && Science of Ruby
Why are IT projects unsuccessful?
You’re out there, hustling for your business, day after day. Putting in the hours.
You come up with a way of streamlining things.
A computer system that will:
Reduce time spent on mundane tasks.
Lower your costs.
Increase your revenue.
And then you think back to the headlines.
“Yet another costly IT project failure”.
“Ballooning Costs pull the plug on flag-ship computer system”
It always seems to be the same story.
All that time and energy put into IT which could be better spent elsewhere.
What is the problem with IT?
It’s almost impossible to comprehend how complex today’s computers and operating systems are.
The Apollo Guidance System, which controlled the missions to the moon in the 1960s and 70s, is able to perform 41 instructions per second, using less than 13000 transistors.
An iPhone 6’s central processor has 1.6 billion transistors and can perform over 3 billion instructions per second.
Think about that for a second.
The device in your pocket is billions of times more powerful than the computer that literally defined the term “rocket science”.
Now think about how complex it must be to harness that power without shooting yourself in the foot.
Because of that, when we want something building, we need to define exactly what it is we want. In some ways, NASA had it easy. The laws of physics were well understood, the physical properties of the materials they used were well understood. So in a given set of circumstances, the computer should do this. In this other set of circumstances, the computer should do that.
Compare that to your average piece of business software. The customer has sent in six angry emails in quick succession. What should the computer do? The driver has been stuck in traffic for twenty minutes so the delivery might be late. What should the computer do? Is there a set answer to these questions?
So we need tightly defined specifications - in situation A I would like the system to do X, in situation B I would like the system to do Y. And so on.
But specifications like that are very hard to write.
Partly because it’s really hard to deal with every possible scenario. NASA can afford to spend millions on designing their software. Most small businesses can not.
And also because software is intangible.
If you’re building a chair, you probably have a pretty good idea in your mind of what it’s going to end up like, even before you begin. Because you’ve sat in a thousand chairs.
But if you’re building an IT project, unique to your business, what does the end result look like? And, even if you know, how do you communicate that vision to the IT department or software development team?
So what’s the solution?
The first thing we need to do is reduce the complexity.
Focus in on what’s important.
Every time you come up with a feature, think “will it make us money? will it reduce our costs?”. If the answer to both of those is “no” then it goes on the back-burner. We’ll think about it later.
Then, take the necessary features and define them. Precisely.
What happens when things go according to plan? What’s the most likely way things will go wrong? What’s the second most likely way things will go wrong? Is there another path to achieve the same goal? Is there another path to achieve the same goal with less complexity? Why is there more than one path to the same goal? Can we eliminate one and make things simpler?
And then build your feature quickly and ship it.
Because software is intangible, it only really makes sense when you see it in front of you.
So get the bare minimum built as quickly as possible and get it out there. In front of the employees who will be using it. In front of your most trusted customers to get their feedback.
Because once it’s in front of people, they’ll see the flaws that you missed and, just as importantly, the better future, the possibilities that the project opens up.
And it will change direction. Inevitably.
So don’t invest too much beforehand - concentrate on one feature, plan it out in detail, then build it and ship it.
Once the dust has settled from that, decide on your next feature, plan it out in detail, build it and ship it.
Reduce the complexity. Focus on revenue. Get feedback as early as possible. And your IT project will be a success.
Get free advice and tips on using IT to reduce your costs and increase your revenue - sign up here