PulseRepo
FeaturesWho it's forHow it worksPricingFAQContact us
Sign inStart free
← All articles

7 questions to ask your software contractor at every sprint review

You hired a software team, the demo looks fine, and every sprint review ends with everyone nodding. But "it looks done" and "it is healthy" are not the same thing — and if you can't read the code, the sprint review is the one recurring moment where you can still tell the difference. You just need to ask about the right things.

None of the questions below require you to be technical. They're the same questions a good technical co-founder would ask on your behalf — reframed so you can ask them yourself, in plain language, and know what a reassuring answer sounds like versus one worth a follow-up. The point is never to catch your contractor out. It's to turn a passive demo into a real conversation about how the work is actually going.

The short version: at every sprint review, ask what shipped that a user can feel, how much time went to rework versus new work, who else could maintain each piece if one person left, what got touched that wasn't planned, whether new features arrived with tests, how much went in without review, and what had to be undone. You don't need to read code to ask these — and the answers tell you far more than the demo does.

1. What did we ship this sprint that a user can actually feel?

Start here because it grounds everything else in outcomes, not activity. A healthy answer names one or two concrete things a real user could now do that they couldn't two weeks ago — and the demo shows them. A weaker answer is a long list of internal work ("refactored the auth layer", "upgraded the framework") with nothing a user would notice. Internal work is legitimate and sometimes necessary, but if every sprint is invisible to users, that's worth a calm, direct conversation about where the time is going.

2. How much of this sprint was new work versus fixing and redoing old work?

This is the single most revealing question about the health of a project. Every team spends some time on bug fixes and rework — that's normal. But when sprint after sprint is dominated by fixing things that were "done" a month ago, it usually means the work is being rushed, tested too late, or built on shaky foundations. A good contractor will give you a rough split honestly ("about 70% new features, 30% fixes this sprint") and be able to explain any spike. If you can't get a straight answer, the git history can give you one directly.

3. If the person who built this had to step away, who else could pick it up?

Ask this about each significant feature, because the answer exposes your single biggest continuity risk. If the honest answer is "only Alex really understands the payments code", you have what's called a bus factor of one — one person leaving, going on holiday, or falling out with the agency could freeze a critical part of your product. This is extremely common in outsourced work and rarely surfaces until it's a crisis. You're not asking anyone to change how they work; you're asking so you know where the risk sits and can decide whether it's acceptable.

4. Which parts of the codebase did we touch that weren't in the plan?

A small, self-contained feature should touch a small, predictable set of code. When a simple change ends up reaching into many unrelated parts of the system, it's often a sign that the codebase is tangled — that things are more connected than they should be, so every change risks breaking something far away. A good team will tell you when this happens and why. If it happens on most changes, it's an early warning about maintainability that's much cheaper to hear now than in a year.

5. Did the new features arrive with tests?

Automated tests are the safety net that lets a team change your product quickly without breaking what already worked. The question to ask isn't "what's our test coverage percentage" — that number is easy to game. It's simpler: when we add a new feature, does a test show up alongside it, and when we change existing behaviour, do the existing tests get updated too? A team that consistently ships features with no accompanying tests is trading speed today for fragility and slower work later — and that trade is your money, so it's yours to understand.

6. How much of this sprint's work went in without a second person reviewing it?

On a healthy team, one developer writes a change and another looks it over before it becomes part of the product — this is called code review, and it's how teams catch mistakes and spread knowledge. If most of the work is written and approved by the same person with no second pair of eyes, you're relying entirely on one individual's judgment, and you're back to the continuity risk from question three. Ask what share of this sprint's changes were reviewed by someone other than the author. "Almost all of them" is a great sign about how the team works.

7. What did we have to undo or redo this sprint, and what did we learn?

Every team occasionally ships something and then has to reverse it — that's not a problem in itself, and a defensive "nothing, everything went perfectly" is often less trustworthy than an honest account. What you're listening for is whether the team learns from it. "We shipped the new checkout, saw errors, rolled it back within an hour, found the cause, and it's fixed" is a team that's in control. The same thing happening three sprints running, with no change in approach, is the pattern worth raising.

How do I get honest answers without just taking their word for it?

Here's the useful part: almost every question above can be answered directly from your project's git history — the running log of who changed what, and when, that every software project keeps automatically. How much was rework, whether one person owns a critical area, whether tests arrived with features, how much shipped without review — it's all recorded, whether or not it comes up at the meeting. As the client, you're normally entitled to read access to that history; it's worth agreeing to up front.

That's exactly what PulseRepo reads. It turns your git history into a short, plain-language list of the questions worth raising this sprint — not scores, not a verdict on anyone, just the handful of things you'd want to ask about if you could read the code yourself. You can see a sample report to get a feel for it. Walk into your next sprint review already knowing which of the seven questions above actually apply, and the meeting stops being a demo you watch and becomes a conversation you lead.

Frequently asked questions

Do I need to be technical to ask these questions?

No. Every question here is written for a non-technical founder or client. You're not judging the code — you're asking the team to explain, in plain language, what changed this sprint and why. A good contractor can always answer these without jargon; if they can't, that itself is useful to know.

Won't my contractor be offended that I'm checking up on them?

Not if you frame it as understanding rather than catching. These are the same questions a good technical co-founder would ask, and strong teams welcome them — it means you're engaged. The goal is a better conversation at the review, not a gotcha. Ask about the work, not the person.

How often should I ask these?

Once per sprint review — typically every one or two weeks. Asking the same short set every time is the point: you start to see patterns across sprints (rising rework, work always concentrated in one person) that no single meeting reveals. Consistency is what turns these from questions into a signal.

What is a bus factor, and why does it come up here?

Bus factor is the number of people who would have to leave before a part of your product became hard to maintain. A bus factor of one means a single person holds all the knowledge for something important. It's one of the most common and most expensive risks in outsourced work, which is why several questions circle back to it.

What if my contractor won't share the repository or its history?

As the client paying for the work, you're normally entitled to read access to the code and its git history — this is standard and worth putting in the contract up front. A refusal to share read-only access is itself worth a direct, calm conversation. You don't need to read the code yourself; you just need the history to be open to the people (or tools) who can.

Can I get answers to these without relying on the contractor's word?

Yes. Most of these questions can be answered directly from the project's git history — who wrote what, how much was rework, whether tests changed alongside features, how much shipped without review. That's exactly what PulseRepo reads to surface these as questions worth raising, so you can walk into the review already knowing what to ask about.

Is the point of this to catch my contractor doing something wrong?

No. The point is to ask better questions, not to reach a verdict. Git history and these questions surface things worth a conversation — a risk, a pattern, a surprise — not proof of wrongdoing. Most of the time the answer is reassuring, and the value is simply that you asked and now understand your own project better.

Keep reading

  • How to tell if your outsourced dev team is doing good work (without being technical)
  • What is bus factor, and why your startup probably has a bus factor of 1
  • See a sample PulseRepo report

Walk into your next sprint review already knowing what to ask. PulseRepo turns your project's git history into the plain-language questions worth raising — no scores, no surveillance, just a sharper conversation.

See the report you'll get →
PulseRepo

Process-health visibility for the people who care about a codebase — written as questions, never as a verdict on the people who build it.

Product

  • Features
  • How it works
  • Pricing
  • Sign in

Who it's for

  • Tech leads
  • Founders
  • Investors

Company

  • FAQ
  • Blog
  • Contact
  • Privacy
  • Terms
© 2026 PulseRepo. All rights reserved.Built for clarity, not surveillance.