In any software project, the goal is to create something stable.
We don't want it to break in front of a user. We also don't want our website to show an "internal application error" instead of a web page.
We want our software to work, not fail.
That's a perfectly valid and logical desire, but in order to achieve that, we have to make our software as fragile as possible. This may sound counter-intuitive, but that's the way it is.
The more fragile your app is in development, the more robust it is in production.
I will demonstrate, with practical Java examples, what Fail Fast means and how it helps us make software more stable.