Turning Interns Into Developers
I love working with interns. I love teaching and guiding people into the world of web development. It gives me energy to see the light turn on when a concept is realized and understood. For me its gold.
Different people have different philosophies on how to integrate interns into a team. Some choose to assign a special one off project or have them work on/research an issue that the team will never get around to. What I like to do is to actually integrate them into the team. Every situation is different but I feel like for core web development this can be done in an effective way.
BTW these same techniques can also be used for new college grads, junior developers and for those coming out of bootcamps.
Observe/participate in the ecosystem
Starting a new job is a pretty intense/scary/exciting time. I always try to bring people along at a measured pace and try not to overwhelm them with too much info. I mostly ask that they observe and get to know the people and the ecosystem. I have them attend stand up meetings, estimation sessions, code reviews, prioritization and/or scoping sessions.
I think its amazing how when teams gel and set in how over time there’s entire custom language that gets created. I like to give any new employee time to soak that in but interns/new college grads will definitely need more time.
Find a great tutorial
I’ve found this program works if you have an intern start with a great tutorial. My favorite are the ones that integrate the entire development lifecycle (Git, Heroku, etc). IMO for Rails nothing beats the tutorial that Michael Hartl has put together.
I encourage 1–2 hours a day or every other day dedicated to the tutorial. I caution against trying to get through the tutorial too fast. A fast approach leads to little retention.
Short list of resources
I like to kick off all internships with an email of links that can be used as resources. For Rails teams there’s always the Rails Guides and Django there’s the official documentation. Here’s my list that is platform agnostic:
- Pivotal Tracker — Its the tool I like to use. I really like the videos they have put together: http://vimeo.com/28217621 and http://vimeo.com/110382358
- Git Workflow — I like to do it a bit differently but core concepts explained here are great: http://nvie.com/posts/a-successful-git-branching-model/
- User Stories — They are hard to get your head around at first http://www.mountaingoatsoftware.com/presentations/introduction-to-user-stories and I love to use this template: http://www.mountaingoatsoftware.com/blog/advantages-of-the-as-a-user-i-want-user-story-template
- SQL — Yes I think web developers should learn SQL http://www.w3schools.com/sql/
There will be lots of them. I try to make sure that there’s an open environment where questions are encourage. Many times interns/new developers will be a bit shy about asking. I find that you sometimes have to sit down and specifically probe for any questions they have.
For stack specific questions I will answer by showing them where in the documentation they should look (not just StackOverflow). Often times we’ll read something together and I’ll learn something too. Its amazing how often that will happen.
Small stories at first
After 1–2 weeks in of self study and getting to know what is going on its time for pairing on smaller stories. Here I deviate from the typical backlog workflow of working on the next thing at top by “cherry picking” smaller stories.
So they would pair with an engineer on an existing story or be assigned a small story. I would expect there to be lots of pairing. The intern should be an active participant, not just watching.
I think its obvious why to start with small stories but I think of it as a great way to build confidence. In my opinion small victories are the quickest way to achieve big victories.
After weeks of pairing on smaller stories I think its time to start moving to bigger and bigger ones. I believe success is if they feel comfortable pairing / participating on the development of medium sized stories.
I feel like this program gives them the best idea of what it will be like long term. For interns my goal is to be the first place they think of when wanting to join the workforce.