Beware the Over-Engineered Software Product

April 8th, 2014 by inflectra

When evaluating software features to either build or buy there is a tendency to want to have every possible feature even if it will be rarely (or event never used) on the off-chance that it could be useful. This post describes some of the pitfalls with this approach.

I bought a new inkjet printer recently. Now, I really only wanted to print occasionally, (doing my part for save trees, the environment and mankind, etc.) so I really didn't want to spend much on a printer. Looking around I was all too aware that I am going to be required to pay a hefty and regular printer tax – that's the fee we all have to pay to get new ink – sometimes one set of ink cartridges can cost half the price of the original printer. I can't help thinking there is some (unintentional) price fixing going on here – all the vendors sell printers low, ink high. They may not have agreed face-to-face to this sales model, but they all adhere to it. The one who didn't – Kodak, who sold expensive printers with the promise of cheap ink - didn't exactly take the world by storm and have since had to fall in line with the others. But I digress.

I followed my usual routine and started with research on-line to decide on my best options. Like most of my hi-tech shopping experiences, it was for more involved than I thought it was going to be. It seems that despite the low prices the inkjet printer manufacturers have managed to cram in a plethora of features which makes product comparisons a non-trivial task. When it comes to wireless printing alone, there are the following options: networked Wi-fi, AirPrint, Google Cloud Print, Cortado Workplace, and Wi-Fi Direct; and those are only the non-proprietarty options. Most printers offer manufacturer specific options such as 'Brother iPrint & Scan'. And that's just one capability. All the other features also have multiple options, both generic and proprietary. Features such as double-sided printing, CD/DVD printing, document feeder tray, LCD display/control panels, print resolution, scan resolution, printing from portable media, multiple paper trays, print speed and individual or combined color ink cartridges.

After I had spent several hours learning more about printers than I ever wanted to know, I decided I should probably do the old-fashioned thing and go to a bricks-and-mortar store and actually touch some printers. That didn't help. It just added robustness and size to the options I was already considering. The problem was, I could see that I might possibly be able to use all the features on offer so, perhaps I should buy a more expensive model than I had originally intended? The problem with that solution was that those printers tended to be large and overbearing, more suited to a shared office space then to the desk in my rec. room.

So, I gave up – for a day or two – and forgot about the problem. And when I came back to it, I realized that I had been taken in by the perceived need to have all those features. I went back to basics and started eliminating features I may only need once in a blue moon. I have managed without CD printing so far in my life, I'm sure I can continue to do so. Going back to basics gave me a reasonable price point to aim at, which reduced my options and made it easier to make a decision.

Why am I telling you all this? Because purchasing software can be the same, or worse. We can't actually see software so there is no such thing as physical product size, making it much harder to tell how much functionality we are buying, especially with SaaS products where we don't even see the installed product. As with the printer, software products list more and more features to differentiate themselves from the competition, hoping to persuade us that these capabilities are essential. And beware the thought, 'someday we may need that', because someday I may need to print in 3-D, but until that day comes, buying a 3-D printer would be a bad investment.

Software products that have been over-engineered are at greater risk from error resulting in additions or corrections in future releases. The regression testing applied to them will never be enough and so users become the last level of testing. Don't become an involuntary software tester.

As you shop around, keep returning to your basic needs. What do you really need to have? Is your requirements process so complicated that you need to be able to show 10 levels of traceability in a single report? No? Then don't be swayed by a product that can do that. Not only are you paying for features you will never use, you are buying a product that has unnecessarily complex capabilities and may, as a result, be more difficult to use than it needs to be.

If there were a version of MS-Word that provided just 20% of the functionality that the current version offers, at half the price, would you buy it? I know I would.

software features over-engineered

Spira Helps You Deliver Quality Software, Faster and with Lower Risk.

Get Started with Spira for Free

And if you have any questions, please email or call us at +1 (202) 558-6885

Free Trial