How to develop software even if you’re not a developer
Sam Ovens is the founder of SnapInspect, simple property inspection software.
Sam Ovens had a great software idea. He even had customers willing to pay for it, and it wasn’t even built yet.
There was just one problem: Sam isn’t a developer.
“I honestly couldn’t build a website that would say, ‘Hi, my name is Sam’ or install WordPress on a server,” says Sam, founder of property inspection software SnapInspect. “I don’t even know a single HTML tag, even today.”
Since Sam couldn’t build SnapInspect himself, he had to hire and oversee a team of developers. That’s easier said than done when you don’t speak code, but Sam found a solution.
“I was able to hire a team of developers that [built] SnapInspect up to what it is today,” says Sam. “Despite not knowing code, I was still able to work with [developers].” Today SnapInspect has 1,500 customers and $37,000 per month in recurring revenue.
In his Mixergy course, Sam teaches non-developers how to hire developers. Here are three highlights from the course.
1. Bring Your Vision to Life
You have to know your product inside and out before you can clearly explain it to developers. But that’s hard to do when you aren’t a developer yourself.
“You’ve got to know every screen and you’ve got to know what happens when you click this, what happens when you click that,” says Sam, “and it’s too much detail to have in your head.”
So Sam tried drawing it on paper, but there were “too many arrows for me to understand my product fully, and what it was going to look like, and what the development would involve,” he says.
So how do you communicate your vision?
Make an interactive mock-up
Create a clickable PDF.
“I just built every screen of my software in Keynote,” says Sam. “So they’re essentially invisible hyperlinks that link to slide numbers…I would openly say anybody could
build one of those.”
Also, the clickable PDF saved him money. “I told the developers to not do any design and don’t charge me for any design, just to grab those Keynote elements and use them as the UI design file,” he says.
2. Don’t Buy a Money Pit
When you’re on a tight budget, hiring a freelance developer seems like an economical solution. But costs can quickly skyrocket.
“With hourly rates, which is how most Elance people work, the budgets can blow out completely,” says Sam. “They can be three times what they initially think they might be.”
Another problem is that freelancers can disappear. Sam knew one entrepreneur whose developer who would disappear for weeks at a time and always had a new excuse. “Eventually he said he got hit by a car and was in hospital,” he says. “[The entrepreneur] had to end up completely switching developers, she was thousands out of pocket and the main thing was…about three months got wasted.”
So what should you do instead?
Use a team of professionals
Hire a company to develop your software.
“When you’re dealing with a company, a lot of the time they’ll scope out the project,” says Sam. “They’ll go through every feature. They’ll make sure that they understand everything, and then they’ll give you a fixed price.”
Sam felt a lot safer with a fixed price, and he liked knowing that there was a whole team working on SnapInspect. “They’ve got a physical office, they’ve got multiple employees, they’re not just going to disappear,” says Sam. “If one person gets injured or sick, the whole project isn’t going to collapse.”
3. Know What They’re Working On
Even when you hire a whole team of developers, you can’t kick back and wait for your beautiful product to arrive.
“When you work with different people and you’re paying for them, you always want to know that they’re doing some work, especially when they’re remote or you’re in a different country,” says Sam. “You really want to know that the actual work is being done.”
So how do you make sure the project is on track?
Create interactive task lists
Set expectations and keep tabs as people progress.
To do that, Sam and each of the people he hires agree on a reasonable amount of work for the week. Then he creates a board for each person in Trello. “I use three little columns, one that says to-do, doing, and done,” he says. As they finish a task, they mark it “done.”
That way, Sam always knows what someone is working on. “I can see in real-time what’s going on,” he says. “If I check at any point in the day, I can see what they’re currently working on, and at the end of the week, that to-do should be ended.”
Written by April Dykman.