“Fail fast” is a common motto in tech – especially in the startup world. It’s celebrated that you failed fast, and that’s a positive thing – as long as you know why.
Unfortunately, it’s been parroted as a mantra for so long that a lot of people don’t seem to understand the reasoning behind it anymore. I’ve known a number of people in tech who seemed to think that the point of failing fast was that you failed…
I’ve always kind of boggled at that. I realize that, if you repeat something often enough, it has a tendency to lose meaning, but still – in what kind of world does that make sense? “Yay! We failed. Let’s do it again and light some more money on fire!”
The point of Fail Fast isn’t to fail – it’s to realize that you’re doing the wrong thing as early as possible and adjust course. It’s a way of cutting down on the size of your problem space with a minimum of effort and resources (time, money, etc).
The reason a company or person wants to fail fast isn’t to fail. It’s so they can succeed. The faster you realize you’re doing the wrong thing, you can stop doing that thing, figure out why it’s the wrong thing, and decide what a better approach may be. Then you repeat that cycle.
Eventually, you should find something that works. It’s not failure that’s being celebrated – it’s learning.
In a startup (or even an established business if you’re launching a new product), you may throw a whole lot of features at the wall to see what people actually want and are willing to pay for. A lot of those will be dead ends and you shouldn’t keep spending money, time and effort on them when you figure that out.
If you’re trying to solve a technical problem, you may have a number of approaches in mind that might work. Chances are that you’ll try at least a couple of them before you find one that both works and falls within the budget of time/money/effort that make sense.
As an aside, this is part of why “reusable code” is starting to fall out of favor and is being supplanted by “replaceable code.” Sometimes (especially in startups), you just need to rapidly prototype something that will work for now and then replace it with something more performant later when you’ve got the time and funds to do so.
What you don’t want is for some manager or group to keep going with an idea what is obviously not going to work or provide the value that you need just because they’re afraid to say “this isn’t going to work” or because that’s what they think you want.
This is why the emphasis is put on failing fast.
I once worked for a manager who I asked point blank what would happen if the approach didn’t work or the deadline wouldn’t be met – in other words, what kind of contingency plan we had. His response was that he didn’t give people that option because, if he did, they wouldn’t meet his demands.
That’s the wrong damned answer. For so many reasons.
Failure is always an option in business. In fact, with any given implementation, it may be a better option than succeeding with what you’re trying. If, during the course of working on something, you find a better way to achieve the business value you want to provide and it will take the same (or less) time, cost the same (or less) to produce, and be of a possibly higher quality or be more sustainable, you should really think about adjusting course.
Pulling the macho “failure isn’t an option” BS is just you being insecure and trying to look good to your higher ups because you’re “a strong leader.” (This doesn’t actually make you a strong leader and, if it does make you look better to your higher ups, your org has more problems than we have time to unwind here.)
Being open to people telling you “this isn’t working and here’s why” is not only the sensible approach, but is actually a sign of real leadership.
Yes – be open to an approach failing. Don’t make the point of the exercise to fail, though. The point is to figure out what succeeds as quickly and cheaply as possible and that requires having a learning/growth mindset and being able to admit that you’re approaching something in the wrong way.
So go out there and try things. Learn from the things that don’t work, and try to realize that they aren’t going to work sooner rather than later. Fail fast, figure out what went wrong, then get it right.