This article is for: Startup founders who want to save money by learning how to build software prototypes or minimum viable products themselves. This content is relevant to those who already know how to code, or who are interested to learn.
Written by: Alex Senson, Ashley Burton, Tyler Boulanger
The software industry is booming. Its annual economic impact in the United States passed 1 trillion dollars in 2017 and will only continue to grow. If you have an idea for an innovative new software business, now is the time to enter the market. But whether you see your idea as your new career or just a side project, it won’t be worth anything until it’s actually built. You may decide you want to learn how to build software yourself instead of paying someone else to do it.
There are many ways to have your dream software developed, but many people are scared off from the idea of developing software themselves. This is completely understandable if you don’t have a strong technical background; programming is hard. Even if you do have a technical background, building something yourself probably won’t yield the most polished, professional product. But as lean methodology becomes more prevalent in today’s software startup landscape, its principles can be used to help turn your idea into a functional minimum viable product (MVP). In addition to the concepts in this article, you’ll want to brush up on some of the technical considerations of software development as well.
This article acts as a guide for how to build software on your own to get your startup off the ground. It is broken down into the following sections:
- Should You Learn How to Build Software? Four Key Questions to Ask
- Learning to Code
- Startup Preparations: Planning and Establishing Your Product Idea
- What Goes in an MVP?
- Applying Lean Principles
We will illustrate these ideas through case studies of companies and founders who work with the Altitude Accelerator network
- Case Study: Alexander Poon from Schedulock
- Case Study: Alec Pestov from vGIS Inc.
- Case Study: Chris Houston from SurfEasy
- Case Study: Mark Oleniuk from ResQ
Should you learn how to build software? Four key questions to ask
Key Takeaway: People lacking technical expertise and assistance can learn to code, but should only program the MVP. More experienced developers can start programming the real product if they have adequate skills. Either way, a lot of time needs to be set aside to code software by yourself.
Do you have the time?
Software development is already a notoriously long process; developing it on your own is especially strenuous. While some smaller software products can be programmed in months, some can take over a year depending on how much time you have devoted to it. If you are considering learning how to build software yourself, you need to ensure that you are ready for the time commitment it will entail.
Though devoting yourself to the project full-time would definitely cut down your development timeline, you could be going a decent amount of time without generating any revenue. If you’re working on the project part-time alongside another job, ensure you have a significant amount of time set aside outside work to stay engaged with the project and not let it fall by the wayside. If you do have a lot of time to spare, developing a potential business is definitely a productive way to spend it!
With regards to the business itself, figure out the importance of getting your product to market quickly. Are you racing a competitor? Is your product most relevant right now? If you need a complete, professional product in your customers’ hands now, developing it yourself is likely not the best way to win the race. However, lean methodology is a great way to make the most of your own skills and get something useful to your customers.
Do you have the right skills?
The leadership team of a software startup generally includes two main roles; the CEO, who handles business development; and the CTO, who handles software development. If you have no technical skills and see yourself in the CEO role you have a few options: finding a technical cofounder, hiring developers (whether in-house, freelancers, students, or an agency), or developing the software yourself.
If you’re currently non-technical and want to learn how to build software yourself, you have a lot of work ahead before you can start flexing your CEO muscles. In addition to the time it takes to develop the actual software, learning how to write code is extremely time-consuming. If you’re willing to put in the time and are in no rush to have the software completed, go for it! But be aware that some people just can’t ever get the hang of coding and you take that risk when you put faith in yourself.
Alternatively, you can bring in the right technical skills by finding a technical cofounder.
If you’re technically inclined, you obviously need to recognize which skills are most important for the product you want to develop; but you don’t need me to tell you that. If your specific skills don’t exactly match what’s required of the product you’re looking to build, just know that you’re never too experienced to learn something new; be sure to put effort into polishing your skills or learning the required new ones.
Do you have money saved up?
If you’re deciding whether to quit your day job to pursue this idea for a software business, it goes without saying that you should have money saved up to sustain you until your product starts making some significant revenue.
Of all the options available for having your software developed, doing it yourself is the cheapest by far. The only things you may need to pay for are coding classes, platforms, or tools; no wages are due to anyone. That makes developing by yourself one of the only options when you don’t have much money to spend.
If you do have money to spend, however, you are more likely to get a product that’s much higher quality when you hire developers. Non-technical entrepreneurs that are serious about their product’s success should be putting their faith in someone who knows what they’re doing.
Do you plan to scale?
In the grand scheme of things, no one is able to build a software corporation into a multi-million-dollar enterprise on their own. If you plan to scale your business beyond a small startup offering limited products, you will need to bring in other developers.
If you are a programming expert who can write spotless code, passing off your code to others to expand on shouldn’t be a huge concern. Your original product is likely able to be scaled, though starting over is also an option depending on how polished it is.
However, a non-technical person learning how to build software themselves likely won’t be able to code well enough to have their original product scaled up significantly as the company grows. An inexperienced coder should fully expect to have their software reprogrammed when new developers come on board; it’s very difficult for even experienced engineers to use someone else’s flawed code. With that said, newer coders can make a minimum viable product (MVP) but should let someone more experienced take over once they’ve passed that point or started generating revenue.
Summary: When should you learn how to build software yourself?
- If you have enough spare time available and you’re not in a rush to get a complete product to market; lean principles can help get a self-developed product to customers quickly though
- If you have the necessary skills, are willing to put in the time to learn them, or can’t find a technical cofounder
- If you don’t have the money to have an expert do it instead
- If you want to validate your business idea by developing a minimum viable product (MVP)
Learning to code
Key Takeaway: There are a variety of helpful online and in-person resources to help you learn how to build software if you need to. Make sure to get technical advice on exactly what you need to learn for your product and practice coding every day to polish your skills.
If you can’t already, the first step in programming your own software product is learning to code. Even if you see yourself as a capable software engineer, there is always more you can learn to build up your software development toolkit. Although you can likely make some kind of low-fidelity prototype or MVP without any coding ability, you will struggle to mimic your software product’s core functionality without making use of code. With that said, be
There are obviously varying extents to which you can learn to code, based mostly on where you hope to go in a coding career. If your only reason for coding is to develop your product for your business, there’s no need to waste time learning coding beyond what you specifically need to know for your software. There’s a lot of importance in being able to identify which programming skills are necessary for your product, both for developing yourself or hiring other developers, though some technical advisory may be needed to identify those skills. If you plan to pursue a career as a programmer beyond just this product, you obviously need to spend far more time learning to code.
Below are some great places to get started.
Top 10 websites to learn coding
1. Codecademy – user-friendly, interactive online learning
Codecademy is the most popular place for people to learn how to code and is an excellent place for both beginners and experts. The website even helps you figure out what you should be trying to learn based on what kind of software you want to make. It has wide range of topics available and teaches using interactive interfaces with instant feedback. This is definitely your best choice for instant hands-on learning without prior experience required.
Many of the courses are available for free but upgrading to a Pro account grants you access to personalized learning pathways and premium content. Upgrading costs $19.99-$39.99 per month.
2. Coursera – University-level online courses
Coursera boasts a massive collection of courses, all of which are university-level classes taught by real professors. Even better, all of the courses are free! This is a much more academic approach to learning coding. You can also pay to get a “Coursera Verified Certificate,” specialization, or degree to prove your learning. Coursera courses are a little less interactive but are very reputable due to their link to academic institutions.
3. Udemy – comprehensive online courses
Udemy offers both paid and free courses on a variety of subjects spanning various areas of software development from E-commerce to mobile apps. The courses on this site can be made by anyone, so be sure to read reviews before you begin. Depending on the course, many of them offer downloadable resources to help make learning more hands-on. For each course, you pay a one-time fee and they belong to you forever.
4. Thinkful – one-on-one online learning
Thinkful provides one-on-one mentorship from industry experts to help you learn in a way that is quick and personalized to your goals. It’s meant to help people find a career as a developer, but would still work well if that career is building your own software business. Learning with a one-on-one mentor makes the learning process go much faster, but this is one of the more expensive options available. The Full Time Web Development Bootcamp course is $16,000 while the Flexible Web Development Bootcamp is $9,500 for 6 months.
5. Codewars – polishing your coding skills in a fun way
Codewars does an excellent job of making learning coding more fun. This website is meant for sharpening the skills of people who already know how to code. The program has a martial arts theme and is based around completing challenges called “kata.” Community collaboration plays a large role in the learning done on this site and uses ranks and honor to motivate you to keep learning. Best of all, the site is free!
6. Free Code Camp – learning coding by working with nonprofits
Free Code Camp is 100% free and offers thousands of lessons. You can even earn certifications by completing projects. For each topic, the website has an established curriculum of lessons, followed by a final project; projects give you hands-on experience coding for a non-profit company.
7. GA Dash – project-based online learning
Presented by General Assembly, GA Dash is also a free program. It offers a variety of projects to help beginners learn to code from scratch through interactive activities. Dash projects are one of the easier ways to learn coding, offering less thought-provoking challenges as you learn; however, they effectively illustrate the real-world applications of each project. It is another great way to kick of your development education.
8. Khan Academy – free educational videos online
Khan Academy is a well-known education non-profit with courses on an extremely wide range of topics for both children and adults. The most relevant topic on the site would be computer science, which has several courses on coding and development. This would be a great place to get a quick taste of whether you’re really interested in programming yourself. This website is also completely free.
9. edX – open-source university courses on programming
edX is an open-source resource containing courses governed by MIT and Harvard. It offers over 100 courses on “computer science” including a variety of programming languages. There is no cost for taking courses but “verified certification” costs between $50 and $300 depending on the course. It is similar to Coursera but with a little less variety. It pays off when you can tell your colleagues you learned HTML5 from Harvard and MIT though!
10. Scotch.io – web development blog
Scotch is a user-friendly site with both video courses and interactive tutorials that cover a wide range of topics. There is also an active community that you can reach out to if you’re encountering issues. Full access to courses is $20 per month and the site is still growing but be sure to keep an eye on this collaborative community as you begin your coding journey.
Go to in-person events
One of the most comforting ways to learn how to code is going to in-person events. Just type “learn to code events nearby” into Google and you’ll be able to find a variety of events that are open to beginners or experts. Though this won’t give you in-depth training into coding like an online course would, it’s a good way to get your feet wet and meet some like-minded people.
Practice makes perfect
If you have the time, it’s always helpful to practise your new coding skills before you apply them to your software business. Plan simple projects and try to build something helpful to get you in the swing of building a product from ideation to completion. Work on projects every day so the knowledge stays fresh in your mind and your skills become more and more polished. That way, coding will feel natural by the time you start trying to make something that people are willing to pay for.
Altitude Accelerator Case Study: Alexander Poon from Schedulock
Alexander Poon is a cofounder a software system for automating real estate showing schedules. Funded by grants and pitch competitions, the company started off producing software products. After divisive feedback from customers, they pivoted to a bootstrapped software solution available on all platforms. But did they get the resources to make that transition? Well, they learned the necessary coding skills to develop it themselves!
Starting off with a minimal web app, the cofounders took the time to learn exactly what they needed to know to make an MVP for their product. They made the app available for all platforms to reach as wide an audience as possible, getting plenty of customer validation from real estate brokers trying it out. The result — an app that is continually being updated that was built on their own hard work.
Summary: how to build software and learning to code
- If you have the time, try learning a variety of skills and practise those skills every day by working on a small project
- If you’re in a rush to make your product, get technical advice on which skills would be best to learn and streamline your learning process so you can start building your software soon
- There are a variety of websites available with courses on how to code, the most prominent being Codecademy, Coursera, and Udemy
- In-person classes are a great way to get comfortable as a beginner and meet like-minded peers
Startup preparations: planning and establishing your product idea
Key Takeaway: You should validate your idea by talking to customers and building an MVP. Make sure to make all the major technical decisions before you start development.
Before you can start developing product, you need to fully conceptualize your vision for the business. This planning process involves everything from validating your idea to making decisions about the technical considerations for your product.
Validate your idea
If you’re reading this article, you probably already have an idea in mind for a new software product. As much as the idea seems great initially, there are several ways you can test whether it could actually lead to a successful business. You should always confirm your idea is a good one before you start investing time and money into it.
Asking yourself questions
First, there are questions you can ask yourself. Have you identified the problem that this business is trying to solve? This is always what you want to start off with when establishing the vision for your business, since people will usually only spend money on something that solves a problem. That problem could be boredom, lack of productivity, or anything you think of. Then, make sure your business is actually a solution to that problem.
Beyond that, think about whether you have knowledge or experience in the area your business is hoping to address. As helpful as your idea seems, you don’t know whether the problem you’re trying to solve is actually a problem unless you’ve lived through it yourself. It’s also difficult to design a product when you have little experience with using its competitors or the alternative solutions available.
The most important, and most obvious, question to ask is whether you would use the product. Or would you be willing to pay money for it? If not, that’s a huge red flag. No one is more supportive of your business than you; if you’re not even that interested, no one else will be.
Talk to customers
After running your idea by friends and family, their thunderous support may seem like all the reassurance you need. But until you actually ask real potential customers for money, you can’t tell if people will actually be interested in your product. This concept can be explored further in “The Mom Test,” a book written by Rob Fitzpatrick that outlines how you can get the most out of customer conversations. Essentially, getting out in the world and having in-person conversations about the problem you’re trying to solve is much more effective than sending out an online survey or asking your mom for her opinion.
There are a variety of other ways to validate your idea in addition to interviews, the most effective of which is building an MVP. MVP software products can range anywhere from a simple WordPress webpage to an early version of your final product; the different types will be explored later in this article. An MVP can be used to measure a wide range of customer behaviours including how many of them sign up, how often they tend to use your product, and whether they would pay money for a full product.
For further information on validating your business idea, the Altitude Accelerator offers workshops and resources that will inform you on the best ways to validate your product.
Altitude Accelerator Case Study: Alec Pestov from vGIS Inc.
Alec Pestov is the founder and CEO of vGIS Inc., a software program that transforms traditional Esri GIS (geographic information systems) data into augmented reality visualizations and holograms. He has been a client with the Altitude Accelerator for four years, starting off with his first product, Meemim. The MVP for vGIS kicked off in 2017 and the company has slowly continued to its current state, where it is net positive in cash flow. Now on his fourth startup, Pestov has had both positive and negative experiences with building startups.
From his experience, Pestov has two main lessons to share on the importance of validating your idea: Lesson 1: “Always be able to sell the product before it is built.” Pestov says you don’t really know whether you have a good product until you’re able to articulate its value during sales and convert that into money. If someone is willing to pay for the product before it’s even finished, it should be worth working towards. Lesson 2: “If you’re just going on the intuition that your product will solve a problem, that’s a recipe for disaster.”You should not build a product until you know the problem you’re addressing actually exists. A solution without a problem isn’t a solution at all. Overall, don’t sink resources into building the actual commercial product until people have shown a willingness to spend money on it, whether that is with an MVP or the idea itself.
Funding your business
Although learning how to build software yourself is your most cost-effective option, it still has some costs to keep in mind that will require funding. From a technical standpoint you need to pay for the resources you use to learn coding skills and the platforms you use to make your software. Business expenses can include office space, intellectual property, marketing and much more. Because of this, you’ll definitely still need to be mindful of how you are funding things.
Generally speaking, founders self-fund development with their own savings, or from some friends & family investment up to at least a minimum viable product is developed. Sometimes there are government grants and programs to help with some costs at earlier stages, but they are not always available or easy to get. This is why it’s critical to get to the MVP stage as quickly and inexpensively as possible. Remember, an MVP only needs to effectively deliver value to your customers – it does not need to even look like what your final product will be.
Once you have an MVP, it is used to validate the product / market fit with real customers. Once enough objective data is collected to demonstrate market demand, it is a lot more likely to get further investment from angels, private capital and government grants and programs.
Before you sit down and start building your software, there are many other development considerations that you need to plan out. In addition to selecting a preferred coding language for your product when learning how to code, you should also know which integrated development environment (IDE), source control, and versioning platforms work best for you (also discussed in the previous link). Also, be sure to keep in mind the most common software development challenges.
Being organized during the developmental process is integral to preparing a polished product on an accelerated timeline. Whether you prefer a more set budget and schedule or want to adapt as you go, choose the most suitable development methodology for your project plan.
You also want to make sure your product ends up functioning exactly as you want it to. Even if you think that you can make a quick, simple version of your product and build on it later, there are several foundational decisions you need to make before you begin development. Choosing the right architectural pattern for your software is integral to ensuring it functions properly as you build a complete product. Most software companies need cloud hosting services to handle their traffic and data. AI services could also be implemented to optimize your product.
If you decide you’d like help with development, there are many other options for creating a development team to work alongside you.
Summary: Startup preparations: planning and establishing your product idea
- Validate your idea by asking yourself what problem you’re trying to solve, whether your idea solves it, whether you have experience with the problem, and whether you would buy the product yourself
- Validate your idea by talking to real customers and seeing if they will spend money on it
- Validate your idea by building an MVP that measures customer behaviour
- Don’t wait until after you start development to make decisions about methodology, architecture, source control, versioning, and additional services
What goes into an MVP?
Key Takeaway: The main purpose of a minimum viable product (MVP) is to learn about your customers in a “lean” way, minimizing the time and money you put into development. Low-fidelity MVPs are extremely simple but provide some insight into whether there is customer interest. High-fidelity MVPs allow you to learn more by having people use your product, charge them money, and recruit early adopters.
Building an MVP is an integral part of getting customer validation for your idea before you invest money into having a ready-for-market product built. It allows you to get something into the hands of your customers and get their feedback so that you can adjust your ideas for features and updates to suit their demand.
The idea of releasing an unfinished, imperfect product may seem foolish to some companies. Why would you want to devalue your brand and disgruntle customers with something that doesn’t meet your own standards? By focusing on addressing only a few important features that are key to delivering value to your customers, you can learn about your customers in a quick, cost-effective way. MVPs play a huge role in getting user feedback before you even go to market.
Types of MVPs
MVPs vary widely in complexity depending on what you’re trying to learn from them and how quickly you want them released.
There are many types of low-fidelity MVPs that don’t require any coding knowledge to make. Low-fidelity MVPs are simple interfaces that are generally used to gauge customer interest and explore what kind of solution would be best for them. They are generally most effective in the very early stages of ideation. Showcasing a simple wireframe of the product or starting an ad campaign can give customers information on the product without any programming. Two more examples of informative low-fidelity MVPs are “fake door” websites, in which a customer signs up for a product that doesn’t yet exist; and split landing page experiments, where you test which version of a landing page gets more attention from customers.
“Concierge” MVPs are also a popular type. These involve having human service mimic what the software is going to do. This type of MVP is very common for businesses that want to transition from a manual human service to an automated software service, but can be just as effective for anyone looking to start a software business. An alternative to this is the “Wizard of Oz” MVP, wherein the customer doesn’t know that a human is behind the service. These types of MVPs are good at gauging consumer demand and whether they would pay for the product without having to do too much coding.
As an example of a concierge MVP, imagine an app that prepares meal plans for you based on a questionnaire you fill out. Before the app is developed, that service could be completed manually by having someone personally make a meal plan for customers based on their answers rather than having software do it. This would be an easy way to see if people were willing to pay for a meal plan service without actually building the app.
High-fidelity functional MVPs
A high-fidelity MVP is what you learn coding for. Though it limits its functions to one or two main features, its aim is to be a usable product for consumers. Remember, the main point of an MVP is to learn about your customers and make the necessary changes; if they’re not interested in your MVP, that’s just part of the learning experience. A functional MVP is not a static product, you have to continue to iterate and make adjustments as you learn more about your customers.
The key is to focus is on specific, discrete features and learn about the demand for those features. If you make an MVP with twelve different features that all serve different audiences, you’ll have no idea which features customers are interested in and much of the work that went into development was likely a waste of time. If your business’ vision is centred around a comprehensive product with a lot of features, start simple and expand the available features iteratively so you can learn about each one individually.
High-fidelity MVPs are a great way to recruit and secure early adopters of your technology and optimize your marketing strategy. If there is a lot of interest, you should be able to start generating significant revenue from it; this can help fund further development and growth of the business.
Altitude Accelerator Case Study: Chris Houston from SurfEasy
Chris Houston was the CEO and founder of SurfEasy, a VPN service focused on security at large companies, which has since been acquired twice. Houston now acts as the VP of mobile product development at Symantec, SurfEasy’s latest acquirer. After transitioning from a hardware product to software early on, SurfEasy launched a low-fidelity MVP to gauge customer interest. It was just a mock-up webpage that used Google ads to direct people there, but it was able to measure whether the idea interested people enough to click on the ads. They then capitalized on this interested by creating a Kickstarter campaign to raise money.
Altitude Accelerator Case Study: Mark Oleniuk from ResQ
Mark Oleniuk is a cofounder and managing partner at ResQ, an app that organizes on-demand maintenance and preventative fixes for restaurants. In order to validate interest in their business before building the app, ResQ began as a manual process in which they personally handled service requests for clients. From running that service, they could figure out which elements of it were working and get valuable customer feedback to help build an ideal product. Using that info, Oleniuk and his team were able to build what has become ResQ today.
Planning an MVP
Imagine the user’s journey
When designing a product, an important aspect is putting yourself in the shoes of your users. Going back to thinking about what problem you are solving for them, there are several important questions you have to ask when designing the simple UX and UI of an MVP.
- What are users looking for when they open the app?
- How tech-savvy is the user?
- What is the user trying to accomplish in the app?
- What deliverable outcome will directly solve the user’s problem?
The essence of this process boils down to figuring out what pains the user is experiencing and what gains the product will give them. Think of what is needed in the product for a user to easily get done what they are trying to accomplish and feel positive enough to keep using it. Design step-by-step stages of the user flow that intuitively let the user reach their main objective.
Decide on the features of your MVP
Aside from being a tool for customer research, the main purpose of an MVP is to be lean and time/cost-effective. This means you need to narrow down the number of features you will be including; this avoids wasting time and money on unneeded features. Therefore, deciding on one or two features to include may be difficult.
Asking the questions previously discussed can help you prioritize features based on which ones best address the customers’ pains. Even if a feature is user-requested, implementing too many at the same time gets in the way of your learning. The only features you include should be directly connected to the overall goal of your product.
After you have decided which feature(s) is/are the most important to include in your MVP, you are ready to start building it!
Summary: What goes into an MVP?
- The main purpose of MVPs is to learn about your customers in a cost- and time-effective way
- Low-fidelity MVPs are extremely simple and used mostly just to gauge and build customer interest
- Concierge MVPs can be used to see if customers will pay for a product before you completely program it
- High-fidelity functional MVPs allow you to learn about how customers use your product, start collecting early adopters, and generate some early revenue
- MVPs should originally focus on one or two specific features; more features can be added as you learn and iterate
Applying lean principles
Key Takeaway: Treat each MVP and iteration launch like an experiment; identify what you’re trying to learn; build and measure what will give you that information; make decisions and design new experiments based on what you’ve learned.
The Lean Startup methodology is defined by the “Build-Measure-Learn” feedback loop. With each release of an MVP or a new version of the MVP, you need to be going in with the mindset of a scientist running an experiment. There is something to learn from each launch. But you can’t just launch the MVP and hope you get some interesting info from your analytics. Running an experiment never involves waiting for open-ended answer.
You need to define what it is you’re trying to learn before you can actually learn. This could be as simple as wondering which colour of your landing page leads to more conversions. Then you can launch one version with a blue background and one with a red background and see which is more successful. Though this is a simple example, you need to be asking “what am I trying to learn?” each time you release something. That is the only way to effectively utilize your MVP as a learning tool.
After deciding what kind of MVP you want to build and what features will be present in it, it is time to build. Part of making that decision is making a leap of faith about what you think you know about the product and its users. Previous research or knowledge has led you to believe that your chosen features address your identified problem properly, and that the problem is important in the first place. By building those features, you have put faith in those assumptions.
Actually building an MVP and new iterations is how you take action on what you know and what you learned from previous versions or research. It is how you steer the direction of your business.
After building your product, launching it and measuring the results are the next logical steps. After declaring what you’re looking to learn before the launch, measuring allows you to get data for the experiment. More information on measuring user feedback can be found in this article.
Once an experiment has been completed, in that a version of the MVP has been launched and user reactions have been measured, you can use that data to learn what you set out to learn from the start. These conclusions can be used to design new features or make changes to existing ones, then build them, and the cycle continues.
Another important part of the learn step is the decision to pivot or persevere. This involves using the results of validated to learning to decide whether or not there should be an alteration to the company’s strategy or business model. If your software idea continues to be validated by consumers, then you can definitely continue developing new iterations and keep learning! If not, you should consider what changes should be made to the product or what you can learn about customers that would help make the product more desired.
With each feature that is shown interest by customers, you can continue to add features that add value and desire to your product. Your audience would continue to grow and your business could grow with it. As more features of your product are validated by consumers, the notion of having a feasible business on your hands becomes more of a reality.
At that point, it is likely time to start investing the revenue from your MVP into a complete market-ready product. This does not mean you stop iterating or learning, just that you are putting a more professional, marketable product into the hands of consumers.
As discussed earlier, developing software yourself is fine for smaller, simpler projects. If you’re an expert programmer, you can continue to code your real product. If you’re less experienced, it is likely time to pass the coding on to an expert past the point of your MVP.
Learning how to build software yourself hopefully gets you to the point where you’re able to demonstrate the value of the product through some early user adoption, which is often required to attract investors
Either way, you will likely need the help of a development team to continue growing the product. There are many options for having your software developed once your own abilities are no longer enough.
Summary: Applying lean principles to learn how to build software for your startup
- Treat launching an MVP like running a science experiment; identify what you’re trying to learn
- Build according to what you’re trying to learn based on past versions and the customer research you’ve done
- Measure the information necessary for your experiment
- Learn from your measurements and decide whether to pivot or persevere; use what you’ve learned to design new experiments
- Accelerate growth by adding or changing features each iteration
- When it’s time to develop the real market-ready product, it is likely time to hand off development to a development team
Concluding takeaways: how to build software yourself
- Less experienced coders shouldn’t develop anything past the MVP but expert coders can remain on the development team for the real product
- There are many online and in-person resources to help you learn how to code; it is important to practise coding every day to polish your skills
- Validate your idea by talking to customers and building an MVP
- Make major technical decisions before you begin development
- The main purpose of an MVP is to learn about your customers in a “lean” way, minimizing the time and money you put into development
- Low-fidelity MVPs are easy to build and can be used to gauge customer interest; high-fidelity MVPs require programming but can be used to acquire early adopters, generate revenue, and test how customers use the product
- Treat each MVP and iteration launch like an experiment using the “Build-Measure-Learn” feedback loop