I often hear local business leaders expressing frustration with student interns, sometimes even swearing off the whole idea altogether. I always respond with strong encouragement because I’ve had many rewarding experiences with interns; often it just takes a bit of preparation to integrate interns into an agile team and the culture and cadence around planning, standups, and retrospectives.
When I was the CTO at Inova Solutions, we put our very first summer intern, a second year CS student, on a production support problem around bar code labels that every full-time employee had been avoiding. Since that first summer, that project has been refactored by waves of interns as a sort of intern proving ground…and I’ve learned a lot about what makes an internship experience successful for both the intern and the business. Through careful selection of appropriate internship projects and some consideration for creating a support system, your business can hire student interns with confidence.
Select appropriate internship projects
After that first bar code project at Inova, we found that some projects were just a better fit for an internship experience. For example, making a small change to an already-working system allows interns to extend their existing CS or CE training in a controlled situation while still learning new skills such as modifying and testing existing code and using Github effectively.
A perfect internship project is:
- Win-win; the intern will both learn and deliver something useful
- Usable work that can be completed within the internship period
- Flexbile, and can be approached iteratively
- Low risk for your clients or customers. The project should not be intended directly for production; instead involves automated test development, production support, or is a reference prototype for something new
Create an intern support system
Transitioning from a college lab environment to the workplace can be a challenge for student interns. It’s helpful for everyone working with the interns to remember this challenge and to understand that students are used to working on finite assignments that have much more clarity than typical dev team tasks. To make the most of the internship experience, it’s critical to create a support system.
An internship support system might include:
- An onboarding period. We often asked interns to work through online tutorials (e.g. for Python, GitHub, AWS, etc) for the first week so that they understood that it was important for them to take the time to improve their skills.
- Regular reporting periods, where interns share their work to the dev team or internal customer for acceptance and feedback.
- Teams of two to four interns. Placing one intern into a dev team can result in a lot of questions, which makes both the intern and the dev team feel uncomfortable. An intern team can collaborate and mostly answer their own questions before escalating questions to the dev team.
- Participation in all aspects of the project. We included our interns in our daily scrum and agile meetings as well as in our release celebrations.
There might be additional methods for successfully integrating interns at your particular place of business. For example, we found that coaching the interns to carefully time their questions helped facilitate better communications. An intern is likely to get a more detailed and helpful response if he or she waits for a developer to take a big stretch or get up for coffee and then to pounce with questions!
Don’t be afraid to bring student interns to your business. Interns are often fearless and relish new challenges; they can explore a new technology domain that scares your dev team into large estimates. With a bit of advance planning, you can both support the future workforce and take advantage of interns’ enthusiasm and fresh perspective!
Writing and editing services provided by long-time collaborator, Kelly Garrett.
