7 products live across Labs
Founder Strategy

The Non-Technical Founder's Guide to Building Software

The vocabulary, the correct uptime math, the real history behind writing requirements, and a documented fraud case — enough literacy to manage a build day-to-day, without learning to code.

By Loomstrat Studio TeamPublished September 5, 2026Updated September 5, 202624 min read

This guide won't teach you to code, and it isn't trying to. It also isn't about which path to take to get software built — our guide on building without a technical co-founder covers that decision, and our guide on choosing a development agency covers how to vet and contract with whoever you hire. This guide sits after both of those decisions are made. It answers a narrower, more persistent question: once you've got a developer, a freelancer, or an agency actually building your product, what do you personally need to understand to manage that work well — to ask an informed question, recognize a real answer from an evasive one, and read a status update without either panicking over nothing or missing a genuine warning sign.

The argument for building this literacy, rather than just trusting whoever you've hired completely, comes from real, credible research. Sophia Matveeva, founder of Tech for Non-Techies, makes the distinction precisely in a 2022 Harvard Business Review piece: coding isn't a necessary leadership skill, but digital literacy is (Sophia Matveeva, Harvard Business Review, July 2022). And the stakes are measurable: MIT's research on digitally savvy executive teams — led by researcher George Westerman's work at MIT's Center for Information Systems Research, in partnership with Capgemini — found that large companies with digitally savvy leadership teams outperformed comparable companies by more than 48% on revenue growth and valuation, while only 7% of large companies had management teams where more than half the members were digitally savvy (MIT Sloan). Literacy, not fluency, is the actual gap most non-technical founders need to close.

The rest of this guide is organized as a working vocabulary and a set of habits, not a syllabus. You can read it in one sitting and come away with enough to notice the difference immediately in your next conversation with a developer — and you can come back to specific sections later, the way you would a reference, whenever a new term or a new kind of update comes up that you don't immediately recognize.

Literacy, Not Skill

Does a non-technical founder need to learn to code?

No. The credible research and practitioner consensus points toward digital literacy — understanding enough vocabulary and mechanics to ask informed questions and evaluate answers — rather than technical skill. MIT's research on digitally savvy leadership teams found a real, measurable performance gap tied to this literacy, not to coding ability specifically.

The distinction matters because it changes what you're actually trying to accomplish by reading a guide like this one. You're not trying to become able to write or review code yourself — that's a multi-year skill, and it's not what the research above measured anyway. You're trying to reach the point where a developer explaining a technical trade-off doesn't sound like static, where a status update's vague language registers as vague rather than reassuring, and where you can ask “what specifically does that mean” instead of nodding along. That's a realistic goal measured in weeks of deliberate attention, not years of study.

It's worth being explicit about the failure mode this literacy actually prevents, since it's rarely dramatic. Most non-technical founders don't get burned by a single catastrophic technical decision they were tricked into. They get worn down by a long accumulation of small moments where they nodded along to something they didn't fully follow, didn't ask the obvious follow-up question, and quietly let a small misunderstanding compound over weeks into a genuinely wrong assumption about where the project actually stood. Technical literacy doesn't prevent every mistake — it prevents this specific, slow-motion one, by giving you the vocabulary to catch the misunderstanding in the room, the same day it happens, rather than three months later when it's expensive to unwind.

The Vocabulary You Actually Need

A small, precise vocabulary covers the overwhelming majority of what comes up in a normal working relationship with a developer or agency.

Codebase, repository, and version control

A codebase is simply all the code that makes up your product. A repository (or “repo”) is, per GitHub's own documentation, “a folder that contains related items” — in practice, the specific place your codebase lives, usually on a platform like GitHub or GitLab (GitHub Docs, “Hello World”). Version control — almost always a tool called Git — “tracks the history of changes as people and teams collaborate on projects together,” per GitHub's own explainer (GitHub Docs, “About Git”). The practical thing this means for you: every change to your product exists as a recorded, reversible entry in a history, which is exactly why repository access — covered in our co-founder guide as one of the cheapest protections a founder can insist on — actually protects you. It's not just a folder of files; it's the entire, auditable history of how your product came to be.

