Starting a Software Startup the Lean Way
Some believe that creating a successful software startup is about nothing more than making a product that, by its awesome and paradigm-shifting nature, will magically attract customers.
Consider the following conversation I had recently:
Would Be Founder: “I want to make an app that suggests outfits for you based on the weather, your personal style, and the season.”
Me: “Sounds awesome! What can I do to help?”
WBF: “You wanna build it for me?”
Me: “I’m pretty committed to other projects right now. Why not start by sending a daily email to a few select cities manually? That way, you can validate that people will sign up for something like this. Then, once you’ve got some validation, let’s talk through the product.”
WBF: “What? You mean do it…manually? That sounds really annoying.”
Me: “…”
My point here is that if you aren’t willing to do the work, you shouldn’t be starting a business.
Even if your technology will eventually be a differentiator, you need to figure out what people really want. You can’t start with a product, or you’re sure to build something that either (1) nobody wants, (2) nobody will pay for, or (3) isn’t very good.
In this guide, I will share the step-by-step process you can take for building a lean software startup. While inspired by books like The Lean Startup and The Startup Owner’s Manual, I’ll inject a lot of my personal experience and some modern tooling to help you launch faster.
I’ll also give you a preview of what comes after launch (assuming it all goes well) and how you can start to make your first hires and raise your first funding. This will be a long one, but hopefully, it helps you see the road before you as you start your first software startup.
Note: If you want more great books for startup founders, check out my list of recommendations here.
Coming Up With the Idea
TL;DR: People put way too much stock in ideation. Just start doing something.
Action beats ideas, but you do need something to take action on. I’ve seen three reasons that founders pursue a particular startup idea:
1. You Find a Problem That Needs Solving
A lot of founders see a problem in their daily lives or day jobs that leads them to start a software company. Personal experience with a problem is good because you’re the target market, but you have to make sure other people actually care enough to pay for a solution.
Airbnb fits in this category. The founders made it socially acceptable to solve the problem of accommodations by letting people rent out their homes. There was very little market for this sort of thing before they normalized it.
2. You See Validated Market Demand
Startups founded based on clear market demand (i.e., people already pay money to solve this problem) will have the easiest time getting started. Not only are customers searching for solutions, they’re likely already paying someone to solve the problem. You just have to prove you’re better.
That said, it’s harder to defend startups based on existing market demand. You’re not the only option for solving this problem, and existing competitors will have more resources and existing revenue to fend you off with.
An example of a market-first startup is Uber. There were already people spending money on black car services, but Uber thought they could offer a better service using mobile connectivity.
3. You Want to Build Something Cool 😎
Finally, some ideas are just “cool.”
These startups typically don’t think about their business model until they have to, so they need to raise a lot of money to get to break even. Facebook, Twitter, and Instagram all fit into this category. Each built something totally novel at the time, but they weren’t solving an existing problem that had real money behind it at first. They later layered a business model on once they had an audience.
The “cool” option is the riskiest, but it gives you a unique opportunity to define a category. That’s something not many startups do.
Ultimately though, you shouldn’t put too much stock in the first iteration of your idea. Instead, be open to change and pivot often as you move into the next, more important step: validation.
Validating Your Idea
TL;DR: Talk is cheap. Getting payment from customers is the best validation.
Once you have an idea, it’s time to see if anyone is willing to pay for it. That’s right, before you go off into a cave to build your MVP, take a step back and talk to people.
A few years ago, I was working on a SaaS application that I thought would be a great product. I set up about 20 conversations with prospective customers, and out of those twenty calls, just one person was ready to pay for this tool today. I went back to the drawing board but took what I learned from the prospects who said “Yes” and “No” to rework the offer.
Ultimately, I decided that the demand wasn’t urgent enough. Existing solutions worked well enough, and the few companies that had a big enough problem that my tool might have solved it were building their own solutions in-house. It’s possible that after a few more iterations, I might have figured something out, but I decided to move on to other things.
The best book I’ve found on having these customer validation conversations is The Mom Test. In it, Rob Fitzpatrick explains exactly how he gets input that goes beyond the affirming, “That sounds great!” feedback that is so dangerous to entrepreneurs.
Validation Means Exposing Your Ideas
One problem that first-time founders have with this approach is that they are afraid someone will copy their ideas.
This is naive. Ideas are worthless, and execution is everything.
That’s why I typically do not recommend “stealth mode” to startups. If you want your software startup to outlast its runway, you need to validate it before you invest heavily in your product. Launch early and iterate often.
Lean Customer Development: Prototyping and Making Pre-Sales
Two common tactics for validating a startup idea are building a prototype and making pre-sales. After conversations with prospects (which are basically free), these are the next fastest ways to start validating your idea.
You can make prototypes in a tool like Invision, use a no-code app builder like Bubble, or just set up a simple website to show prospects what you plan on building. Add a Wufoo or Google Form (or another one of these alternatives), collect a list of potential customers.
Next, show your prototype or no-code app to prospects and see what they think. Decide which feedback is useful and disregard the rest (that’s right, you should not listen to all your prospects). Keep your initial feature set lean and focused on the problem you most want to solve first.
For example:
- If you want to build a real-estate comparison website, start by manually collecting home prices in a specific area and limiting prospects to buyers in that city. If people sign up for your manual comparison product, they’ll surely sign up for an automated one once you finish it.
- What if you want to create an advanced home automation solution? Instead of spending tons on R&D to build software that controls all of a home’s devices, why not start with one thing: automatic timer lights. These are cheap and readily available, and you can install and maintain them for your customers and teach them how to use them. Once you know there is a demand for these lights, you can start to add products to your lineup.
The lean customer development method is almost always better than the product-first method, but the challenge is often figuring out how it applies to your problem and solution. Get creative, research existing tools, and discover the depth of the pain point you’re solving.
The more validation you have before you start fundraising, bringing on a co-founder, hiring, and building your app, the more leverage and certainty you will have. This means you’ll be able to hold on to more of your equity for longer, and you’ll get better terms if you decide you ultimately need funding to make your software startup a success.
Fundraising
TL;DR: Network like mad. Investors put money into people they trust.
There’s a lot of B.S. on the internet about fundraising. No matter how egalitarian investors want to make you feel like they are, if you have investors in your personal network, you will always have an easier time getting funding.
If you decide you need to raise money, find a way to meet investors.
Start with the easy ones: your friends, family, and nearby angel investors. Then, as you get some interest, ask those people for introductions and work your way into personal wealth managers, larger angel groups, and seed-stage VCs.
Software startups typically raise $500,000 - $3,000,000 for their first round of funding, and most venture capitalists (VCs) won’t get involved until your Series A round (typically $1,000,000 - $10,000,000).
Keep in mind that taking on investors means giving up equity, preferred stock, and some control of your company. It’s a fantastic way to pour fuel on your company’s fire, but an investment is not free money; it’s not a loan.
Can You Self-Fund Your Startup?
A pathway that’s becoming more popular in slow-growth software startups is “bootstrapping” or self-funding the business. If you skip fundraising, you need to get paying customers as soon as possible or have an existing business that throws off profit already.
You could also leverage existing assets (i.e., mortgage your house or take on credit card debt), but that’s a very risky path. If your business fails, you could be personally liable for any debts.
The upside to going this route is that you won’t give up equity, and you can control every aspect of the business (within legal bounds). This means that if you ever get the chance to sell your software startup, 100% of the proceeds belong to you, and you can decide whether the sale is a good deal or not.
Alternative Funding Strategies
Raising money from traditional investors or self-funding are not the only two options for entrepreneurs anymore. Rolling funds, crowdfunding campaigns, and initial coin offerings (ICOs) have all gained prominence in recent years.
I think this trend will continue, but each of these new funding mechanisms seems to have a pretty short half-life. Once the hype wore off, valuations went down, and investors (and regulators) have become more skeptical.
But, if you’re especially adventurous, maybe it’s worth a shot?
Business Structure
I am not a lawyer, and this is not legal advice, but I tend to see most funded startups use a C-Corp, and most bootstrapped or self-funded startups use an LLC or an S-Corp.
After you decide which structure makes sense based on your proposed funding model and equity split, go to ZenBusiness to set it up. This is one of those tasks that used to cost you a couple thousand dollars when a lawyer did it for you, and now it’s just a few clicks and a few hundred dollars on ZenBusiness or LegalZoom.
Your First Hires
TL;DR: Hire self-directed, entrepreneurial, ambitious generalists to start. Fill out specific roles as you grow.
Working for an early-stage startup requires a special kind of personality. I’ve been the first engineer at two tech startups in my career, and while it’s a lot of fun, it’s also nothing like the corporate jobs I had before that.
Instead of being pigeon-holed into a single piece of the codebase, I was expected to jump around between customer service calls, support requests, QA, writing code, code reviews, deploying code, and project management. It’s fun but exhausting, and most employees used to working with big companies will find the pace overwhelming.
I like hiring people with a bit of an entrepreneurial streak. Maybe they’ve got a couple side projects or used to run an affiliate site? Maybe they ran a club in college? Maybe they took a year off to write a book?
Look for people who might get passed over by big companies but can work independently and cover a wide range of skills. For example, I’ve seen crossover roles like customer service + marketing, engineering + support, and sales + account management at startups. Before each job becomes a full-time role, you need people who can flex into a couple slots.
Be Disciplined in Your Hiring Approach
The biggest problem I see in startup hiring is a lack of discipline. Many founders trust their guts instead of looking at candidates objectively, so they end up hiring people who are just like them.
Jeff Hyman recommends creating a rubric in his book, Recruit Rockstars. I use this approach in my business today, and it’s been really helpful for minimizing personal bias in my hiring practices.
Minimum Viable Human Resources
Once you start bringing on employees, you become the de facto human resources department. Founders are rarely enthusiastic about this new role, but it’s absolutely necessary. The good news is that you don’t have to be perfect early on; just start with four basic things:
- One-on-ones - Use these as a time to reconnect with employees and continue sharing the vision.
- Payroll - The software tools available for payroll are infinitely better now than they were a decade ago, so use them.
- Culture - It’s mostly defined by the founders early on, but it should not be ignored.
- Diversity and inclusion - Don’t just pay it lip service. Make this core to your company now so you can attract the top talent, regardless of race, gender, ethnicity, or sexual orientation.
Expect hiring to be much more challenging and time-consuming than you think. Having a consistent process will help, but there’s no way to eliminate the human variability inherent in building a business with other people.
Marketing and Growth
TL;DR: Get very specific about your target market and find 1-2 channels that work consistently.
Counterintuitively, the more narrowly you define your target customer, the easier it will be to grow. By defining who your software product is for, you can eliminate wasted effort on those who are not a good fit yet.
Ironically, most startups that dream of becoming the next billion-dollar unicorn struggle with this because they want to prove they’re in a huge market. But, when you look at startups that have succeeded, you almost always see a very small go-to-market customer base.
For example, Uber started in one city (San Francisco) and with one kind of car (chauffeured luxury cars). This allowed them to target a very small subclass of people in the Bay Area who they knew they could reach, and it prevented them from wasting their precious early marketing dollars on the masses.
You Just Need One Great Channel
The other common marketing pitfall is believing that you need multiple user acquisition channels to help your software startup get off the ground. Not true; you need one or two good channels to get started.
For example, when I started Draft.dev last year, I used referrals and my personal social media to build our customer list. We have grown to a team of 50 people on these two channels alone, so rather than get bogged down in adding new channels, we’re focused on the two that work today. Once we exhaust them (i.e., growth starts to flatten off), we’ll start investing in the next channel.
There are plenty of options you can try as you get started. Direct outreach via cold email or LinkedIn (for B2B), content marketing, paid advertisements, social media marketing, product-led growth, referrals or affiliate partnerships, open-source marketing - the list is never-ending.
My favorite book on growth for software startups is Hacking Growth by Sean Ellis. It shares an inside look into the growth strategies that worked for many well-known startups, and while marketing strategies tend to get dated quickly, the specific tactics might help inspire you to try something new.
Product Development
TL;DR: Creating custom software should be the last resort for early-stage startups.
I’ve been the first software engineer at two startups now, and I never wished I wrote more code. The problem with building early-stage products is that you don’t really know what you need yet. As I said back in 2018:
Startups need to move fast and spend as little money as possible, but many first-time founders, unaware of the true cost of developing software, spend too much time worrying about their product and too little time figuring out how they can generate value for their customers.
Typically a founder budgets $100,000 to get to launch. They find a developer or offshore team to build the app, and if they’re lucky, they actually hit that deadline, and the app works.
Then customers start using the app, and then the trouble starts. They find weird edge cases, they think of new features, and they point out clunky UI choices. Now, the founder has spent his money building a product that isn’t quite good enough to keep customers, and he must either give away more equity to keep building or shut the whole thing down.
What’s the Alternative?
Fortunately, there are many great low and no-code app software tools that can help founders go to market with as little capital investment as possible. I’ve written extensively about some of the application development tools I like, including Bubble (for web apps) and Draftbit (for mobile apps).
Most of these tools could be learned in a few weeks, but I actually recommend a hybrid approach now: hire a software engineer to help you configure, set up, and learn these tools. Get your first app out, and then lean on your developer to warn you about how your low-code app will fall apart as you grow.
This allows you to go through the “Build-Measure-Learn” cycle much faster than startups that hire a team of engineers to build the entire application from scratch.
But What if I Really Need a Custom App?
Admittedly, this strategy doesn’t work forever. For example, some software startups are technical by nature - you can’t build a developer tools company without custom code - and others require highly specialized R&D just to launch.
On the other hand, you might start validating your product with a low-code application builder and then outgrow it as you gain traction. If this happens, you need to either raise money or spend your profits to invest in engineering a custom application. Either way, it’s much easier to do this after you have users and validation than before.
Once you do start building a product team, you need to develop a good process for planning, prioritizing, and delivering updates. This process should change and scale as your company does, but it’s important to have something, even early on. Founders who throw new projects at their engineers every week will burn cash and never finish anything.
Finding Product-Market Fit
TL;DR: Product-market fit is a continuum that constantly shifts. You can find degrees of it, but it’s never truly finished.
At this point, your software startup idea has been validated, you’ve raised funding, built a rudimentary product, and started trying to grow your user base.
If you’re extremely lucky, users will flock to your app and you’ll start hitting those ambitious growth goals you told everyone about a few months ago. But, if your journey is more typical, you’ll need to make some adjustments first. Maybe you need to change your messaging to appeal to a more lucrative buyer, maybe you need a couple key features to reach parity with existing competitors, or maybe you need to adjust your pricing to appeal to less frugal users.
This journey is called product-market fit, and it’s one of the hardest parts of building a startup.
What is Product-Market Fit?
Product-market fit is the journey to find customers for your startup that are willing and able to pay for your product. Or, if you approach it the other way around, it’s the journey to adjust your product to fit the needs of customers who can pay for it.
Either way, it’s a constant challenge. Even when you find an early degree of product-market fit, you will quickly have to adjust. For example, you might start off selling your product to consumers. As it starts to pick up traction, you realize that you can’t profitably scale your offering for the price you have, so you raise prices. But, raising prices makes you less appealing to your early users, so they start to churn. You react by lowering prices again but simultaneously making your offering less complex so that you can cut costs. Then your higher-end customers get mad because you’re no longer offering the caliber of service they need.
There’s always give and take. Every decision you make as a founder about features, prices, copy, etc. will affect how users perceive your product and change your ability to profit from them.
If you want to use a disciplined process to find product-market fit, pick up a copy of The Startup Owner’s Manual. Steve Blank and Bob Dorf walk you through a step-by-step customer discovery and validation method that takes almost all the guesswork out of this process. It’s not complicated, but it is hard to stay disciplined and follow each step while trying to deal with everything else that founders must handle.
Look for Positive Signals
While product-market fit is never truly finished, it can absolutely be felt. I remember when I found a good target market for our services at Draft.dev. Suddenly, I was getting more inbound interest than I could handle, and I couldn’t hire fast enough.
Some signs that you’re getting a high degree of product-market fit include:
- Inbound organic interest
- A steady stream of unsolicited referrals from customers
- Paying users with low churn
- Price insensitivity (i.e., when you raise prices, nobody complains)
Of course, this can come with new challenges, and one of the biggest is shifting your mindset as a founder.
Thinking Like a Business Owner
TL;DR: Stop working in your startup and start working on it.
Once you start to find product-market fit, you have to stop living in the day-to-day. That means extracting yourself from writing code, creating marketing copy, running sales calls, and handling disgruntled customers. These functions are all important, of course, but as a founder, your time is not best spent on tasks that can be easily assigned to employees.
The earlier you get into the habit of delegating work, the faster you’ll be able to grow and see new opportunities.
It’s Not as Easy as You Think
Unfortunately, failure to effectively hire and delegate is the #2 reason I’ve seen startups fail to grow (behind never finding product-market fit). A few things commonly stand in the way:
- Inability to let go of control
- Fear that employees will never “do it right”
- Poor hiring practices
- Inconsistent processes for employees to use
- Insufficient funds to hire (which means you either need to raise more or find more margin)
I’ve outlined my process for hiring and growing a team before, but the best book on this topic I’ve read is The E-Myth Revisited. In it, Michael Gerber talks about how you can leave your comfortable place as a “technician” to build a “franchise prototype” for your business. While the target audience is more small business owners, I find a lot of startup founders need this advice as well.
So What Do Founders Do?
As you start to extract yourself from more of the lower-level tasks of running a business, you might face a bit of an identity crisis.
The first shift will likely be towards hiring. Whenever something needs to get done, you will start to write job descriptions instead of immediately jumping to do the project yourself.
Next, as you build your team, you will shift to thinking about processes and setting the vision for the company. When you give employees a “template” for their work and high-level goals for the business, they’ll be able to execute most day-to-day tasks without constant input. When you’ve started to get comfortable with this, you’ll hire other managers who hire and define processes for their teams.
At this point, you’ll need to step back another level. You should only be jumping into sales calls under special circumstances or when discussing a strategic partnership. You’ll also need to spend more time validating your financial models and securing funding (assuming you’re going the venture route).
This may all seem like a distant dream, but the earlier you start acting like a business owner and leave execution tasks behind, the better you’ll be in the long run.
Summing It Up
The “lean” philosophy dictates that you test your software startup’s core assumptions before you start building your application. It makes sense to say this, but very few entrepreneurs actually have the discipline to build a company this way. Instead, founders insist that they need a product before they can talk to customers, and by the time they realize they’ve built something that no one needs, they’re out of money or time.
Don’t fall into this trap. Do the work, learn what customers want, and by the time you’re actually building software, you’ll ensure you build the right software.
Interested in more great books about building your startup? Here are 21 of my favorites to get you started.