Why Is Software So Complicated? Part 3 – Legacy Software

Few programs emerge full-grown and ready to take on the world. It’s a standing joke in the industry to never expect perfection before Version 3.0 – and don’t even think of using version 1.0!

Getting software ready involves some compromises, often ending up in rushing products to market too early. Marketing pressures mean that many programs are shipped with possible design and usability issues. The result is that by the time version 3.0 ‘gets it right’, a lot of people are used to the way the older versions worked, for better or worse. Rather than alienating them, each version needs to support the old, even as it adds the new.

Probably the most familiar example of this is with the Windows operating system. If you’re running XP, you’ll notice you can still run quite a few DOS programs, although perhaps without optimum results. Support for DOS has gone on much longer than Microsoft would have liked, in part because old software is still needed. Decisions made a decade ago continue to be dealt with.

Although making a clean break would solve this, few companies can afford to alienate customers. This straddling of the fence leads to program complexity – more menu options, more settings, more configurations that no one uses (but once did). And so on.

Of the various complexity issues we’ve discussed, this is the toughest to fix. Presenting a completely finished final version of any software program is daunting. Doing it before you know what works is nearly impossible. However, making the upgrade simple, supporting backward compatibility, and making the new features straightforward to learn is important, and if balanced well, can actually make software easier to use overall, not harder.

Comments are closed.