Bloggo back to the blog
What makes software successful?-->
As the project I’m working on is starting to come together and draw to a close, I find myself thinking about what happens when it goes live and the users get their sticky mitts on it.
I’ve worked on projects in the past where users have been adamant that they need a specific piece of software, spend thousands getting the thing developed, used it once and forgotten about it. I hope that this doesn’t happen with this project, and I hope that the software is considered a “Success”.
I then asked myself… How would you classify software as a “Success”?
It’s hard to define and pin point exactly what “Successful Software” is without going into a complicated talk about return on investments and going mental with heuristics. I find that the definition of Successful Software is open to interpretation. If I could sum it up in a one line quote, it would be as follows:
“Successful Software – Software that meets the user’s requirements and matches or exceeds their expectations”
I’ll break that down in to two parts and analyse them individually.
Software that meets the user’s requirements – Software that does what the user wants and does exactly what they’ve ask for. They’ve asked for it to do A, B and C, and it does exactly that. It doesn’t do C, then do D and Z with the option to do F if they have the correct user rights. That’s great that it does, but it’s not what they asked for.
Software that matches or exceeds their expectations – Software can meet the user’s requirements, but still exceed their expectations. For example, the system that was delivered was surprisingly easy to use and others who are less computer literate are able to use it. It also sends report and notifications, which weren’t asked for but are features which make the software for valuable to the business.
In other words, it does exactly what it says on the tin, and it’s as good if not better than they expected it to be.
I’ll give you two examples and ask you to decide which one out of the two was successful. These are all examples of systems I’ve tested in the past:
A large Football Club’s shop wanted to use hand held stock take scanner to do perpetual (daily) stock takes. The system that was delivered was meant to pick 10 random stock items, send it to the scanner to be counted and calculate the discrepancy when the figures were uploaded. The problem was that it picked items that were from 10 years ago and were long since discontinued. It didn’t allow you to not count an item, so entering zero gave major discrepancies on the stock valuation report. The customer reported problems daily with the system and complained several times to senior management that it was a load of rubbish. They used it every day, but they obviously hated it.
The Climbing Centre where I climb uses an Access database to keep track of all their customers. They have been using this for 10 years now. They’re happy with their system and it does exactly what they want it to do. The interface, from a design perspective, looks awful, but they can navigate around it easily.
Which one would you say was a success, and which was the failure? In my opinion, the Access database is the winner (That’s hard me to say as I’m very anti-Microsoft)
My attitude towards software has always been focused on the customer’s needs. I’m from a customer service background, so I’m very heavily customer focused and it’s always at the front of my mind. My first job was as a DIY Sales Assistant. I don’t want to say the name of the company, but I’ll give you a clue; it’s not B&Q, it has a green logo and it rhymes with “Rome-Base”. Customer service was drilled into us right from the word “GO”, and although it was really annoying at the time, I still pick out bits of my “Rome-Base” training and use them in my day-to-day work. For example, when a customer asked me how to wire a plug, instead of just spouting random instructions at them, I went one further and actually showed them how to do it. I didn’t have to, but I went that extra mile for them. I sometimes got them to do it themselves just to make sure.
If my clients are generally happy with the software and it does what they asked, that, to me, that software is successful.
What are your thoughts?