One practical use of understanding version control specifically: you can ask, in plain language, “can you show me the recent history of changes to this part of the product?” and expect a real, specific answer — a list of dated, described changes, not a vague summary. If that request produces confusion or an inability to point to anything concrete, that's informative on its own, since a properly version-controlled project should be able to answer that question in seconds.

Deploying

“Deploying” means taking code and making it actually run somewhere real, rather than just sitting written on a developer's laptop. Vercel's own documentation frames a deployment precisely: “the result of a successful build of your project,” producing “a unique URL so you and your team can preview changes in a live environment” ( Vercel Docs, “Deploying to Vercel”). When someone tells you a feature is “deployed,” they mean it's live somewhere real — the specific “where” matters, which is covered next.

API

An API (Application Programming Interface) is, per MuleSoft's widely-used explainer, “a set of rules and protocols that determine how one application can request data from another” — MuleSoft's own analogy is a drive-thru window: you place a request, and the other side hands back what you asked for without you needing to know how the kitchen works (MuleSoft, “What is an API?”). In practice: when your product needs to talk to a payment processor, a mapping service, or another company's software, it does so through that company's API — and every API you rely on is a dependency you don't control, which is worth knowing when a developer explains that a bug is “on the API side.”

This distinction is worth internalizing specifically because it changes what a reasonable fix timeline looks like. A bug in your own code is fully within your team's control to fix on their own schedule. A bug caused by a third-party API — a payment processor having an outage, a mapping service changing its behavior without warning — is not something your own developer can simply fix faster by working harder, because the actual broken piece lives on someone else's servers. When a developer says “we're waiting on their API,” that's frequently a legitimate, verifiable constraint rather than an excuse — and knowing the vocabulary lets you ask a sharper follow-up (“has the provider acknowledged the issue, and do they have a status page?”) rather than either accepting or dismissing the explanation on faith.

Database

A database is, per AWS's own definition, “an electronically stored, systematic collection of data” that “can contain any type of data, including words, numbers, images, videos, and files” ( AWS, “What is a Database?”). Every meaningful product has one — it's where your users, their content, and their data actually live, distinct from the code that displays and manipulates that data.

This distinction matters most when something goes wrong with data specifically, since a database problem carries different stakes than most other bugs. Code can always be rewritten; data that was lost, corrupted, or never backed up in the first place often can't be recovered at all. A single, plain question worth asking early — “how often is our database backed up, and have we ever tested restoring from a backup?” — is one of the highest-value, lowest-technical-vocabulary questions available to a non-technical founder, precisely because the answer to it determines how bad your worst possible day could actually get.

Frontend vs. backend

AWS's own comparison draws this line cleanly: “The frontend is what your users see and includes visual elements like buttons, checkboxes, graphics, and text messages... The backend is the data and infrastructure that make your application work, storing and processing application data for your users” ( AWS, “Front End vs. Back End”). A bug you can see — a button in the wrong place, text that doesn't update — is usually frontend. A bug where data disappears, calculations come out wrong, or something that should have happened silently didn't, is usually backend.

Core vocabulary at a glance
TermPlain DefinitionWhy It Matters to You
RepositoryThe folder-like place your entire codebase and its history liveAccess to it is the cheapest real protection you have — insist on it
DeployMaking code actually run somewhere real, not just writtenA feature isn't "done" until it's deployed somewhere you can see
APIA defined way for your product to talk to another company's softwareEvery API you rely on is a dependency outside your control
DatabaseWhere your product's actual data lives, separate from the codeA "data" bug and a "display" bug are different problems with different fixes

Tickets, bugs, and backlogs

Most development teams track individual pieces of work — a new feature, a reported problem, a small improvement — as discrete, trackable items usually called “tickets” or “issues,” typically managed in a tool like Jira, Linear, or GitHub Issues. A “bug” is a ticket describing something that doesn't work as intended; a “feature request” is a ticket describing something new. The “backlog” is simply the full list of tickets not yet being actively worked on — a healthy backlog is one that's regularly reviewed and reprioritized, not a growing pile nobody revisits. When you want to know the real state of your project, asking to see the actual ticket board — not just a verbal summary of it — is one of the highest-leverage, least technical things you can do, since it shows you the same information your development team is actually working from.

