Skip to content

Working together

How to Choose a Software Development Company: Questions to Ask and Red Flags to Watch

Updated June 2026 · 9 min read · by Brian

Most guides on how to choose a software development company are written by software development companies, which is a little like asking the fox to grade the henhouse security. This one is written from the buyer's seat. The goal is simple: give you the small set of questions that actually separate a partner who will ship working software from one who will bill you for eighteen months and hand you a codebase nobody can maintain. The hard truth is that the sales pitch is almost never where the risk lives. The risk lives in who does the work after you sign, what you own when it is over, and how the relationship behaves when something goes wrong. Ask the right questions early and most of the bad outcomes become visible before they cost you anything.

The single most important question: who actually writes the code?

If you ask only one thing when deciding how to choose a software development company, ask who will personally write your code, by name, and whether the people in your sales meeting are the people who will be in your repository. This is the question that exposes the most common and most expensive pattern in the industry: the senior-demo, junior-delivery bait-and-switch. A seasoned architect runs the pitch, wins your trust, and signs the deal. Then delivery quietly transfers to a rotating bench of junior developers, often offshore, while the senior person moves on to the next sale. You paid for judgment and got headcount.

The damage from this is not abstract. Junior teams without senior oversight produce code that works in the demo and falls apart in production. They make architecture decisions they are not equipped to make, accumulate technical debt you will pay interest on for years, and churn so often that no single person ever holds the full picture of your system. By the time the cracks show, the senior who sold you is long gone and the warranty conversation is awkward.

Press for specifics. Ask how many people will touch the code, what their experience level is, where they sit, and whether the senior person you are talking to will be writing and reviewing the actual work or merely supervising from a distance. Vague answers here are the answer. A senior-led, single-owner model removes most of this risk by construction: when the person who architects the system is the person who builds it and the person you call when it breaks, there is no handoff to go wrong and no gap between what was promised and what gets delivered.

Who owns the code? The answer must be: you do

Intellectual property ownership is the second question that should never be left to assumption. When the engagement ends, you should own the source code, the documentation, the deployment configuration, and everything required to run and extend the software without the vendor's permission. The correct answer to who owns the work product is unambiguous: you do, from day one, with full access to the repository as it is written rather than as a final handover.

Watch for arrangements that quietly retain leverage. Some firms grant you a license to use the software while keeping ownership of the underlying code. Others hold the source in their own repositories and release it only at project completion, which gives them enormous power in any dispute. Some build on proprietary frameworks or internal libraries that you cannot use or maintain without continuing to pay them. Each of these turns a one-time project into a permanent dependency.

Read the contract specifically for the words assignment of intellectual property, source code access, and what happens to your code if the relationship ends. If a vendor hesitates on any of these, treat it as a signal about the entire relationship. A partner confident in the value of their ongoing work has no reason to hold your code hostage.

Fixed-scope or time-and-materials? Match the model to the work

Pricing structure is where good intentions meet reality, and neither fixed-scope nor time-and-materials is universally right. Fixed-scope contracts work when the requirements are genuinely well understood and unlikely to change. They give you budget certainty, but they punish discovery: every change becomes a change order, and the incentive shifts toward delivering exactly what was specified even when everyone can see it is the wrong thing. Vendors who quote a precise fixed price for vague requirements are either padding heavily for risk or planning to make their margin on change orders.

Time-and-materials suits work where the path is uncertain and you expect to learn as you build, which describes most genuinely custom software. The tradeoff is that it requires trust and visibility, because you are paying for effort rather than a defined outcome. The way to make it safe is not to avoid it but to demand the controls that keep it honest: short iterations, working software you can see every week, and the ability to stop or change direction at any point without penalty.

The structure matters less than the cadence. A partner who shows you running software on a weekly rhythm gives you the real protection, which is the ability to judge progress with your own eyes instead of trusting a status report. That cadence works under either pricing model and is worth more than any contractual clause.

