The Google Plus logo

Code Club

This post was written by Johnathan Castle and first appeared on the Epic blog on 27th September 2013.

code clubWhen a new developer started in my team, I wanted to make sure I put enough time and effort into their mentoring and induction, so that they felt as welcome as possible. With that in mind, I offered them a deal. We’d spend one lunchtime per week going over some of the more advanced elements of JavaScript used in our code, so they’d be able to hit the ground running as quickly as possible.

While a lot of the web doesn’t rely on too much JavaScript, e-learning code bases tend to rely on it quite heavily. The degree of interactivity our clients expect, not to mention the plethora of operating systems and devices we’re called upon to support, require us to stretch the language towards its boundaries.

Within a few weeks we’d covered off a reasonable spread of it, including persuading a few other developers to spend a lunchtime or two explaining their particular specialisations (I’ve never had much of a head for regular expressions!).

Over the following months, this evolved into doing some paired programming. I had an out of hours project to automatically document JavaScript objects, tracing their relationships and inter-dependencies. We picked this up and covered a good stride of ground in getting it finished; though the main goal was to share practical development experience and patterns.

As is inevitable with such things, we both ended up doing our fair share of learning. There’s nothing like inquiring minds asking awkward questions to make you think about the thing you ‘knew’ from different angles!

All in all, I found it an extremely rewarding experience and one I’d recommend to anyone in any walk of life. But after a while, I found there was one thing nagging at me. Epic has many developers, and yet we were the only two people benefiting from this exercise… and the solution to this problem? Code Club!

I spent a while mulling over the possible ways it could work. I had a fair few chats with fellow developers and the management team. Finally I sent an email to the programming team, inviting people to give up their lunch hours in exchange for sandwiches.

There were a number of goals outlined tacitly in the email:

  • Knowledge transfer
  • Tools development
  • Technology exploration
  • Team building
  • Fun development

Firstly I wanted the idea of knowledge-sharing and mentoring, with all the associated rewards, to spread out among the development community at Epic. Of course we all share tips and tricks with each other and help other developers out with particularly taxing bugs. But getting something slightly more formal in place could only be a good thing!

Next, there’s always a spread of internal projects and improvements that could be done within a company. Finding the time and budget to get such things done, not to mention the distractions of a production environment, makes for no small challenge. So it made perfect sense to focus the output of Code Club on something that could ultimately benefit the company as a whole, though more on that later.

Another thing that’s always a challenge to any developer is finding the time to investigate new technologies and frameworks. We can’t do this on client projects as it  adds unnecessary risk. Downtime in a production environment is generally rare, so that makes for a rather disconnected and ad-hoc approach. It’s also a difficult thing to do in a vacuum; motivating yourself to explore new approaches is challenging without a goal in mind!

Of course, having a group of us exploring something makes it more fun and much easier to get into. Given the multidisciplinary team-based structure at Epic, there is always room to improve knowledge-sharing between the different developers and development disciplines. Something like Code Club seemed like a great way to foster a social connection among the disparate groups of developers in Epic.

Finally, it seemed like a great opportunity to have some fun! No matter how much you like your job, inevitably project work is going to be a chore from time to time; that’s why it’s called work. Getting to work with new technologies, different languages and new tools is something I find fun and I think most other developers feel the same. Having a chance to contribute to a nice meaty bit of new functionality, that isn’t the standard set of patterns you use from day to day, is also a nice treat.

So with all that it mind, the suggestion was sent to the development teams at Epic and the results were fantastic and far beyond my expectations.

For the last 19 weeks, at least two thirds of all developers at Epic have given up a lunch hour to do Code Club. More than that, groups have been staying late or working at home on the evenings.

What have we all been working on? Well that’s a story in and of itself…look out for my next blog to find out what exciting new things Code Club has achieved!