Building a product for non-technical founders

You've come up with an idea, did some lean product testing and now all you got to do is building your actual product. The only problem is that you no technical skills to speak off... At this point you only have two real options; find a technical co-founder or hire someone to build your product for you.

The first option sounds easier said than done; unless you're well-connected the chances are slim you'll find someone with the technical chops and the same passion for your product as you do. That leaves you with the latter options; hiring a developer.

Over the years several potential startup founders approached me to build the first version of their product and these are the things I told them.

Learn how to program

No, you're not expected to write your product on your own, but knowing just a little about programming will earn you some major street cred and it will give you some better understanding what your developer is doing all day.

Programming isn't hard (software engineering is!) and there are plenty of resources out there to get you started. Set aside a few hours on your weekend to get the basics down. Every manager should know about working in the trenches.

Sharpen your bullshit filter

The tech industry–like every other industry–has a lot of buzzwords. If you don't have any technical background it's easy to hide yourself behind a wall of jargon, so it at least looks you know what you're talking about.

If you approach a developer with the request to build an application with a NoSQL data store because you want your product to be web scale, I can almost guarantee you won't get a serious reply on your cold email.

Instead, reason from a non-functional requirement perspective: "We want to provide a desktop-like experience, so a single-page application sounds like a good fit."

Don't be a victim of NIH

Every developer has issues with the Not Invented Here (NIH) syndrome from time to time. There certainly are cases where reusing an existing component is not the right choice, but always ask your developer whether using an existing tool isn't a better idea.

This doesn't only save time, but also offloads part of the documentation-burden to the projects you're using. Using popular open source software also helps when you're bringing new members on the team; they might already be familiar with the tools you're using.

Create value immediately

Software projects are expensive, complicated and time-consuming. As long as you haven't shipped you're product, your not making any money or getting traction. You've probably heard about the Minimal Viable Product concept, but let's take this a step further.

Imagine you're building an ecommerce platform. Typically, developers will start out with inventory management, but instead this developer decides to get payment processing done first. Consequently, the company that hired him started selling a single product, every week, two weeks into the project. (Example courtesy of Renzo Slijp.)

This example doesn't translate well to every product, but it's certainly helpful to first hash out the part of the product that makes it unique first. This allows you to show potential customers (or investors) what your product is about.

Hire a communicator

When you don't have any technical insights in the complexity of your product it's hard to scope and thus budget the development of the project. Some functionality will be easier to build than others; prioritize functionality together with your developer.

Your developer can also function as a hired co-founder to bounce ideas of. Great developers will think along with you and offer their suggestions throughout the project. It's therefore incredibly important to "click" with your hired gun.

Pick your stack wisely

When you start looking for a developer you'll notice they all seem to program in different languages. What's that all about? Without going all Computer Science-y on you, there are two things to consider:

  1. Are you building on an existing platform? Working on something for iOS and Android? You'll probably want an Objective-C and Java programmer. Targeting Windows? Look for a C# engineer.

  2. What languages does your local talent pool speak? Some languages are more popular than others and adoptions rates vary regionally. You'll find more PHP programmers in the Netherlands compared to Pythonistas.

Of course there are technical as well as cultural implications of choosing your stack. Don't get carried away by the fanatics and consult a few of experts before deciding.

Insist on docs

Almost every software developer hates writing documentation, but insist on having some written anyway. Don't have your developer write documentation for the sake of, but actually make it useful. Make sure it includes a system overview, design decisions and system requirements.

The requirements document will be the first check whether the things you told your developer were actually understood. The other parts mainly serve so introduce other people to your system. Try to have as little documentation written as possible, but not too little. Documentation requires maintenance as well.

Closing thoughts

Keeping the above advice in mind won't guarantee a smooth initial development phase, but will certainly help you getting up to speed faster, making more informed choices in the process.

Try to find a technical advisor if you can, preferably one that doesn't send an invoice at the end of the month. Software development is hard, especially if you don't have any experience.

Don't forget to actually enjoy the process, because creating something beautiful from thin air is just magic.