The Missing Course: Fail Fast
For fewer insects nibbling at the codebase
This is an article in my continuing series on critical subjects in Software Engineering that were not taught in my daughter’s university — her at times poor experience is the reason why I wrote these.
Basic knowledge of programming is assumed — what is a compiler, a statement, a variable. I am trying to introduce SE terms in context, without unnecessary jargon — these articles are designed for people at the forward arc of their learning, not so much for long-time practitioners. If you are new to this series you may want to start here, at the beginning. Or not — it’s your journey.
Fail Fast is my #2 principle — a fundamental underpinning of software engineering that should be incorporated into all development processes. The basic idea is you want to fail (expose your errors) as fast as possible. The first principle (in The Secret to Software Engineering) is how to design to prevent problems. Fail Fast is how to deal with those that slip through.
Below are examples — there are many other techniques, I’m just scratching the surface here — but these will illustrate fast fails : type safety, lint, assert, continuous integration, and iteration.