Local, Staging, and Production

What is the difference between staging and production?

Staging (sometimes called “preview”) is a copy of your product used for testing changes before real users see them. Production is the live version real customers actually use. Vercel's own documentation names a third layer too — local development, on an individual developer's own machine — forming a standard three-stage pipeline nearly every professional software team uses.

Vercel's own framing is worth knowing close to verbatim, since this exact three-layer model is close to universal across the industry: “Local Development: developing and testing code changes on your local machine,” “Preview: deploying for further testing, QA, or collaboration without impacting your live site,” and “Production: deploying the final changes to your user-facing site” ( Vercel Docs, “Deploying to Vercel”). The practical, non-technical use of this vocabulary: when you're asked to review something, confirm which environment you're actually looking at. Reviewing a staging link and a production link are very different activities — one is a safe preview, the other is what your real customers are seeing right now.

This distinction also explains a specific, common source of founder frustration: seeing a feature work perfectly in a demo, then hearing it's not “ready” weeks later. Often, what you saw demoed was working correctly in a local or staging environment, and the remaining time wasn't spent rebuilding the feature — it was spent making it work reliably in production, under real conditions: real user data, real traffic, real edge cases a local demo never encounters. That gap is often the single largest source of miscommunication between a non-technical founder and a development team, and it disappears almost entirely once you know to ask “is this working in production, or just in a demo environment” as a matter of habit.

Uptime and Scalability, Correctly Explained

What does 99.9% uptime actually mean?

99.9% uptime allows roughly 8 hours and 46 minutes of downtime per year — calculated directly from a 365-day year (525,600 minutes), not a marketing approximation. Moving to 99.99% cuts that to about 52.6 minutes per year; 99.999% (“five nines”) allows only about 5.3 minutes per year.

99%3d 15h/yr99.9%8h 46m/yr99.99%52.6 min/yr99.999%5.3 min/yr
Allowed annual downtime by uptime tier, independently calculated over a 365-day year.

The math is simple and worth being able to do yourself: multiply the total minutes in a year (525,600) by the allowed downtime fraction. At 99% uptime, that's 1% of 525,600 minutes — roughly 3 days and 15 hours a year, which sounds fine until you realize that could all happen in one bad outage. At 99.9%, it's roughly 8 hours 46 minutes a year. At 99.99%, roughly 52.6 minutes. Each additional “nine” is a roughly 10x reduction in allowed downtime, and each one gets meaningfully more expensive and engineering-intensive to actually guarantee. When an agency or a hosting provider quotes you an uptime figure or an SLA (service-level agreement), you can now translate it into a real number of minutes and judge for yourself whether it's a meaningful commitment or a rounding-error promise nobody expects to be tested.

Scalability is a related, frequently misused word worth defining precisely. AWS's own Well-Architected Framework puts it simply: “A system that is scalable can adapt to meet this new level of demand” — referring specifically to a growing number of users or requests (AWS Well-Architected Framework, “Scalability”). It comes in two basic flavors: vertical scaling (a bigger, more powerful single machine) and horizontal scaling (more machines sharing the load). Neither is inherently better — the right choice depends on the specific system — but “is this scalable” is a much sharper question than it sounds like, since “scalable” is one of the most overused, least-defined words in software marketing.

A more useful version of the question, once you know the vocabulary, replaces “is this scalable” with something specific: “what happens to this system at 10 times our current number of users, and what would we need to change to get there?” A team that has genuinely thought about scalability can answer this concretely — naming a specific bottleneck (the database, a particular API call, a single server) and a specific plan for addressing it. A team that can only answer with reassurance rather than specifics hasn't actually done the analysis, regardless of how confidently the word “scalable” gets used in the conversation.

Writing Requirements Developers Can Act On

What is a user story?

A user story is a short, structured description of a piece of functionality from the perspective of the person using it — typically in the format “As a [role], I want [goal], so that [reason].” The format was created by agile coach Rachel Davies and her team at Connextra in the early 2000s, and later popularized more broadly by Mike Cohn in his 2004 book “User Stories Applied.”

