Tuesday, 4 October 2011

Context is Key

I recently spent four months as trainer at ThoughtWorks University, which is the graduate training programme for ThoughtWorks. It is a six week programme and I was a trainer for two terms. One of the key learnings I had while there is the value of context and the danger of assumptions!

During the programme we spend four of the six weeks on a real project which at TW is described as an SIP (Social Impact Programme). On the project as well as being a trainer/coach I played an unofficial tech lead role, while the grads got up to speed. One of the things I noticed very early is the grads assumption of my vast knowledge of the application and code base we were working on and therefore when ever they asked me any questions they rarely gave me context. I spent a large amount of my time asking lots of questions about what the hell they were on about. Often people would walk right up to me and just start explaining some very specific piece of code wasn't working. I'd often be thinking "What the hell are you on about?", as I quickly tried to change context from what I was working on with my pair before I was disturbed.

I quickly gave feedback to the grads about the value of context and tried to determine what their assumptions were. What I discovered is that having just finished university they were quite used to being given a piece of work to do (an assignment) in which the lecturer probably had seen a hundred times and was well aware of the amount of ways it could be developed. However, when they were given a story, myself as the tech lead and NOT the lecturer wasn't a 100% sure exactly how the problem would be solved, that is often down to the pair working on the story. So whenever the grads came across any issue or weren't sure what to do next, they would ask me questions with the assumption that I already knew how to solve the problem and it was their job to figure out THE solution. When they got stuck they wanted to know the next step. So they would blurt out where they were stuck and I would spend most of my time trying to get context and some understanding of their proposed solution. Often what would happen is the rather enquiring 'cardboard programmer' (me) would keep digging until they actually came up with the solution themselves. So although it wasn't a completely invaluable exercise it was a little frustrating for me so I believe it is really important to always give context. Even if you assume that the other person does know what you are talking about if you assume they don't and always give context, they will tell you if they already know what you are talking about. Erring on the side of caution is always best to get the most value out of the question recipient. Often they will become a 'cardboard programmer' but regardless context is key and I found the grads became much better developers just by learning to give context. As this helped them understand their solution better and what they were trying to achieve. It isn't just important when asking questions but also when continuing a story with a new pair. But this isn't just a lesson for graduates, through this I have become better at giving context as now I appreciate the real value a lot more.

I'm sure there is even more value in giving context, which I would love to hear :)

No comments: