Avoid firefighting at all costs in production systems
Referring to maturity stages, a project can be in one these stages – planned, minimal, viable, complete or loveable. Once the project is in a viable stage, the project is basically in production.
We need to be very conscious of working with production systems. Most of the systems that we are working with are no longer POCs. They are in use by someone on a day to day basis.
We can’t afford downtimes on a production system.
People lose trust in a system rapidly when there is downtime… This image is a graphical representation of that.
There is no point in having a feature-rich system that is not reliable or trustable. Trust is hard to build and easy to lose.
First, we need to be paranoid enough to avoid downtimes as much as possible. Secondly, when that occasional downtime happens, we need to be paranoid enough to respond to that ASAP.
Doing 2 without doing 1 is also pointless. Then you are constantly fire fighting.
On average, 1% of your time should be spent on firefighting, 50% of your time spend on reliability, and 49% of your time spend on feature development. If your time split is anything other than this, we need to talk.
Projects in viable, complete and loveable stages of maturity are considered to be in production. The importance of this attitude towards projection systems is more required as we transition from viable to complete and complete to loveable. Remember – no one loves a system that can’t be trusted. Extreme reliability is a necessary but not sufficient condition for a loveable product.