The origin here is worth getting right, since it's commonly misattributed. Kent Beck introduced the underlying practice of “stories” as a requirements format on the Chrysler Comprehensive Compensation project in the late 1990s, formalized in his book Extreme Programming Explained(1999). Agile coach Alistair Cockburn is credited with adding the word “user” around 1998, describing a user story as “a promise for a conversation.” But the specific “As a... I want... so that...” template most founders actually use came from Rachel Davies's team at Connextra, a UK company, in the early 2000s — not from Mike Cohn, who has been careful to credit Davies directly on his own company's site rather than claim the template as his own invention (Mike Cohn, Mountain Goat Software).

In User Stories Applied, I described the three elements this way: As a (role), I want (function) so that (business value).

Mike Cohn, Mountain Goat Software, crediting the original Connextra template

The practical reason this format works, beyond its history, is that it forces you to state the reason — the “so that” clause — not just the feature. “As a returning customer, I want to save my payment details, so that I don't have to re-enter them every order” gives a developer enough context to make good judgment calls on details you didn't specify. “Add a save-payment-details feature,” without the reason, doesn't.

The difference shows up concretely the moment an edge case appears that you didn't anticipate. Suppose a customer wants to save two different cards. A developer working from “add a save-payment-details feature” has no principled way to decide whether that's in scope — they either guess, or stop and ask, which slows everything down. A developer working from the full user story — “so that I don't have to re-enter them every order” — can reason from the stated goal: does supporting multiple cards serve that goal? Usually yes, so it's a reasonable extension to build without a separate round of clarification. This is the entire practical value of the format: it doesn't just describe what to build, it gives the builder a principle to extrapolate from when reality inevitably turns out to be more complicated than the original request.

  1. 1

    State the role, not just "the user"

    Different users often want different things — a returning customer and a first-time visitor rarely have the same actual need, even for what looks like the same feature.

  2. 2

    State the goal in plain language, not a solution

    Describe what the person is trying to accomplish, not the specific UI or mechanism — leave room for the developer's expertise on how, once the what and why are clear.

  3. 3

    Always include the "so that" reason

    This is the single highest-leverage part of the format — it lets a developer make good judgment calls on the details you didn't think to specify.

  4. 4

    Keep each story small enough to finish in days, not weeks

    A story that takes a month to build is really several stories pretending to be one — break it down until each piece is independently useful and independently testable.

Evaluating Demos and Technical Claims

The single most consequential lesson available on why a founder should be skeptical of a polished demo comes from a case with real legal outcomes, court testimony, and named individuals: Nikola Corporation. The company released a promotional video appearing to show its Nikola One truck driving under its own power. Investigators later established the truck had actually been towed to the top of a hill and filmed rolling downhill, staged to look like powered motion. Founder Trevor Milton was convicted in October 2022 on securities and wire fraud charges tied to this and other exaggerated technical claims, sentenced in December 2023 to four years in prison and a $1 million fine, and Nikola separately settled with the SEC for $125 million (CBS News).

This is a hardware case, not software, but the underlying lesson transfers directly: a demo shows you exactly what its creator wants you to see, under conditions they controlled, and a non-technical observer has no independent way to verify what's actually happening underneath unless they ask the right questions. A few specific questions travel well regardless of your own technical background:

  • “Can I see this working on a device or environment I didn't provide in advance?” A demo prepared entirely in advance, on hardware or data the presenter fully controlled, is much easier to stage than one improvised live on your own request.
  • “What happens if I do X instead of the exact steps you just showed me?” Asking for a small deviation from the rehearsed path tests whether the underlying thing actually works, or whether only the specific scripted sequence works.
  • “Can someone else on your team show me the same thing?” This is a direct analog to the “ask exactly who will staff your project” advice from our agency-vetting guide — a capability that only one specific, well-rehearsed person can reproduce is a weaker signal than one multiple team members can demonstrate independently.

None of these three questions requires technical vocabulary to ask, and none of them requires technical expertise to interpret the answer. A confident, specific, unbothered response to any of them is a good sign. Defensiveness, a request to reschedule, or an answer that changes the subject rather than addressing the question directly is the same kind of signal a non-technical observer would correctly read as evasive in any other context — the fact that the subject matter is technical doesn't change how obviously evasive an evasive answer actually is.

