I started my breathing, er, reading time today by digesting this post by Matt Zimmerman which analogizes (quite effectively) reading and writing to breathing air. His comment on deep understanding through sharing struck a cord with me.
I believe this is a key component of human interaction and the way our brains work.
When inside our heads, we condense information into shorthand. An Ubuntu developer has a deep understanding of what “maintainer scripts” means, and so we just use that term in our head as an assumption. When we make these assumptions, we must consciously decide to challenge them, and often then we challenge them with other assumptions.
This also leads to “groupthink” as he calls it, where a group of similarly trained/experienced individuals start to share ideas, but they keep the shorthand, and can’t understand why their idea goes in circles.
Divergent thinking, and true understanding, only come when an outsider, a novice in the field, enters the picture. These assumptions must be explained, and in the process, often our own brain is going to re-evaluate the assumptions naturally.
This is why failure leads to understanding. As upon failure, you must explain to those holding you accountable why you failed, which often gets you the “aha!” moment that you missed because you worked so hard in isolation.
I think this is the reason that community driven, open source development produces high quality software. Two years ago my C++ was pretty rusty, and I started modifying code in the Drizzle project based on their documented guides. It turned out that my novice questions exposed a few ambiguities in the guides, in their blueprints, and in the way they were thinking in general, exacting some changes and (hopefully) producing higher quailty software. In a less open minded project, I’d have been cast aside as a distraction or an annoyance, a road block on the way to the end goal.
So, the moral of the story is, meet confusion not with more deliberation and furrowed brows, but with a bull horn and wide open arms. Meet failure not with shame, but proud explanation. Find somebody who doesn’t know anything about what you know, and tell them a story. Listen to their questions. You might just figure it out..