One of the things I have grown to enjoy over the years is mentoring people. It has felt like a very natural extension of the many years I have spend doing conference talks -- find people who are struggling to learn a concept I am familiar with, and then guide them through solutions. It's a very hands-on experience for me, and it provides me with an outlet to keep my programming skills from completely atrophying.
Back in March I got an email from Stefan Koopmanschap asking me if I was interested in participating in WeCamp later on in the year. After a quick check with She Who Must Be Obeyed flights were booked and plans were hatched.
WeCamp is a very unique experience. Code retreats, where you get a group of programmers together in a somewhat-isolated environment to work on something, are rare enough. I've participated in a few while at Mozilla, so I have a firm understanding of the underlying principles. WeCamp spins that a little differently by putting people on a private island in the Netherlands where they are actually camping (albeit with beds instead of sleeping on the floor of the tent).
I've been camping before, but not in at least 20 years, but I didn't think that would be a problem. Instead, there was the issue of what I was going to be doing as a coach. I had an idea of what a coach might do, but not sure exactly what would happen. Luckily, we had a Coach of Coaches in Jeremy Coates to guide myself and the other coaches (Steven de Vries, Michelangelo van Dam, Jeroen van der Gulik, and Juliette Reinders Folmer) through what we should expect and how to handle some rough situations (more on that later).
We were all assigned teams, the other campers showed up, and we got to work. And despite what you might think, it was actually work for the coaches too.
In my role as a mentor, I am used to being very hands-on with folks -- after all I am here to help and share what I know! But coaching is a very different thing. You are expected to help but definitely not step in and do the work for them.
My team did ask me lots of really good questions and I was happy to share my thoughts on a whole bunch of topics. My answers also surprised some of the team members because of a phenomenon I call "social media dissonance" and is entirely 100% my fault.
As someone who has spent A LOT of time on social media building up a brand to wrap my programming-related activities around, it's natural that people assume what they see me do on Twitter is how I am 100% of the time. To be clear, I am simply exaggerating certain traits of mine for fun and to build up a consistent marketing message. But I am not my Twitter account - it is part of me but not all of me. People see me, a very physically large white male with some very strong opinions on things, and assume it's going to be confrontations and yelling from the get go. That is not who I am, but that is the message I pushed for many years. Anyone who meets me in person and interacts with me for more than 30 seconds realizes what Twitter performance art is really about.
So when people asked me questions related to testing during the code retreat they were surprised to find that I was not immediately bellowing at them to write tests for everything. Look, playing the character on Twitter can be a lot of fun, but at the end of the day I am a real person dealing with real situations. One of those is what to do when you are prototyping things as part of a code retreat. Tests are nice, but until you have decided exactly what you are doing writing tests might be a distraction. Figure out your approach, your API, your interfaces and then break out the TDD and build stuff.
For the most part I valued the experience -- helping people reach higher levels of skill (technical or otherwise) was the goal. I watched for tension between team members, I got them water and snacks, and I worked very very hard to stay out of their way but be there when they needed something from me. But it wasn't all good.
One of the campers on my team was not having a good time -- they were struggling with a lot of personal and professional issues. In retrospect, the type of help they were looking for was not going to be provided at WeCamp. A discussion happened at one point where this camper expressed their frustration at some professional setbacks and was determined to not accept any feedback that contradicted their own opinion. I attempted to provide some calm, constructive feedback on better ways to handle the emotional side of such setbacks, and it culminated in the camper storming out of the yurt we were working in and leaving the team.
This was definitely not what I was expecting.
Luckily there was a good support system in place both for our frustrated camper and our stunned coach. In the end, the camper was given the freedom to work on other tasks and I just stayed out of the way as to not run the risk of another inadvertent confrontation.
In the end, my team got their application up to Minimum Viable Product status, integrated our lost camper back into the presentation, and I am very proud of the work they done and left them a lot of new things to think about. There is also a commitment for follow-up conversations in November to find out how they have been able to apply their experiences at WeCamp to their lives (both personal and professional).
See, part of the purpose of WeCamp is to give people a chance to set some goals that will push them out of their comfort zone. My team members got a chance to do some of that -- some with more success than others. But they definitely embraced the idea of "willful change" and that part alone made it worth it to me.
Despite the blow-up with the frustrated camper, I enjoyed the coaching experience and would not hesitate to do it again. As for WeCamp itself...I am not sure that I would get a lot out of it just as a participant. My goals are moving towards non-coding territory and something like WeCamp is not a good venue for working through those.
If you're looking for a very unique experience and a chance to push some boundaries as a coder, you should check out WeCamp and code retreats in general. They offer some very unique experiences in an environment geared towards providing you with the support needed to make the cost of failure almost zero.