Here is how to choose a software development agency: write a one-page brief, shortlist three to five firms that have shipped similar products, and judge them on evidence (live software, clients you call yourself, the people who will build yours). Then secure IP, repository access and payment milestones in the contract, and start with a paid discovery.
Most agency-selection advice stops at portfolios and review sites. Those prove an agency can make things look good. They do not show whether it will ship on a budget you can live with, warn you early when something slips, or hand over code another team can work on. The nine steps below are designed to find out before you commit to the build.
Step 1: write a one-page brief before you talk to anyone
Agencies quote what you describe. Describe it vaguely and five agencies will quote five different products, leaving you to compare prices for things that are not comparable. A one-page brief fixes that, and it doubles as a test: good agencies will question it.
- The problem and who has it. One paragraph, in plain words.
- The outcome and the date. “Ten clinics taking bookings by March” beats “launch an app.”
- Three to five core user journeys. Step by step, from the user's point of view.
- What already exists. Designs, a prototype, spreadsheets, old code, systems you must connect to.
- Constraints. Budget range, platforms, languages, compliance, hosting. Arabic and right-to-left layouts, for example, change estimates.
- What is out of scope for now. This line often saves more money than any other.
Share your budget range. Founders often hide it hoping for a lower quote, but agencies design very different solutions for different budgets, and without a number you get a proposal sized for someone else. If you are unsure what belongs in a first version, my guide to scoping an MVP walks through what to cut.
Step 2: build a shortlist of three to five agencies
The best source is founders who have shipped with an agency in the last couple of years. Ask what went wrong as well as what went right. Every project has a bad month, and how the agency behaved during it is the useful part.
Investors, accelerators and founder communities come next. Directory and review sites are fine for a long list, but treat them as a phone book, not as proof.
Then filter:
- Similar shape, not just similar industry. A marketplace, a booking system, a live tracking app and a content site are different engineering problems. An agency that has built your shape for another industry is often a better bet than one that has only built websites for yours.
- Size relative to your project. You want to matter to them. A small project at a large firm can end up with whoever is free; a large project at a small shop can swamp it.
- Working hours. You need a few hours of daily overlap with the people doing the work, wherever they are.
Stop at five. Beyond that you end up comparing proposals instead of vetting agencies.
Steps 3 to 5: check the work, the clients and the team
Step 3: use their live products, not their mockups
Ask for links to products in production and use them: download the app, sign up and try the core flow on your own phone. Is it fast? Does anything break? Do the store reviews mention crashes?
Check when it was last updated, too. If the agency still maintains a product years after launch, the client stayed, which tells you more than any testimonial.
Then ask exactly what the agency built. Portfolios can include projects where it did the design but someone else wrote the code, or built the app but not the backend. Mockups prove design skill. Only shipped, working software proves engineering.
Step 4: talk to past clients, including one they did not pick
Ask for two or three references, and make one a client whose project ended more than a year ago; that is where you learn about maintenance and handover. Then find one client yourself from the portfolio and contact them directly. References the agency chooses are its happiest customers. The one you find is closer to the average.
Questions worth asking:
- How did the final cost compare with the original quote, and why?
- When something slipped, how and when did they tell you?
- What happened when you changed your mind about a feature?
- Did you have access to the code from day one?
- Was the team that finished your project the team that started it?
- Would you hire them again?
Listen for specifics. “They were great” is a polite non-answer. “They told us in week three that the payment integration would take twice as long, and explained why” is a real reference.
Step 5: meet the people who will build it
The pitch team is often a founder, a salesperson and the agency's best architect. Your project team may look different. Ask to meet the project manager and lead developer who will actually be assigned, and ask how many other projects they are on.
Ask directly whether any work will be subcontracted to another company or to freelancers. Subcontracting is not automatically bad, but you should know who is writing your code.
Then give the lead developer the hardest part of your brief and ask how they would approach it. You are listening for questions and trade-offs. Instant confidence about a problem they heard five minutes ago should worry you.
Step 6: ask how they really work, week by week
Ask them to walk you through the last two weeks of a current project. Not the process slide, the actual two weeks. A strong answer covers most of this:
- Sprints of one or two weeks, each ending in a demo of working software.
- A staging environment where you can click through new features yourself.
- An issue tracker you can see, not just a status report about it.
- Code review on every change and automated tests on the important paths.
- A named person who flags risks and delays early, in writing.
- A clear change process: what a change costs, who approves it, what moves.
Two questions separate mature agencies from the rest. “Tell me about the last project that slipped and what you did.” And: “What do you need from me every week?” An agency that has never had a project slip is either very new or not being straight with you. One that needs nothing from you will build its own interpretation of your product.
Step 7: compare pricing models and proposals like for like
Agencies usually price in one of three ways:
| Model | How you pay | Fits when | Watch for |
|---|---|---|---|
| Fixed price | One price for a defined scope | Scope is small and truly stable | Change orders, quiet corner-cutting |
| Time and materials | Hours or days actually worked | Scope will evolve as you learn | Budget drift without a cap |
| Dedicated team | A monthly fee for a set team | Ongoing product work | Paying for idle time |
Each model moves risk between you and the agency in a different direction; I compare them properly in fixed price vs time and materials.
To compare proposals, line them up and check what each includes: design, QA, project management, deployment, app store submission and support after launch. Then read the assumptions, which is where the real differences hide. A quote at half the price of the others rarely reflects a smarter process. It usually means a smaller scope, a more junior team, or a plan to make up the difference in change requests.
Step 8: put the protections in the contract
You do not need an aggressive contract. You need one that keeps you in control of your product if the relationship ends. These are the terms I would not sign without:
- IP assignment. Code, designs and documentation made for you belong to your company once paid for, with a license to any tools the agency already owned.
- Repository access from day one. The code lives in a repository your company owns, with the agency invited in. Never “we will send the code at the end.”
- Accounts in your name. Cloud hosting, domains, app store developer accounts, payments and email services are registered to your company, with the agency added as users.
- Payments tied to accepted, working software, not to calendar dates or phases the agency marks as done.
- A warranty period during which defects found after launch are fixed at no cost.
- Subcontracting only with your written approval.
- Exit and handover. You can end the contract with reasonable notice, and handing over code, credentials and documentation is an obligation, not a favor.
Code and account ownership deserves more detail than fits here, so it has its own guide: who owns the code you pay for. Contract law varies by country and this is not legal advice, so have a qualified lawyer review the agreement before you sign.
Step 9: start with a paid discovery, not the full build
Before committing to the full build, pay your top choice for a short discovery phase, typically one to four weeks. It should produce clarified user flows, wireframes or a clickable prototype, an architecture and stack proposal, a prioritized backlog and a revised estimate with its assumptions written down.
Discovery is the cheapest way to see how an agency actually works: how it asks questions, pushes back and handles your feedback. Make sure the contract says the outputs are yours, so you can take them to another agency if you do not like what you see. It is also why my own engagements start with a two-week discovery sprint that ends in a roadmap, an architecture and a real estimate. A serious estimate needs that work done first, whoever is giving it.
Red flags when choosing a software development agency
Slow down, or walk away, if you see any of these:
- The lowest bid by a wide margin. Different scope, different team, or change requests later.
- No questions about your brief. An agency that quotes without challenging anything has not thought about your product.
- Yes to everything. Every feature, every deadline, every budget. Someone pays for that optimism, and it will be you.
- Subcontracting you only discover later. If they kept that quiet, ask what else they did not mention.
- No repository access until the final payment. Without access, you cannot check progress or move the work elsewhere if things go wrong.
- A proprietary platform only they can maintain. Acceptable if you choose the lock-in knowingly, a problem if you find out later.
- Slow, sloppy communication during the sale. This is them on their best behavior, and it rarely improves after you sign.
- Pressure to sign fast. A discount that expires on Friday pushes you to skip the reference calls.
Rule of thumb: judge an agency by the questions it asks you, not by the answers it gives in the pitch. The good ones spend the first meeting trying to understand your business.
Where to start
An agency is a good fit when you need a whole team quickly for a well-defined product and someone on your side can steer it. This week, write the one-page brief and ask three founders who they built with. Many of the ways outsourced projects go wrong are decided during selection and contracting, so this is where an extra week of care does the most good.
If nobody on your side can judge architecture, estimates or code, bring in technical help for the selection and the first months of the build. A part-time technical lead can run this process with you and review the agency's work afterwards. I compare the two roles, including when an agency on its own is the right call, in fractional CTO vs agency.
Frequently asked questions
How many agencies should I get quotes from?
Three to five is the sweet spot. Fewer than three gives you no sense of the range of approaches and prices. More than five turns vetting into paperwork, and you end up comparing proposals instead of properly checking products, references and teams. If quotes for the same brief vary wildly, the brief is usually unclear rather than one agency being cheap, so tighten the scope and ask again.
Should I choose a local software agency or a remote one?
Location matters less than shared working hours and accountability. A local agency makes workshops and an in-person kickoff easy, and a contract under your own country's law is usually simpler to enforce. A remote agency widens your choice and can cost less. Whichever you pick, insist on a few hours of daily overlap with the people doing the work, direct access to the lead developer, and the same contract protections for your code and accounts.
Is a software agency better than hiring freelancers?
An agency suits a project that needs several skills at once, such as design, frontend, backend and testing, coordinated by someone else, with continuity if one person leaves. Freelancers suit well-defined tasks when you or a technical lead can manage them directly, and they usually cost less per hour. The deciding question is who coordinates the work: an agency does it for you, while with freelancers that job is yours.
How long does it take to choose a development agency?
In my experience, a careful selection takes roughly three to seven weeks. Allow about a week to write the brief and build a shortlist, one to two weeks for calls, product checks and references, then a paid discovery of one to four weeks with your top choice. That feels slow when you are eager to start, but it is much quicker than recovering from the wrong agency months into a build.