This summer has been quite interesting: not only did I (finally) get married after having postponed the wedding due to the COVID-19 pandemic, but we have also had the opportunity to, for a couple months, grow our team. During July and August 2021, an intern with no web experience whatsoever helped us develop a new feature. Here’s everything we learned from the experience.
Hiring an Intern
At the beginning of the summer, Ruth told Toni and me that her son Pau was interested in doing his first internship as a programmer. He was looking for the right company, and she asked us what we thought about Nelio being said company. We thought about it and, in the end, we decided it’d be a great opportunity for both parties (him and us), but it was no easy decision…
Growing your team is always a challenge: you never know how a new person will fit in or how they will perform. Pre-job interviews can give you some clues, but until they are at their workplace, you really don’t know how it will work out. And if we’re talking about an internship, things are even more complicated.
In theory, an intern is there to learn. So make no mistake: the person you’re taking in won’t be able to make big contributions (probably) because they don’t have the knowledge yet and it’s your responsibility to train them and help them grow as a professional. So, if you think interns are “cheap” employees, you’re absolutely wrong: they aren’t. Why? Because you’ll have to spend some of your time and effort to train them, of course.
Sometimes it’s easier to give an intern toy projects to keep them entertained… but I think that misses the whole point of an internship. That’s why, when discussing whether we should hire Pau as an intern or not, the three of us knew that, if we did, we wanted him to learn by doing something productive. But this is an ambitious goal and we might not be suitable for the task, so we asked ourselves three key questions to hire an intern:
- Do we have the necessary resources and materials to let the intern learn on their own?
- Is there a pending feature or functionality in our product catalog that an intern with no experience can tackle?
- Can we dedicate a few hours a week to help, teach, and guide the intern?
If all your answers are affirmative, then go ahead and hire that person. Otherwise, I wouldn’t recommend it.
Pau’s Internship at Nelio
As you probably already know, at Nelio we have two plugins for WordPress: Nelio A/B Testing and Nelio Content. During 2019 and 2020, we reimplemented both plugins to use the new WordPress development stack: React, Redux, and so on. So, taking into account what we do for a living, it was clear what Pau needed to become familiar with if he wanted to make useful contributions to Nelio:
- How WordPress plugins work
Luckily, over the past few years we have written a lot of posts about the technologies we use at Nelio. This means we could take advantage of all the content we’ve already generated and turn it into a training roadmap for a new intern that joins the company. In particular, we compiled a few posts (and other resources) with exercises that an intern had to learn before they could make any useful contribution to the company:
- Your first WordPress plugin in PHP
- How to extend the Gutenberg editor using a React button
These exercises would lay the foundations Pau needed to contribute to one of our plugins. They might be simpler than “the real thing,” but if you get the gist what you’re doing in these exercises, you should be ready to jump into any of our plugins and understand what’s going on.
Secondly, we also had to decide what Pau would end up implementing once he acquired the minimum required knowledge. After a quick review of our (internal) development roadmap, we quickly found the perfect project for Pau: extending Nelio Content’s editorial calendar with a new view. Up until that point, our editorial calendar had three views: a monthly view, a two-week view, and a single week view:
However, some of our clients requested an agenda view. The agenda view is similar to the week view, but it only focuses on three or four days, and organizes the content by time segments.
Thus, implementing a new calendar view seemed the perfect project for an intern like Pau. It was neither too simple nor too complex. He’d have to create new React components and tweak the Redux store. All the information he needed was already available in the source code of the already-existing views. And that’s precisely what he did:
What We Learned
Today’s title posed an interesting question: what you could learn from an intern. So far, however, we’ve only talked about what they can learn from you and the complexities an internship entails. So let me briefly discuss some of the lessons we learned from working with Pau:
- Rank your company’s tasks by difficulty. This is something that, for example, WordPress do when they tag a bug as “good first bug.” If you know how easy or difficult a task is, it’ll be easier to decide who should do what. This is especially handy when there’s interns in your company who are still learning and need simple, yet real examples to make useful contributions.
- Document your process. When a new person joins the team, you have to explain them how you operate: the tools you use, how to access your source code repo, which guidelines you follow, and so on. If you have all of this written down somewhere, this new person will be able to read said document on their own. If you don’t, however, you’ll have to spend some time sharing that knowledge.
- Prepare a training roadmap. You know your company better than anyone, so you know what a new employee has to be familiar with to be productive. Don’t be lazy and document your work. Do like us and write down what you learn and how and why it’s useful in your company. Then, compile all these documents into a single place and create a “training roadmap” that a new employee can follow to acquire, without your intervention, all the knowledge they need.
- An intern is the best way to detect issues in your workflow. When an intern starts contributing to your actual projects, at some point they’ll get stuck. They’ll probably try to solve the issues on their own at first, but they’ll eventually need your help and guidance. What does this function do? Why doesn’t this work? What’s that for? Where do I find…? All of these questions highlight aspects of your business that are not well documented. If you solve them, the next time someone comes to your company they’ll have the answer at hand and they’ll be productive much sooner.
As you see, growing your team with an intern can be beneficial for both parties. The most important thing is to be honest and accept internships when (a) you have the resources to teach them and (b) there’s something useful that needs addressing and can be implemented by an intern. If you find in this situation and the opportunity arises, by all means, take it: I guarantee you too will learn a lot along the way.
And if you have already lived the experience or are thinking about it, tell me how it was in the comment section below!