Highlights from ”Past the Tipping Point: The Persistence of Firefighting in Product Development” by Nelson Repenning, Paulo Gonçalves, and Laura Black.
Unplanned allocation of resources to fix problems can switch the entire company to epidemical firefighting and organizational pathology. Even a temporary increase in workload can initiate the firefighting dynamic and cause a permanent decline in system performance and health.
*snaps into place when pushed beyond the tipping point or threshold
*drives out disciplined and more structured (development) processes, becoming the (development) process instead
*can significantly degrade an organization’s ability to create high quality products in a stable, predictable, sustainable and resilient way
*is a self-reinforcing syndrome with a tipping point, and is, therefore, fragile
*is hard to recognize (its symptoms), causing corrective action to be taken too late
*comes very naturally
*be an innovative, competitive, stable, predictable, sustainable and resilient organization;
*stay clear of the tipping point when you are on its productive and innovative side;
*get close to the tipping point a.s.a.p. when you are in firefighting mode, and then nimbly nudge it over;
To avoid firefighting to become a company-wide disease:
*Discourage, ignore or penalize heroism and heroic behavior.
*Use a boom buffer with a clear policy and managerial impact when excepted.
*Keep current tools and technology, avoiding time needed to invest in learning them that (temporary) lowers productivity
*Have a laser focus on top quality for product, process and people as lower quality will push the organization into the death spiral of declining competitiveness, reduce revenue and future innovation.
*Do root cause analysis and resolution of the top problems. Just postponing problematic projects does not prevent the spreading of firefighting, it just pushes them downstream to bite you next year, and probably harder.
*Perform aggregate resource planning to prevent fires.
*Reduce the number of parallel products or projects—so bring focus.
*Avoid full utilization of human assets. Cherish slack resources as a buffer against uncertainties (also see boom buffer).
*Aggressively cancel failing projects early.
*Revisit the product plan instead of trying to catch up.
*Do not rent or steal people from or lend people to other parts of the organization as it might start a fire.
*Reduce workload effectively to stabilize the system, e.g. by skipping a model year altogether.
*Do fewer projects and cancel more.
*Put a strict (Work In Progress or WIP) limit on many or all parts of the value stream, and use those to maximize flow.
*Undercommit and overperform.
*Uphold a strict policy of only accepting finished, done work. Mercilessly reject any unfinished work and loose ends.
*Perform thorough up-front work. Make policies and admission criteria to pull something into the next step crystal clear. This will:
**increase the likelihood that the item will get done in time;
**reduce or avoid the need to cancel it later;
**make owners face strong incentives to invest in the early phase activities and develop clever ways to demonstrate the efficacy of a proposed product far in advance of its detailed design.
All this resonates with agile, scrum, lean, and kanban.