Programming Methodologies and Total Cost of Ownership

If you have ever been involved with or had to fund a new application or an upgrade to an existing application and experienced excruciating pain (cost, duration, delays, …) in the process, then you might be interested in this. Carpenters have a saying – “Measure twice, cut once”.  It’s not quite the same, but planning out how the system should operate and perhaps as importantly what you want to prevent it from doing and even more important how to recover from an “abnormal exit” is ‘required thinking’.  Just for clarification, I am calling an abnormal exit some sort of ungraceful and unplanned stoppage for the system.  That could be a power outage or perhaps a drive failure or a chain breakage or an E-STOP or ……………. Just as you eat an elephant one bite at a time, you also have to tackle a large solution one sub-system at a time. I need to point out that this is not a treatise on “modular programming” in its purest form which is defined as “a software design technique that emphasizes separating the functionality of a program into independent interchangeable modules, such …