When leveraging 3rd party tools we prefer open source over proprietary to avoid creating dependencies that lock us into a specific provider. We also review the licensing to make sure we don't violate it.
We start with the bare minimum and only add when we have learned that something is needed.
Updates are released as small vertical slices that minimize the risk carried with big changes
A Module can be updated independently and released on a staggered basis.
We are able to roll-back deployed changes.
Our cost are known and predictable.
The inputs and outputs of a Module have full test coverage.
We reuse existing code for common functionality instead of duplicating code.
Our applications support localization.
We know the uncertainties and have a plan that will eliminate them before we start work.
The reliability and uptime of our applications are 99% or higher.
Our applications are scalable, resilient and handle failure gracefully.
The UI shows its respective data to a User in 2 seconds or less.
We never increase resource utilization of an application. We reduce it over time.
Data is only accessible by Users and/or Applications that have been authorized to have access.
All actions of a User interacting with our applications can be traced.