ThoughtWorks University: Balancing spoon-feeding and encouraging self-sufficiency
I'm finally back in Bangalore realizing a secret goal of becoming a TWU trainer after going through the program as a grad myself 5 years ago. It's been an extremely enriching and eye-opening experience so far and I'm learning a lot about my strengths and shortcomings. I'm constantly amazed at how well the current team of trainers are gelling and working off the same page for the most part.
The group is reaching the end of Week 2 of the 6 week program and we're all getting ready to start a proper software project. One of the things that I have been consciously trying to get better at is knowing when dive in and fix a problem I see happening, and when to step back and let the grads figure it out themselves, and if there is an in-between. I find it very difficult to not do anything when I see something go wrong and in a learning environment it is obviously detrimental to a person's learning process if all the problems are shielded from them.
One approach that I'm currently trying is to only step in if it's a quick fix and it's something that I can show them in less than 5 or 10 minutes. If it takes any longer than that, then I will discuss with them the ways I would go about solving the problem and take my hands off after that, or just ask, "Did you ask Google?"
Let's see if this works or if I remember to do it at all!
Pairing: Engaging your R-mode
In his book, Pragmatic Thinking and Learning, Andy Hunt describes the 2 different kinds of processing in your brain, L-mode or linear mode, and R-mode or rich mode. R-mode is behind intuition, problem solving and creativity while L-mode enables you to work through details and make things happen. He believes that to use your brain to its full potential we would want to unleash your R-mode and give it free reign. However, this is physically impossible because when the L-mode is active it actually blocks the R-mode from doing its job.
When pair programming, one person is typically called the driver and the other the navigator. One of the purported benefits of pairing is that it technically should speed up the solving of difficult problems since 2 heads are better than one. Hunt articulates a strategy of pairing that actually does help illustrate how it helps problem solving when done right.
An interesting way to get L-mode to work with R-mode is to use another person for the other mode. In other words, have your L-mode work with another person's R-mode or their L-mode work with your R-mode.
-- Andy Hunt.
Why this works well is because while the driver is engaged in L-mode at a particular level of details (i.e. trying to write a failing test, or write enough code to get a test passing) the navigator is able to engage in other non-verbal matters (i.e. think about the what the next test should be, or how the design of the code fits in the larger picture, or if there are any loop holes they can spot at this point, etc).
I thought this was a great visualization of the benefits of pairing.