Just like the I/T environment needs to respond to the unexpected, so does individual application code. While there is nothing that one platform has over another for designing applications, the following design elements should be considered for mission critical code:
Correctness: The code meets design specifications for basic functionality. While doing this, one should introduce “testability” into the code to allow more efficiently and effectively testing. This includes meaningful return codes, etc.
Robustness: Handle conditions not covered by specifications. Read or write errors do not bring the application down, but are logged for later processing. Current activity terminates cleanly. Ability to resume rapidly without data loss.
Extendibility: Code is adaptable to specification changes. This requires a simple design and modular isolation. Changes to one module are localized to that module.
Reusability: Reuse correct modules in new applications. This can reduce the amount of new code written and reliability of new applications.