TL;DR – Developer founders going at it alone should hire a developer from the beginning so they can spend more of their time on things other than writing code.
I’ve been reflecting on how amazing it is to be a software developer with entrepreneurial ambitions in the times we live in. Today a developer can start a business by investing no more than their time. Have a software idea? Open an editor and start coding.
Thirty years ago if you wanted to bootstrap a new business, you either borrowed money or used your own savings to cover the startup costs.
But just because you can start a business by doing all the coding yourself and spending no cash, should you?
I don’t think you should and I’ll give you six reasons why. Let’s start with most important reason first.
1. User Experience
It is extremely important to get the user experience (UX) of your product right. In fact, I would say this is the most important element in the development of a new software product or service. If the UX is a mess, people are going to bail.
Your first priority as a product developer should be to get all the little details right so that the product is a pleasure to use. Good enough doesn’t cut it. If the first impression is a bad one, it’s unlikely you’ll get (or keep) peoples’ money.
Doing all the coding and also ensuring that the UX is optimal is extremely difficult. To do both simultaneously requires a super human level of discipline. I’m not saying it can’t be done. It’s just very rare to be able to do both well. (Drew Wilson is an example of one of these rare individuals.)
I don’t have this level of discipline. When I code, I take the path of least resistance and it sometimes results in a suboptimal UX. I might even consider the optimal UX before starting to code. Might even lay it all out in mockups or a requirements document. That helps, but when I set out to code and realize how much more work it is going to be to achieve that optimal UX, I sometimes convince myself to change the requirements.
And I bet that sometimes you would too.
Let’s say you need to allow the user to specify a folder where a file should be saved. You could just provide a text field, have them type out the file path, and give an error if the path doesn’t exist. That would work and take very little coding.
A better UX would be to have a file picker where the user could browse the filesystem for the folder and select it. But there’s no file picker component in the language/libraries you’re using so you’ll have to build one from scratch, at least 2 days of coding.
What would you do?
Since you’re doing all the coding and your time is very limited, it’s really difficult to rationalize building that file picker. There’s other higher priority features still to be coded, so putting it off is usually what happens. As you work on the rest of the features and time goes by, you get more and more comfortable with it as it is. When launch approaches, you might revisit it, you might not. If you do, do you spend the time and delay launch?
The bottom line is that the file picker is the optimal UX. You should definitely do it.
Now consider if you weren’t doing most of the coding. You had hired a developer. You provide them with mockups, review/test/comment on their commits, and steer the development of the product.
The mockups have a file picker in them, so the developer will just build it. They may push back, asking if you really want them to spend a couple of days on it, but it’s a much easier decision when you’re not doing the coding yourself.
Since you’ve stepped away from the code, choosing the path of least resistance is no longer a decision you’re making. You’re now focused and making decisions solely in the interest of the optimal UX.
The difference here is subtle, but the impact on the UX can be huge.
Hiring a developer also allows you to go faster. If you hire the right person, having them focused on coding and you on other things should progress the project more quickly. If you hire a coder with equal or better abilities and work well together, you should go a lot faster.
3. Code Quality
If you’re coding alone, you test and review as best you can, but having a second set of eyes on the code and someone to run their own tests makes a huge difference. Hiring a developer allows you to be an independent code reviewer and tester which should result in less bugs and higher code quality.
4. Hiring a developer is in your wheelhouse
Since you’re a developer, you should be able to pick a good developer. Hiring isn’t easy. It will almost certainly take a few trials to get the right person. But since you’re a developer yourself and can evaluate good code and good design decisions, you should know when you have a good developer or not.
What happens when you go on vacation? Will you be handling support the whole time? And what if you get sick or hurt? How long can the business run without you?
Having someone who can cover for you is an excellent reason to hire.
6. Freeing yourself up for learning
Outsourcing sales and marketing is next to impossible when you’re starting out. You really need to learn these things yourself before attempting to outsource. If you’re doing all the coding, you simply won’t have time to learn these things. Hiring a developer frees up some time to dig into these areas and learn.
Pfftt, how can I afford to hire a developer?
Right. You’re working a day job, but you can easily do some coding in the evenings and weekends to work on the business but can’t afford to hire a developer. Or maybe you’re freelancing full-time and can set aside time to work on your product business but can’t afford to hire a developer.
Sorry, but that doesn’t make any sense.
Your time is money. If you have time to put into coding for the business, you could also use that time to do some consulting/freelancing, then use the cash earned to hire.
Sounds crazy, right?
Well call me crazy then because that’s exactly what I did.
To start working on WP Migrate DB Pro, I saved up a bit of cash, hired a full-time developer (making our runway very clear upfront and ensuring they understood the risk) and worked with them on the product. I spent about half my time on the product and the other half I did some freelancing.
Although earning cash freelancing and spending it on hiring a developer seems like a roundabout way of doing things, you have to carefully weigh the benefits.