If it’s a good idea and it gets you excited, try it, and if it bursts into flames, that’s going to be exciting too. People always ask, “What is your greatest failure?” I always have the same answer: We’re working on it right now, it’s gonna be awesome!
— Jim Coudal
Too many people attempt to improve an inefficient process by adding more process. The thinking goes that if we just shield ourselves from the fickle whims of our customers then somehow they will be happier with our work. Quality control becomes someone else’s responsibility.
This philosophy starts with the best of intentions. Rapidly scaling an organization puts pressure on the growing team to avoid mistakes at any cost, instead of embracing a method for identifying and quickly fixing them. It’s human nature to only show our very best work to the world.
Fear of rejection creates a perverse incentive to delay and distance ourselves from anything that causes stress. This coping mechanism is the result of powerful evolutionary forces, and not easily counteracted. To err is human, but to really screw things up you need a whole team of people all following a process.
The solution to this was supposed to be adopting an incremental lightweight approach. Agile came onto the scene with utopian promises of increased collaboration and individual empowerment. The problem is that this runs counter to human nature as explained above.
We need to fix the people problem before attempting to fix our process problems.
Many “agile” implementations are rebranded versions of the same processes we’ve always followed, particularly in larger organizations. We redefine “customer” to include invented internal roles that act as intermediates rather than those who actually depend on our work for their own success. Your customer should desperately need to use what you deliver to them regardless of who makes it. Anything else will result in a fundamentally flawed feedback mechanism.
When I first set out to write this, I was focused on software development teams. Then I remembered a talk from one of my favorite video game music composers. Mick Gordon explains how the people and environment surrounding him encouraged creative new ideas that served the needs of the project over his own personal preferences and instincts. The award-winning results speak for themselves.
One quote from his talk in particular struck me as profound:
A team that encourages an environment where you feel comfortable in failure will enable you to thrive.
This directly aligns with my thoughts on software development paradigms, except in a different creative profession. This is the part where you notice the language I’ve been using has been more generic and broadly applicable than it first appeared. The people problems explored earlier exist at a macro level for whole organizations and also at a micro level for each individual. The solution to the former problems begins with the latter. It starts from within.
As humans, we would rather keep following the same processes we are comfortable with and focus on small optimizations at the margins. If we perceive a process as having worked before, we believe that repeating that process will give us the same success again. Sometimes in order to make real, meaningful change you must set all that historical baggage aside and reinvent your process from scratch instead of tweaking what you already have.
Change the process, change the outcome.
This is very difficult advice to follow. We are programmed on a very deep level for inertia. There’s a strong bias for repeating what has worked in the past. Luck begets success begets tradition begets “best practices”. True innovation is in short supply.
There’s nothing quite as satisfying as a sustained winning streak. Nor is anything so incredibly dangerous. Success has a powerful reinforcing effect that encourages repeating past behavior and discourages trying new things. We can’t know our true limitations until we push them to the point that we fail. That is how we as flawed beings grow and improve ourselves. This applies equally to mental and physical challenges. One doesn’t know how much weight they can lift until their muscles fail when attempting to lift too much.
As with exercise - challenging your mind with problems just beyond your abilities will cause gradual improvements over time. The key - is to know what challenges are just out of reach - and what lessons to learn from failing to accomplish them. Once you or your team have established an achievable baseline of difficulty then it’s time to slowly but steadily ramp that up to test your limits instead of resting on your laurels.
Failure is simply the opportunity to begin again, this time more intelligently.
— Henry Ford
When you are fortunate enough to hit the ceiling of your talent by failing, it’s vital to use that opportunity for maturing. One potential lesson is that practice will make perfect and you will grow by persevering doing the same things. Another possibility is that you lack certain knowledge or skills and the best path is to pursue further education or mentoring to reach the next level. Then there’s the most difficult lesson to learn - that you set the wrong goal to begin with - and you should abandon it entirely to do something completely different.
There’s no shortcut for learning any of these lessons. The best you can do is learn them but once. The only way to attempt avoiding failure is to stop pushing yourself to do harder things. That level of complacency is comforting to some, but unacceptable to me. Success in mediocrity is hallow and unsatisfying in the long run.
To win big you must be an accomplished failure.
If you’re not willing to fail incrementally and often, be prepared to eventually succeed at failing catastrophically.