Get Out of Your Silos

Get Out of Your Silos

As we were trying to assess and triage I had asked the team what sorts of problems customer service had been reporting. Shockingly none of the developers, save for perhaps the lead developer who was temporarily leading the team knew anyone in customer service, and even he only knew the two customer service leads.

Schooling the Teacher

18 months ago I finally hired co-op students out of the University of Waterloo. Waterloo has set up a fantastic program. Typical university internships are a year long and were challenging to join and recruit. Waterloo established an extremely efficient online process and remote interview process. Even though we were late in the season we hired two co-op students that were fantastic. Both were hard working and quick learners. The program allows you to have them rotate back on staff after they complete a semester if both parties agree it’s a mutually beneficial relationship so they come back with more experience from the University and can get quickly up to speed again with your team.

Cheaper labour is the obvious advantage most companies would see in hiring co-op students or interns. A good student will get up to speed quickly and is often eager to put in the work. I would caution managers to not assign grunt work to interns though. I would encourage them to pair the interns with intermediate and senior developers. 

Pair programming can sometimes be viewed as a waste of resources because it tasks two employees for one job. But as I’ve found, periods of pair programming can be extremely beneficial for both people involved.

Recently I brought on a high school student I was tutoring for part time work. The learning curve is steep as they have almost no experience in software development aside from their computer science course but there was an interest and a talent that I thought could be explored with some guided experience. I’ve been pleasantly surprised at the things I’ve learned.

For one hour, three to four times per week we have a remote training session where I’m doing live development on a real product or guiding them through the process. Recently I was running into challenges and bugs trying to integrate new Javascript libraries into a new version of the Ruby on Rails framework. 

Teaching forces you to explain yourself. It also helps you admit areas that you may be weak in, if you’re humble enough, and then to diligently research and explain. I was excited to return to tutoring this morning when I had finally after several hours of research found the answer and educated myself on an area of software development that I had brushed off for years out of a lack of interest. Having a moment where a concept finally clicks is invigorating and we had an incredibly upbeat and productive session.

In the absence of someone to teach or someone to pair with when developing you can always use the Rubber Duck technique but I would encourage organizations to facilitate training through pair programming. You’ll not only get your junior developers up to speed faster but your intermediate and senior developers will definitely find something they were fuzzy on. You can teach an old dog new tricks if you have a young pup around.