References, support, and how the relationship behaves under stress

Ask for references and actually call them, but ask better questions than whether they were happy. Ask whether the people who sold the engagement were the people who did the work. Ask what happened when something broke, how long it took to get a response, and whether the estimates held. Ask whether they still own and can maintain what was built. The useful signal is not praise; it is how the vendor behaved when the project got difficult.

Get specific about support and service levels before you sign, because this is where many engagements quietly fail. Establish what happens after launch, what response times you can expect for critical issues, who you actually reach when you call, and whether support is the same senior person who built the system or a separate ticket queue that has never seen your code. A clear, written understanding of post-launch support tells you whether the vendor sees you as a relationship or a transaction.

Finally, weigh communication directly. You should know who your single point of contact is, how often you will see progress, and in what time zone they work. Distributed teams across many time zones can add days of latency to every decision. A U.S.-based partner working in your business hours, with one accountable person who answers the phone, removes a category of friction that buyers consistently underestimate until they are living with it.

  • Promises of senior talent in the pitch, with no named commitment that those people will write your code.
  • Reluctance to assign you full source code ownership and repository access from the start.
  • A precise fixed price quoted against vague or unfinished requirements.
  • No working software to show until late in the project, with progress reported only as status updates.
  • Large teams with high turnover, offshore delivery, and no single accountable owner.
  • Vague or evasive answers about post-launch support and response times.

Putting it together

Choosing well is mostly about removing risk rather than chasing the lowest bid. The cheapest proposal often carries the highest total cost once you account for rework, change orders, lock-in, and the cost of a system nobody can maintain. The questions above are designed to surface those costs before they reach you.

The pattern that quietly resolves most of these risks at once is senior-led, single-owner delivery: the person who architects the system writes it, owns the relationship, supports it after launch, and hands you the code along the way rather than at the end. That is not the only valid model, and larger programs sometimes genuinely need larger teams. But for most custom software and enterprise integration work, fewer handoffs means fewer ways for the engagement to go wrong. When you evaluate any vendor, measure them against that standard: clarity on who builds it, certainty that you own it, and a cadence that lets you see the truth every week.

Frequently asked

What is the single most important question to ask a software development company?
Ask who will personally write your code and whether the senior people in the sales meeting are the same people who will be in your repository. The most common and costly pattern in the industry is the senior-demo, junior-delivery handoff, where experienced staff win the deal and a rotating junior bench does the work. If a vendor cannot commit by name to who writes and reviews your code, treat the vague answer as the answer.
Who should own the source code when the project is finished?
You should, and ideally from day one with full repository access as the code is written. Look in the contract for assignment of intellectual property, source code access, and what happens to your code if the relationship ends. Be cautious of vendors who grant only a license to use the software, hold the source in their own repositories until completion, or build on proprietary frameworks you cannot maintain without paying them indefinitely.
Is fixed-price or time-and-materials better for custom software?
Fixed-price suits well-defined work that is unlikely to change and gives budget certainty, but it punishes discovery and rewards change orders when requirements are vague. Time-and-materials fits genuinely custom work where you expect to learn as you build, provided it comes with short iterations, weekly working software, and the freedom to change direction without penalty. The cadence of seeing running software matters more than the pricing label.
What are the clearest red flags when choosing a development partner?
Watch for a bait-and-switch between the pitch team and the delivery team, reluctance to assign you code ownership, a precise fixed price quoted against vague requirements, no working software to show until late in the project, large teams with high turnover and no single accountable owner, and evasive answers about post-launch support and response times. Any one of these is a reason to dig deeper before signing.
Why does a senior-led, single-owner model reduce risk?
Most failure modes in software engagements come from handoffs: between sales and delivery, between developers who churn, across time zones, and at the final code handover. When the person who architects the system also builds it, supports it, and hands you the code as it is written, those handoffs disappear. Fewer transfers means fewer gaps between what was promised and what gets delivered, which is exactly where buyers lose the most money.

More guides