Skip to content
lazy devs
5 min readLazy Devs

Questions to ask before hiring a development team

A practical checklist for vetting a dev team or agency, with what a good answer sounds like and the red flags that should make you slow down.

Hiring a development team is a high-stakes purchase where you cannot really inspect the product before you buy it. You are paying for months of work from people whose craft you might not be able to judge directly. The sales call sounds good, the slides are clean, everyone is friendly. So how do you tell a careful, senior team from a confident one that leaves you with a half-finished mess and a bill?

You ask better questions. Not trick questions, just specific ones, and then you listen for whether the answers are concrete or vague. Below is the checklist we would use if we were hiring someone to build our own software. For each question, here is what a good answer sounds like and what a bad one is quietly telling you.

Scoping: do they cut features or add them?

Ask: "What is the smallest version that delivers value, and what would you leave out of it?"

A good team answers this fast and with opinions. They will name features they think you do not need yet, push some things to a later phase, and explain why a smaller first launch gets you to real feedback sooner. They treat scope as something to protect, not pad.

A bad answer is "yes, we can do all of that." Every idea is great, nothing gets cut, the timeline somehow absorbs everything. That is an order-taker, not a partner, and order-takers build exactly what you asked for even when what you asked for is wrong. If nobody on their side ever says "let's not build that," you will pay to discover the same lesson the hard way. Honest scoping is the single biggest predictor of a project that lands.

Stack choice: can they justify it without buzzwords?

Ask: "Why this stack for our project specifically?"

You do not need to understand the technical answer in full. You need to hear that there is a reason tied to your situation. A good team picks tools they know deeply and that fit the job. For most web products that means something boring and proven. We default to Next.js, Node, and Postgres because the plumbing is solved and the time goes into your actual logic, not reinventing auth and hosting.

The red flag is a stack chosen because it is trendy, or a wall of acronyms with no connection to your needs. If you hear Kubernetes and microservices for an app that will serve a few hundred users, that is complexity you will pay for and not benefit from. Resume-driven development is real, and you are the one funding it. A senior team is comfortable being boring on purpose.

Code ownership: whose product is it at the end?

Ask: "Who owns the code, the repositories, the domain, and the hosting accounts?"

The only acceptable answer is you do, from day one. The code should live in repositories you own, the cloud accounts should be in your name, and you should be able to hand the whole thing to another team and have them pick it up. Good teams set this up by default and will walk you through it without flinching.

Watch for anything that makes you a tenant in your own product: code hosted on accounts you cannot access, a proprietary platform you can only edit through them, or hosting locked to their infrastructure with no exit. If parting ways means losing your software, you do not own a product, you rent one. This is also a useful lens in the broader agency versus freelancer decision, because a solo contractor disappearing is a real continuity risk.

Testing and quality: how do they know it works?

Ask: "How do you handle testing, and what stops a change from breaking something else?"

A good answer mentions automated tests on the parts that matter (payments, auth, the core workflow), code review before anything ships, and a deployment process that can roll back when something goes wrong. They will be honest that they do not test everything to 100 percent, because nobody sensible does, and they will explain where they draw the line and why.

The red flag is hand-waving. "Our developers are experienced, so bugs are rare" is not a process, it is a hope. Software without tests works fine until someone changes one thing and quietly breaks three others, and nobody notices until a customer does. You want a team that treats quality as a system, not a personality trait.

Communication: how will you actually see progress?

Ask: "How often will I see working software, and how do I reach you between updates?"

You want a regular rhythm: a demo of real, clickable progress every week or two, a clear channel for questions, and a named person who is accountable. The key phrase is working software. Status updates that say "85 percent done" for a month are how projects hide trouble. Seeing the thing run, even rough, keeps everyone honest.

The bad version is silence punctuated by a big reveal at the end. The longer a team goes without showing you something real, the more likely they are papering over a problem. You should also be honest in return: builds move faster when one person on your side can make decisions within a day instead of routing everything through a committee.

Cost framing: do the numbers come with reasoning?

Ask: "How is this priced, and what happens if we discover the scope was bigger than we thought?"

A good team gives you a breakdown, not just a headline figure. They will explain what ships in each phase, how they handle changes mid-project, and the tradeoffs between a fixed price and an hourly arrangement. Crucially, they will bring up the cost after launch on their own, because software needs hosting, fixes, and dependency updates whether you budget for them or not.

The red flag is a suspiciously round, suspiciously low number with no detail, or a refusal to discuss what happens when reality intrudes. A cheaper rate that takes three times as long is not cheaper. The number that matters is the rate combined with how fast the team actually moves and how predictable they are when things shift.

The exit: what happens if we part ways?

Ask: "If this does not work out, what does the handover look like?"

This question tells you more than almost any other, because it forces the team to imagine losing you. A confident, senior team answers it calmly: you own everything already, the code is documented enough for another team to follow, and they will help with a clean handover. They are not afraid of the question because they are not relying on lock-in to keep your business.

A defensive or vague answer here is the loudest red flag on the list. If a team gets uncomfortable describing how you would leave, they are telling you the relationship is held together by dependency rather than results. The teams worth hiring keep you because the work is good, not because escaping is painful.

The takeaway

The pattern across all of these is the same. Good answers are specific, a little opinionated, and comfortable with the awkward parts. Bad answers are vague, relentlessly agreeable, and quietly designed to keep you dependent. You do not need to be technical to tell them apart. You just need to ask and then listen for which kind you are getting.

If you run this checklist past us, you will get the green-flag version of every answer, because that is how we have always preferred to work: senior people, boring proven tools, your code in your name, and honest scoping that protects your launch. If you would like to put us through it, start a conversation and ask us anything on this list.

Related service

MVP Development

A real product in users' hands in weeks, not quarters.

Learn more

Want this built right?

This is the work we do every day. Tell us what you are building and we will show you exactly how we would ship it.

hello@lazydevsagency.com