What it is: Fail-Fast, rather than being a specific technology, is a business philosophy, combined with a style of process. An innovation team that “fails fast” is one which expects some things to fail, but has mechanisms in place to detect failure and learn from it.
What it does: The point of Fail-Fast isn’t to fail more, or embrace failure, but rather to recognize that some failure is inevitable, particularly in high-innovation environments. Forward-thinking organizations can address this inevitability with processes that mitigate the costs of failure and effectively capture lessons learned. Fail-fast usually involves both technological changes (different testing methodologies, code that’s built to be highly testable) and cultural changes (a shift away from a culture of blame to a culture of learning).
Why it matters: In the era of digital transformation, enterprises need to be more responsive and better able to seize new opportunities, for example in terms of how they use technology to develop innovative solutions, or how they engage more closely with an increasingly demanding customer base. Implemented well, a Fail-Fast approach can make an organization more adaptive, intelligent, collaborative, and productive.
What to do about it: If your organization wants to be serious about innovation, it should embrace the cultural changes required to accommodate the potential for failure, and learning from mistakes. Examine procedural and cultural barriers to experimentation, learning, and iteration, and consider organizational models that empower innovation.
- Increases upsides of (inevitable) failure in an innovation environment
- Promotes innovation by reducing risks of experimentation
- Fail-fast measures can be difficult to integrate with existing innovation processes (e.g. DevOps)
- Requires moving away from a culture of blame to a culture of constant learning
- Cultural and procedural shifts may require focused management initially
Fail-Fast, as a term, has been dilated in meaning. It originated in business but is now commonplace in development, where it refers to the production of code that’s designed to fail visibly as quickly as possible. The term has been both regarded as inspirational and derided as empty-headed: as above, the truth lies in being able to measure the causes of failure and learn from them.