Lets say a bug is found in your system and you are able to reproduce it (what), isolate and study the code containing the badness (how) and produce a patch for it. Bug fixed, problem solved, right? Not really, because we don't know why it happened, so we didn't really learned anything from this. The point is to do it better next time and avoid the problem in the future.
This is where root cause analysis, RCA, can help. In short, with RCA you work your way backwards from the problem statement and ask "why" enough times until you end up with something that seems to be the real cause. In this case, it might be that the database abstraction they've been using is too complex and they should use a more straight forward approach.
This might result in a discussion about values like simplicity and concepts like meaningful abstractions, which in turn can be a new point on the definition of done list: "Is the code simple enough?"
Turning RCA around
First brainstorm quickly with your team around "What characterizes a great team?". You might end up with stuff like regular deliveries, stable velocity, shared goals, conflict management etc. Don't go too deep here. Stop when you have a handfull of phrases like that up on the whiteboard. This sets the context for the next step
Now run a RCA starting with the statement "This team produces great results" and ask why? several times!
This may go completely out the window if the team is not confident or mature enough, but I'd like to think that something like the following should be the result of this experiment:
"This team produces great results!"
- Why? Everyone focuses solely on team success and are able to put their own personal agendas aside
- Why? They call out each others bad behaviors when someone breaks the rules and decisions
- Why? Everyone commits to and understands the goals and are confident in the teams decisions
- Why? All opinions and ideas have been vented and argued so no-one feels left out
- Why? They are mining for potential conflicts and are not afraid to passionately question ideas even though it might be uncomfortable
- Why? They use unfiltered, honest dialogue to reach the truth rather than as a way to win arguments or push ideas for political or personal reasons
- Why? Team members trust each other knowing they can be open with their fears, mistakes and shortcomings without having to risk any kind of retaliation
The major breakthrough in this exercise is when (or if) the team reaches the root cause "trust" and it dawns on the them that trust is, without doubt, the most important characteristic of a great team and the first solid stone to success.