Much of the cost in any custom software system lies in wait, hiding until after the initial development is complete. I write regularly about software development offering my opinions about how to do it better, faster and cheaper. Yet, even getting the initial development cost to zero may not save a company much money over the long term.
Your mileage may vary. How can that be? Ongoing maintenance and support costs can be killers. Development teams are often so focused on the here and now that they lose sight of what’s to come. How do the following maintenance and support items impact your software costs? Do you know?
- Bug fixes
- Configuration changes (e.g. adding/removing users, updating picklists)
- Simple UI changes (e.g. menu layouts, fonts, colors)
- Reports and dashboards
- Infrastructure upgrades (e.g. operating system, database, middleware)
- User support (e.g. answering questions, resetting passwords)
- Performance improvements to accommodate more users and more data
We can jump through hoops to lower initial software development costs but it may not really matter in some situations. Those initial costs are often a fraction of the long-term costs — especially when the software isn’t well-written to begin with.
Get Those Costs Down
This leads to the obvious hypothesis that perhaps we should spend more time and money developing software that’s easy to maintain and support. Think about it. Here are a some ideas to consider.
- Build quality into the code. Don’t rely upon quality assurance testing after the builds. Manufacturers learned long ago that integrating quality into the build process is cheaper than fixing quality problems at the end.
- Use parameter and configuration control files liberally. Parameterize everything. The idea is to avoid new builds and deployments for satisfying simple requests.
- Give users the ability to generate their own reports. It seems that business users can never have too many reports. Take my advice. Allow them to build their own.
- Setup a staging environment to test infrastructure upgrades prior to production deployment. The staging area should be as close to the production configuration as possible. Don’t use the business as a guinea pig.
- Provide extensive online help and FAQs. Allow users to reset their own passwords too. Help desk calls are expensive. Let people help themselves. They’ll be happier and so will the finance department.
Common sense? Yes. These points are simple and obvious. Regrettably, they’re often ignored due to short-term schedule and cost pressures.
Do the business a favor and estimate the long-term costs. Be sure everyone understands what they’re signing up for. What appears to be a $500,000 project may actually be a $5,000,000 one. That’s okay, as long as the stakeholders know what’s coming.