How to Build
Quality Software

Let's face it, custom software projects are not usually inexpensive, so it is essential to maximize your return on investment. But what is the best way to do that? The following explains some of the key concepts needed to get good value from your software.

The "R.U.M." Rule - Funny Name,
Powerful Ideas

R.U.M. is an acronym for Reliable, Useful, & Maintainable - These are key concepts in any software development project. Let's take them one at a time.


Software should be reliable. That's stating so obvious, but you'd be surprised at how often systems are unreliable. Let's expand upon what we mean by reliable. Software should be highly available and should always behave in the same way. It should always give results that are consistent, accurate, and verifiable. This is accomplished with good design, diligent maintenance, and thorough testing. The benefit here is best explained if you consider systems that aren't reliable. Consider that month-end sales summary report that just seems to be a "little off". If the numbers don't jive then the validity of the report is in question. That information is now shrouded in a cloud of doubt. People don't know what to believe. Now someone must spend the time and effort to reconcile the inconsistencies. This is no way to run a business!


Most systems stem from a need to solve a business problem. That's the way is should be. Usefulness is a measure of how well the system addresses that need. Useful refers to the software performing tasks & functions that are actually needed to move your business forward. Not a bunch of extra stuff and not some partially-useful subset of the tasks needed. This is accomplished through careful analysis and system design so that you build what you need. The benefit is being able to run your business, increased competitive advantage, and return on investment.


This is an often overlooked concept, but one which is key to maximizing ROI. Maintainability is essentially a measure of how easily a system can be modified. Systems need to be continually modified due to changing business requirements. Existing features need to be updated and new features must be added. This is a normal part of the business cycle and the organizations that can respond quickly gain competitive advantage. Many systems fail on the maintainability front because they are, by definition, custom, and don't comply with any standards. This makes modification more time-consuming and difficult. One of the best ways to overcome this situation is the use of frameworks.

Some frameworks are home-grown to meet the needs of in-house IT development. Others are developed commercially and there are many Open Source frameworks. What you get with a framework is a standardized way in which to build custom systems that meet your requirements. Development is much easier because the framework standardizes project organization, file names & locations, and provides a context to add functionality. This can dramatically reduce development time.

The benefits of Maintainability are quicker/less expensive modifications and smoother transitions among development teams thus enhancing ROI.