All of us have failed more than once in our lives, at a personal level, professional level or both. I myself have learned a great deal from my failures in life. The best lesson though has been, is no matter how hard you try there is a chance that you will fail, and the best thing you can do is embrace when that happens. Get up, make sure you understand what went wrong, and try to not make the same mistake again.
It's the same when it comes to organizations. A lot of organizations want to be innovative but they want to punish people when they fail, which is counterproductive for innovation. Good innovation only comes when your team is not afraid to fail, when they know they can push the boundaries without worrying about what happens if they fail.
So, how do you build a culture that supports innovation and embrace failure ?
Teams don't succeed or fail because of one person
When a team fails, more often than not it is a collective failure. So, trying to find one person to pin it on is the worst way of handling failure. The sooner you understand this as a leader, the faster your team can move on to being a high performing, innovative team.
A good example of this is, when say the team pushes a software release to production which has a bug that got missed. Generally, everyone is quick to pin it on the QA engineer, or the developer who worked on it. But, if you think about it, first the developer who wrote the code didn't take care of the scenario, then the person who wrote unit test cases failed to identify the scenario, then the person who reviewed the code failed to identify the scenario, and then then the QA engineer failed to test the scenario. Whose mistake was it ? Everyone involved in the process.
You as a leader have to build a culture, where the whole team accepts responsibility for a failure. So, why can't most organizations and teams do it. Simple when something fails, they get into a blame game !!
Stop the blame game, introspection is more productive
The first thing to change is get rid of the blame game. It is a waste of time, and builds a toxic culture. It builds a culture where no one wants to take ownership, and everyone is trying push the hot potato of their plate.
Also, this culture leads to people hiding their failures because they are worried about the repercussions. And, by the time you as a leader find out that something is wrong, it might be too late to fix things.
Instead, create a culture where the team introspects each failure, documents it and learns not make the same mistake again. This makes sure that with time, you iron out major issues, and become a better, more innovative team. It also leads to more collaboration within the team, because everyone is focused on the goal without worrying who will be punished if they fail.
Reward efforts, not just outputs
Another thing to understand is that just because someone failed a few times does not mean their effort is less than someone who did it in less tries. You have to build a culture of rewarding efforts, and not just outputs.
Now, this is not a very easy thing to do, because you have to build processes around measuring effort, along with output. But, trust me that effort of coming up with the right process and tools, will pay off in the long term. It will lead to people picking up even the hardest tasks without hesitation, because they know their efforts will not go in vain even if they can't get the desired output.
Also, when you only reward outputs, you are sending a message that don't pick up something where you are not sure of delivering. Innovation, does not work that ways, and also change is inevitable. Every team, big or small will encounter a scenario where they will have to look at doing something they have never done before. More often than not, teams that have the culture of rewarding efforts and not just outputs will succeed at embracing this change.
Track Learn Optimize
Next part of the process needs to be a robust mechanism to track, introspection meeting outputs, and learnings every time you encounter a failure. This helps in obviously making sure new members of the team know the pitfalls and old members do not repeat the same mistake. But more importantly, for the team to identify process gaps, and places where you could do more optimization either by process, or technology to make sure you avoid those issues.
A good example of these are coding standards, and static code analysis during the check-in process. Those are common places where programmers make mistake, and by optimizing the process and tailoring it to your product you can make sure that mistakes are not repeated.
As you and your team get better at this, you will see faster onboarding times for new members, reducing common pitfalls and an increase in overall productivity of the team.