Common Mistakes Non-Technical Founders Make

One pattern worth naming, even though its exact origin isn't traceable to a single named source: project managers widely use the term “watermelon report” for a status update that's green on the outside and red on the inside — a report that looks fine at a glance but hides real problems underneath, often because whoever's reporting knows that flagging red status gets blamed rather than helped. It's established, widely-used project-management jargon of uncertain origin, not a term coined by any specific person this guide could verify — but the pattern it describes is real and common enough to watch for deliberately.

  • Accepting “it's basically done” without asking what's left. “Basically done” can mean 95% done or 60% done with the easy parts finished — ask specifically what remains, not just for a percentage.
  • Treating a demo on a developer's own machine as equivalent to a real deployment. Something working “on my laptop” is meaningfully different from something deployed and working in a real environment, exactly the distinction covered above.
  • Not asking what happens when something goes wrong. Every real system fails sometimes — ask what the plan is when it does, not just whether it will.
  • Deferring every technical question rather than asking a plain-language version of it. You don't need the technical vocabulary to ask “why would that be hard” or “what would break if we did it the other way” — and a good developer can usually answer a plain-language question just as precisely as a jargon-heavy one.
  • Writing requirements as a solution instead of a goal. Specifying the exact button placement or database structure you imagine, rather than the outcome you actually need, removes the room for a developer's own expertise to find a better, simpler way to solve the same problem.
  • Assuming a working demo means the feature is finished. As covered above, the gap between something working in a demo environment and something working reliably in production under real conditions is one of the most common sources of founder-developer miscommunication.

Every mistake on this list shares a root cause worth naming directly: treating the technical build as a black box you either fully trust or can't engage with at all, rather than something you can ask plain, specific, informed questions about. None of these mistakes require you to have caught a technical error yourself — they require noticing when a question you asked didn't get a specific answer, and being willing to ask it again, more precisely, until it does.

Using AI Tools for a Second Opinion

AI tools like ChatGPT or Claude can genuinely help a non-technical founder get a plain-language explanation of an unfamiliar technical concept, or a second read on whether an explanation from a developer sounds reasonable. It's worth being grounded about the limits, though, using real, recent data rather than either hype or dismissal. Stack Overflow's own 2025 Developer Survey found that even among professional developers — people with real technical expertise to catch mistakes — only 29% said they trust AI's accuracy, 46% actively distrust AI output, and 45% cited AI answers that are “almost right, but not quite” as their top frustration, with 66% saying they spend more time fixing near-miss AI output than they would writing it themselves (Stack Overflow, 2025 Developer Survey, Dec. 2025).

This data supports a specific, honest way to use these tools: excellent for getting a second explanation of a concept you already half-understand, or for generating better questions to ask your development team. Much weaker as a substitute for actually verifying whether code someone wrote for you is correct — if experienced developers with full technical context still catch AI being confidently wrong, a non-technical founder relying on the same tool to independently verify code quality is on considerably shakier ground. Use AI to get smarter questions, not as a replacement for the code-review and vetting practices covered in our other guides.

A concrete, low-risk way to use this in practice: after a technical conversation you didn't fully follow, describe what was said to an AI tool in your own words and ask it to explain the concept back to you, or to suggest three follow-up questions you could ask to clarify. This uses the tool for exactly what the Stack Overflow data suggests it's actually good at — explaining and reformulating — without asking it to do the one thing even professional developers don't fully trust it to do reliably: independently judge whether real, specific code is correct.

Running the Project Day to Day

Combining the vocabulary and practices above into an actual day-to-day habit looks like this:

None of this replaces the deeper practices covered in our other guides — the due-diligence checklist for vetting an agency, the contract terms that protect your IP, the engagement model that fits your stage. This guide is the layer underneath those: the literacy that makes every one of those other practices easier to actually execute, because you understand what you're looking at well enough to know when something needs a closer look.

Frequently Asked Questions

What is the difference between a codebase and a repository?

