The person who says he knows what he thinks but cannot express it usually does not know what he means.
Richard Feynman, like Adler, knew that there's a difference between knowing something by name and knowing something. When asked by a fellow scientist to explain a complex theory, his response was "I'll prepare a freshman lecture on it." A few days later he told that scientist that he couldn't do it—that he couldn't reduce it enough to the point that he could teach it to a beginner. Speaking of the subject, he concluded "That means we don't really understand it.".
Feynman understood better than anyone the value of teaching, and developed his own technique, which helped him gain a deep understanding in an area of interest.
We work in an industry where we have names and jargon for all sorts of things. In some cases we have multiple names for the same thing. Shallow learning (knowing things by name) is far more common than deep learning (knowing things).
At 8th Light continuous learning is an ongoing process. It's a process that involves both shallow and deep learning, and we constantly look at ways to pursue and practice both. Teaching is one of the foundations of this process.
One thing we started doing at the London office that has proven successful is Zagaku. Every morning a crafter or an apprentice will teach a topic for 20-30 minutes to the apprentices. This approach has several benefits:
- Learning happens on both ends (crafter & apprentices)
- Apprentices get to learn about fundamentals and/or things they do not understand clearly
- It provides a safe environment to ask any questions
- Teaching provides a platform through which to gain deeper knowledge
- Apprentices provide the content for the next sessions with their questions
The Debating Society
Another thing we attempted was The Debating Society, which ran for a while. The idea was based on the standard debating society model. A topic would be chosen and then two people would debate over it—one making the case for, one making the case against.
A topic at the time was "Optional Typing in Ruby is Bad". We would normally have the person who was in favor of this idea arguing against it. The goal was to push that person to explore the alternative, the thing they didn't like much, and in the process gain a new perspective.
Despite the fact that some interesting discussions resulted from such debates, often we struggled to find topics that would be suitable for such a debate and were also interesting enough for people to engage in. A lot of them were fairly generic, which made focusing on learning and understanding a specific topic difficult.
On a couple of occasions we also attempted to establish a regular book club using different variations (must-read papers, books etc). We tied this back into teaching by having the participants take turns presenting the ideas of each chapter as the group progressed through the book.
A book we worked through was "Seven Databases in Seven Weeks". Our goal was to essentially scratch the surface and expose ourselves to some of those databases from a high level. The objective was "understand it enough to be able to explain the basic principles".
The initial excitement and commitment faded away fairly quickly though, partly because people tend to process information at different speeds and in different ways. This meant that one person (usually the person who suggested the book) would end up doing most of the chapters—and though that worked for one person, it didn't scale well with a group. There might be a formula that works for a book club, but we haven't found that just yet.
8th Light University
Another ongoing initiative that has worked for us is 8th Light University, which encompasses a variety of things. This takes place every Friday, and involves some or all of the following:
- Performing katas
The above can be seen as different arenas for teaching where a crafter or an apprentice can step into and perform something they spent a good amount of time learning. Unlike the ancient Roman arenas, these provide a safe environment for people to explore and demonstrate their knowledge. Feedback is always provided after a performance, and stepping into that arena is already considered a success.
Something we often found helpful in this process is providing a crafter or an apprentice a topic they can work on. Most people, including myself, struggle when it comes to finding an interesting topic to talk about, and doing it this way helps solve that problem.
Teaching is constantly present within 8th Light, but never more so than in the apprenticeship.
In his seminal work "No Silver Bullet", Fred Brooks says that one of the key actions one can take to tackle the complexity ingrained within software is "identifying and developing the great conceptual designers of the rising generation". He then goes on to describe what is essentially an apprenticeship and the importance it plays towards the above goal.
An apprenticeship is not a one-way road, though—the apprentice is not the only one who benefits. The mentor also benefits greatly through teaching. An apprentice will often help illuminate the blind spots and gaps in the mentor's knowledge by asking questions that she or he might not be able to answer clearly. These are opportunities for the mentor to improve and learn.
We emphasize the importance of this and encourage our apprentices to seek the same opportunities when teaching others. They also get to be mentors and teachers by going to events that are attended by people learning how to program, such as codebar.
I teach. What's your superpower?
Being able to teach something in a simple and clear manner indicates deep knowledge. Not only can it help you reach a deeper understanding on a topic, but it also enables you to improve the people you work with and the community you belong to.