As a mechanical engineer by trade, I have experienced the feeling of having a promising idea for a new software application, but not quite having the necessary programming expertise to turn my vision into working software.
Over the years, I’ve talked to many non-technical founders and creators who have experienced the same hurdle with software development: they have a solid— often well-thought-out — concept for a project or business, but they don’t know how to get that vision to production.
It’s not easy, but it is possible to build a software product if you are non-technical. With the right motivation and the right approach, you can turn ideas and specs into working code.
There is some skepticism among programmers that non-technical individuals can build successful software companies (and rightfully so), but the record shows that it is in fact possible.
Here are just a few examples of successful companies build by non-technical co-founders:
- Gilt Group
- The Lobby
In some of these cases, non-technical founders partnered with another co-founder with technical skills. Complimenting your weaknesses with the strengths of another can be a good option if you find a value-aligned business partner. Unfortunately, this option is not always on the table.
Nonetheless, not having someone code your software for you is still not an insurmountable barrier to developing a high-quality software product.
If you are non-technical, here are a few of the approaches you can use to take your ideas from a broad concept to full-working production software.
- Learn how to code
“But isn’t there an easier way?”
Yes, there might be, and we’ll get into that. However, you should not take learning to code yourself off the table for at least two reasons: First, learning to code is not as impossible as you think it is. You could do it. There are plenty of high-quality free resources out there to get started. Second, if you are unwilling to invest the time to get familiar with coding, you should consider whether you really want to invest the time necessary to build a successful business, and also whether your idea really is all that good.
The answer to, ‘how do I build software as a non-technical founder?,’ is not, ‘well, it just so happens there is a massive short-cut where you don’t have to make a significant time or monetary investment.’
You have to be willing to make an investment.
Even if you are not going to become a software developer, or program your product yourself, it’s wise to get familiar with programming basics so you can manage your project or company effectively.
Code bootcamps are the fastest, most effective routes to learning programming. There are now code bootcamps all over the country, and many are relativity affordable. (Time aside, compare the ROI of $15k spent on learning a new skill vs. $15k of development agencies time.) Comparatively, time is the greater limiting factor for most people attending code bootcamps. Even if you have not intention attending at the moment, Bootcamps can still still point you in the right direction for other less resource-intensive options in your area, and potentially connect you with recent graduates looking to work on projects.
There are also, of course, plenty of high-quality learn-to-code options online. Here are a few:
The founder of Instagram, Kevin Systrom actually chose this path as he founded Instagram. Originally, he was educated and working as a marketer while studying computer science online by night.
“The story starts when I worked at Nextstop. While I was there working in marketing, I started doing more and more engineering at night on simple ideas that helped me learn how to program (I don’t have any formal CS degree or training).”
Choosing to learn to code pretty much boils down to your financial situation versus time availability. If your income is stable and more valuable than your time, perhaps using one of the other options is a better choice. On the other hand, if you have some extra time in the evenings, or your financial situation cannot allow the other options, this might be the least risky option.
Books on Programming for beginners
- HTML & CSS: Design and Build Web Sites by Jon Duckett
- You Don’t Know JS: Up and Going by Kyle Simpson
- Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
- But How Do It Know? The Basic Principles of Computers For Everyone by J Clark Scott
Other good programming books
- The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt
- Code Complete: A Practical Handbook of Software Construction by Steve McConnell
- Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity by Joel Spolsky
2. Design a prototypeAs a non-technical founder, it’s critical that you can visually present your ideas.
Prototyping ensures that both you and the people you tell your idea to really understand it. Well-developed prototypes also make it easier to onboard team members such as partners, co-founders, and investors.
With a prototype, you can start testing your concept on potential customers to validate your product or develop it further.
Having a well-thought-out prototype or workflow gives you options.
Some prototyping and workflow tools that are affordable and simple to use are:
- InVision — Create and collaborate on prototypes, boards, wireframes, Freehands.
- LucidChart — Professional flowcharts, process maps, UML models, org charts, etc.
- Adobe XD — From wireframe to interactive prototype.
- Proto — Interactive, high-fidelity prototypes
- Balsamiq — Whiteboard-like rapid wireframing
A prototype may not always be the best solution (or not always possible for that matter). However ,it can make long-term planning easier and allows you to validate some of your concepts.
3. Use an app builder
A step further than prototyping, there are now some pretty good drag and drop software building tools out there. Just the same as with the prototyping tools, this solution demands that you have a somewhat standardized and easy idea. The backend cannot really be that complex or heavy and eventually you would need a developer to build the application. But for getting traction and market validation this could be the way to go.
Here are a few solutions:
- BuildFire —Visually build apps for iOS & Android. Powering over 10000+ apps in the App Store.
- Bubble.is — Point and click software building
- AppSheet — Create custom business apps from templates
- Proton — Visually scaffold mobile apps
The limitation for most software-building tools are rthe ange of features and ‘customizability.’
4. Find a freelancer
If you estimate it will take less than a month of developer time to bring your idea to life, hiring a freelancer is a sensible choice.
There are several sites that lets you compare freelancers to your specific project with standardized contracts (ex. https://www.freelancer.com/). If your needs fit within specified criterias.
What you especially need to look for before hiring a freelancer is:
- Look for ratings and good reviews, this could potentially relief you from a lot of stress.
- Be aware that the lowest rates (below $30 an hour) is not always a good deal, as the code is not necessary of very high quality, and developers may simply bill you for more hours.
- Look at samples of previous work, and try finding someone that has done a similar project to the one you want to do. Also, be very clear when defining your goals and tasks.
- Try to find a developer that only focuses on 1–2 projects at the time.
- Sign a contract with the freelancer, and have in your contact that you will own all code when the project ends as well as you have full rights to it.
5. Use a software agencyBuilding an MVP using a software agency can be a highly expensive and unnecessary experience. Before hiring a software agency, you should be sure that there is a market for your product.
However, if you already have a profitable and established business, and you need robust software as an addition to your current value proposition, this could be the way to go.
Other situations to consider using a software agency could be if you have extended experience in the business you are entering or you will rely heavily on having a highly scalable and robust application.
You really need to consider your options before making this choice: do you have an MVP? Have you validated your idea? How certain are you that the investment will pay off? Etc. If yes, the software you are getting will in most cases be very good, and scaling up your business/application will become much easier. However, if you are choosing this option, there are some points worth looking at before writing the contract:
- Quality is not always equal to quantity, and in the long run, the cheapest option may turn out to be the most expensive. As for references and talk to someone who has used the agency before.
- An agency that challenges you and contradicts your ideas can be annoying sometimes, but still very valuable. You don’t want to work with ‘yes-men.’ Good agencies know what works and not, and have worked on similar projects in the past. Asking tough questions shows that they are concerned about their customers and want them to get the best results.
- Look for an agency that can act as a partner, and share a cultural fit with you. This means, even though you might disagree sometimes (previous point), that you understand each other and talk a similar language.
6. Non-technical accelerators or entrepreneurship programs
Non-technical accelerators most commonly deal with products that are non-technical, but even non-technical products sometimes need supporting software such as a mobile app, web store, community portal, interactive demo etc.
Advisors can pair you with the right resources and guide you in the right direction for your needs. Importantly, they can tell you what you don’t need to spend time and money on.
Non-technical accelerators and entrepreneurship programs are best for founders with some degree of traction, and ideally, have already begun to monetize.
Things to do before spending money and time on development
- Talk to people — find their problems
Even though you think you’ve found the software solution to your biggest daily struggle, it does not mean everyone else shares this problem.
Before starting an expensive and time-consuming development process you should talk to potential users. Do they share your problem? How do they solve it today? How much would they pay for a specific solution?
Preferably you will seek not only people you know because their answers usually tend to be a little biased.
A common mistake is trying to get the “right” answers that backs up your hypothesis’. Don’t ask leading questions. This is harder than it sounds, but put a real effort into this and it will save you time and money.
Talk to at least 20 people. When you’ve finished, you have to honestly ask yourself whether there is a specific market opportunity: Will [target audience] pay [$X] for [specific product spec(s)] to solve [specific problem]?
2. Make a landing page
Even though you identified a common problem you have not proved that there is a willingness to pay to solve it yet. From previous experiences the typical answer you get when you present your idea is: “wow, this is really cool”, however, when you ask them if they want to buy, you get a “no.”
Validating the idea is a little tricky part, especially trying to go through this process as cheap and fast as possible. Before you start developing or making anything you can actually in many cases start selling your product (even though it does not exist yet).
Design or illustrate your product and what it does.
You now have the basis for your application and can create a landing page to showcase your vision or product.
3. Test your message-market fit
Get back to the people you have questioned about their problems and needs. Show them your landing page or mail it to them. What you want is feedback. Will they pay for the proposed features set at the designated price.
Once again, you must validate that you really have a problem worth solving for a specific price.4. Make An MVP
You have positive feedback on your landing page and it seems like this could be the solution your primer audience segment has been looking for.
When you get this far, you are at the final stage of validation and now you can set a sales target and start pre-selling your product/service before it is 100% ready.
If you do not hit your sales target, you need to iterate and try again.
Look at the customer process and identify where interest drops off. Did the customers go through the entire checkout process? Is the product description clear and sufficient?