Poorly Developed Software Hikes Support and Maintenance Costs - Here's Why
Dan Prince
Senior Software Engineering Professional | Founder, CEO, and Visionary Technology Executive
I wanted to talk today about what it takes to support a software product. Maybe you understand this, maybe you don’t. So, I thought I would explain it at a real high level just to make it clear to everyone.
Typically, what happens when you develop software is that you release a production version of it. That means that you will have users that begin to use it. As they use the application they will find problems or don't understand it, they will contact your Support Desk. When your users call the Support Person will need to be able to provide adequate assistance. Typically your Support Person will need to know the details about the architecture and what functionality is available. Next, they will need to figure out what the user’s issue is. They will need to determine whether it’s a legitimate bug or if it’s a problem with the user’s understanding. Your software should make it clear to your users how it works.
Let’s say that the issues they contacted you about is a legitimate bug. It is a problem and it requires a change to the code. The Support Person must find out exactly where the bug exists within the software. Once they think they know what the problem is they make the changes. If the change is small or insignificant enough there isn't a problem. The bad news for most companies, is that there can be no assurance that everything is working.
Your Support Person made a small fix that could have caused all kinds of other bugs. You won't know unless you test every feature in every way possible? The Support Person then tests the problem that the user contacted you about and it seems fixed. However, as you can imagine, there is an inherent problem with a fix like this. What if there are places within the application that aren't compatible with the fixed code?
Bear with me and I will get to the point. If your fix causes other problems then you haven't fixed anything. You need a complete set of tests that help ensure everything works after any changes. Supporting the product without tests could turn into a continual cycle of fixing one bug by creating another. You may wind up "pushing" the problem to another place within the application. If this happens your users will undoubtedly report the new problem. Again you attempt to fix it, and wind up pushing it yet again to another place. This could be a nasty cycle fixing problems and then getting calls from your clients that something else doesn't work.
That cycle of support is going to cost you a lot of money. You're paying someone to answer those phone calls, to research the problems and then to “fix” them. But those aren't your only costs. How much did you lose in earnings or lost wages for your users? Users that aren't happy with your product, will eventually stop using it. Loss of users due to an unsupportable product means your product is not going to be around long.
What you really need, is to be able to support your product cheaply and retain your users as a result of the quality. Optimally, you would get zero support requests from your users and you would only need someone answering phones to record positive testimonials. You should get few support calls, and they should all be minor things that are superficial. Acceptable Support Desk calls should be things like, a user who doesn’t understand the wording somewhere in the app with the support response being an update to the dialog verbiage that makes it clear.
In an optimal world, you would be able to support a large, complex product with thousands of users with only one Support Person.
Impossible? No. It IS possible. If you do things right.
The moral of the story: If you build the product in a way that makes it hard to support, you will spend far more to support it. Obviously this will provide much less satisfaction to your user base who, doesn’t want to have to contact you to report a problem at all. Over time this will cause your product to fail. I’ve seen it many times.
Dan Prince is the President and CEO of a Kansas City based, product design and development agency. illumisoft focuses on technology utilization strategies for small to midsize businesses. The use of proven strategies has produced dramatic results in cost reduction, and systems modernization. Dan also works with start-ups and small technology companies to plan their journey in a rapidly changing technology landscape. Reach Dan at [email protected] or phone/sms 816.564.9595.