A codebase is all the code that makes up your product. A repository is the specific place that code lives — usually on a platform like GitHub or GitLab — along with its full history of changes, tracked through version control (typically Git).

What does "deployed" mean?

It means code has been made to actually run somewhere real — a live environment with a real URL — rather than just existing, written, on a developer's own machine. Per Vercel's own documentation, a deployment is "the result of a successful build of your project."

What is the difference between staging and production?

Staging (or "preview") is a copy of your product used for testing changes before real customers see them. Production is the live version real users actually use. Reviewing a staging link and a production link are meaningfully different activities.

What does 99.9% uptime actually mean in real terms?

Calculated over a 365-day year, 99.9% uptime allows about 8 hours and 46 minutes of downtime per year. 99.99% ("four nines") allows about 52.6 minutes per year. Each additional "nine" is roughly a 10x reduction in allowed downtime and typically a meaningful increase in engineering cost and complexity.

Who actually invented the "As a... I want... so that..." user story format?

Agile coach Rachel Davies and her team at Connextra, a UK company, created the specific template in the early 2000s. Kent Beck introduced the broader concept of requirements as "stories" earlier, in the late 1990s. Mike Cohn popularized the template more widely through his 2004 book "User Stories Applied," but has credited Davies and Connextra directly rather than claiming to have invented it.

How can I tell if a technical demo is real or staged?

Ask to see it work on a device or in a context you didn't provide in advance, ask what happens with a small deviation from the exact steps shown, and ask if a different team member can reproduce the same result independently. The Nikola Corporation case — where a promotional video staged a truck rolling downhill to simulate powered motion, leading to a real securities fraud conviction — is the clearest documented illustration of why this scrutiny matters.

Should a non-technical founder use ChatGPT or Claude to verify code quality?

Use it for a second explanation of a concept or to generate better questions for your development team — that's a strong use case. Relying on it to independently verify code correctness is weaker ground: Stack Overflow's 2025 Developer Survey found even professional developers only 29% trust AI accuracy, with 45% citing AI answers that are "almost right, but not quite" as their top frustration.

What is a "watermelon report"?

Widely-used project-management jargon (of uncertain, unverified origin) for a status report that's green on the outside and red on the inside — appearing fine at a glance while hiding real problems underneath, often because reporting bad news honestly tends to draw blame rather than help.

What is a "ticket" or "backlog" in software development?

A ticket (or issue) is a single, trackable piece of work — a bug, a feature request, or an improvement — usually managed in a tool like Jira, Linear, or GitHub Issues. The backlog is the full list of tickets not yet actively being worked on. Asking to see the actual ticket board, rather than a verbal summary, gives you the same information your development team is working from.

What does it mean when a developer says a bug is "on the API side"?

It means the problem is caused by a third-party service your product depends on — a payment processor, a mapping service — rather than by your own team's code. This is often a legitimate constraint outside your development team's direct control, and a reasonable follow-up is asking whether the provider has acknowledged the issue or published a status update.

What is the practical difference between a feature that "works in a demo" and one that is actually finished?

A demo often shows a feature working in a local or staging environment, under conditions the presenter controlled. Finishing it typically means making it work reliably in production — with real user data, real traffic, and real edge cases a demo never encounters. This gap is one of the most common sources of miscommunication between non-technical founders and development teams.

A final, practical suggestion: keep this vocabulary somewhere you'll actually revisit, not just a page you read once. The value isn't in memorizing every definition today — it's in recognizing, three weeks from now, when a developer says “we need to check the API response before deploying to production,” that you already know exactly what each of those words means, and can follow the actual substance of what they're telling you instead of the tone of voice they said it in.

None of the vocabulary or practices in this guide require you to become technical. They require you to become literate enough that a technical conversation doesn't wash over you — enough to ask a specific, informed question, notice when an answer doesn't actually address it, and know the difference between a demo and a deployment, a staging link and a promise. That's a realistic goal for any founder willing to spend a few focused weeks on it, and it's the specific gap the research behind this guide says actually predicts whether a non-technical founder manages a technical build well.

Have a build brief already forming in your head?

Loomstrat Studio scopes, builds, and hands over production software in 3–6 weeks — fixed price, 100% repository ownership.