Software is perishable – Identify your HIDDEN requirements.

Software is perishable

In a world where fresh food goes stale then rots, pets are born, grow old and then die, software is perishable. What do I mean by that?

Requirements change

Isn’t software something that once it’s written just does it’s task and doesn’t change? Yes, that is true, but the REQUIREMENTS needed to keep software useful will change over time. Often the changes can be swift and rapid. This can get you and your business into trouble if you don’t keep your eye on it.

A way to look at software is what reason did you get the software in the first place. It filled a need, a requirement.

For instance, I get an accounting package…lets say KwikyBooks. I get the package for my accounting needs. Well, what are my requirements?

1 – Generate invoices of my customers.
2 – Take payments and track this information.
3 – Generate various reports.


However, there are HIDDEN requirements that may not be obvious until you start using your software:

1 – What kind of hardware does this software run on. If you can’t obtain or afford the hardware, the software will be useless.

2 – Is the software secure? If you can’t keep your confidential business data safe, you will lose customers because they can’t trust you to keep the information safe. It’s just a matter of time before someone or something hacks your system.

3 – Is the software keeping up with industry standards and practices? Is it compliant with Federal, State and Local laws? E-commerce businesses, depending on it’s size, for example may have to track sales tax in EVERY STATE it sells to. Every year the Federal and Local government adds new laws and regulations that affect accounting and Tax laws. Having software that is non-compliant with industry standards and laws can cost you money and even your business.

In the same way, even though your software you have purchased or have developed for your company or customers may fulfill your original requirements, the HIDDEN requirements often will change because the software doesn’t change with time.

Prepare for Hidden Requirements

With this in mined, here is what I’d suggest you do when you either purchase software or have it developed:

1 – Check on the stability of the developer or company you are getting your software from. Even if it’s AWESOME software, if the software developers who wrote it go away, you can’t get the software HIDDEN requirements fixed. If your working with an independent software developer, I would recommend you use a well known open source framework¬† and languages. In the worst case scenario, you can find a python or java developer to take over development ant maintenance of your software than something written in let’s say a Esoteric programming language or a language that is not as common to use these days (i.e. Fortran, Pascal, Assembly, etc.)

2 РGet or obtain a service contract or maintenance agreement for the software. With this in place, you keep the software developer vested  to keep your software up to date.

3 – Periodically review your requirements and discover what your HIDDEN requirements are and get them the developers. The HIDDEN requirements are usually found in changes in these three categories:

a – Industry rules and standards – Software is codified expertise that follows the rules and standards of your industry.
b – Laws (Federal, State and Local) – Legal requirements affecting your industry or profession.
c РTechnology  РNew technology and advancements, including updates and security fixes.

I would recommend you work with your software developer or software company to help you keep track of these areas that can affect your software requirements. Incorporate this process if you are working with Agile software developer.

In summary, please re-examine your software requirements regularly and make sure you keep you software fresh. Don’t allow your software to perish along with your business.

In the meantime, have a good day.


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>