I’ve heard it more than once: I don’t have much money for development. Could I get an intern to develop my solution for me?
I’ll be honest. Those are indeed treacherous waters of which non-technical founders have to be especially careful. If you haven’t managed developers before, and your candidates haven’t taken part of any projects by themselves, there are just too many things that could go sideways in that relationship.
However, it isn’t entirely hopeless. Today I’ll share with you how you can make the most out of internships, minimize risks, and get a good product out of it.
Getting to know the risks
So you don’t have any money and you want to build your product with interns and trainees. Okay, let’s review that situation for a minute. There are three areas to worry about:
1) The quality and scalability of development
Developers do things their way based on what they know, on how they’ve tackled previous projects, and on what worked and what didn’t. Interns or junior developers have gone through little to none, which means they don’t have a defined thought process for problem solving, they’re probably not very knowledgeable on the use of certain technologies, and they don’t have a library of previous experiences to draw from. So letting trainees roam free with your idea means that it’s going to take them a long long time to figure it out by themselves, and you’re at the mercy of what their Google search shows first.
2) Communication and logistics
As a non-technical founder, you most likely haven’t managed developers before. You don’t speak their language. They, as junior developers, most likely haven’t had to communicate with “business people,” they’re not used to getting instructions that aren’t highly technical and specific, and they may not be equipped to translate business or usability demands into functioning code. So they don’t speak your language either.
3) Learning process
And then we have the topic of actual learning on the job. An intern or a trainee is there to learn, that’s the sole purpose of the job, learning and gaining valuable experience. If they make mistakes and neither you nor them know the difference, they will not be learning from those mistakes. So the only experience they would be gaining is a frustrating one, where you are both unhappy with the process, with the results, with each other, and sadly no one learned anything from it
Get someone who knows better
The truth is you need someone who knows what they’re doing, because you simply don’t have those expertise. Navigate the risks by getting a senior developer (SD) to define the infrastructure of your solution and to actually train the trainees.
The SD would be the one in charge of guiding the interns’ work and checking it regularly to ensure that what they are developing is relevant and up to par. If it’s not, this person would have the responsibility of redirecting development accordingly and making it a teachable moment for the interns and the founders, if possible.
As a founder, you know the Point A—where your customer is, and the Point B—where you want to take them to. It’s your job to define that customer experience you have in mind, and to communicate it to your team as best you can. This is done through technical specifications (TS), and if you want, you can learn more about why you should take on the task yourself and what the TS should contain.
But as I already mentioned, junior developers don’t speak your language. So the senior developer will not only provide structure, but also act as a communication aid, while you and your interns learn how to communicate effectively with each other. The SD will be undoubtedly much more experienced interpreting technical specifications. So, once you have hired them for two to three days, you can choose together the language, the very first feature and the overall layout of what you want your first version to look like.
How can you make this work?
So this might seem a little counterintuitive: in order to keep things inexpensive by using junior developers, you still need to hire a senior developer. But until now we’ve only calculated two to three days’ work at the beginning. Let’s break down the methodology you’ll need to apply and see how much more you’ll need on a regular basis.
I suggest that you, your interns and your senior developer have three meetings together each week for half an hour about:
- Planning meeting
- Retrospective meeting
- Brainstorming meeting (what technical challenges do we face, should we implement this or that, etc.)
Ask your SD to be available from time to time via chat, like Slack for example, to answer your interns’ questions. The trainees could waste a day solving a bug, while a senior might be able to do it in 5-10 minutes. The SD’s job is to guide part of the thought process and avoid wasting so much time in the type of tasks, on which interns don’t have enough dexterity yet.
Taking all of this into consideration, half a day per week of the senior developer’s time should be enough to keep things running smoothly with the juniors. If things go well for you with this person, I would suggest you keep the budget for that freelance senior developer indeterminately. Keep in mind that even if you do decide to hire that intern after the internship, they will still have an overall lack of experience and you’ll still need someone to stir things in the right direction.
If you want to learn more about this setup, feel free to check out the course Selecting the Right Provider for My Startup.