How to Build a Winning Development and Test Team
Build a team that delivers useful increments and catches problems early. Learn how to set accountabilities, integrate testing, reduce handoffs, and improve safely.
A winning development and test team can deliver a useful slice of product, verify it as work progresses, and learn from users without waiting on a chain of handoffs. Build around a shared outcome, make product and quality responsibilities explicit, keep testing close to development, and give the team enough autonomy to change and validate its work.
There is no universally correct tester-to-developer ratio or org chart. The right arrangement is the one that gives your team fast, trustworthy feedback and lets it deliver a complete outcome with manageable coordination.
1. Organize around a product outcome
Start with the user or business result the team is responsible for, not a queue of implementation tasks. Give the team a coherent product area and a goal it can make progress toward in small increments. Leaders provide context, constraints, and measures of success; the people doing the work need room to determine how to meet the goal and adjust their approach as they learn.
Scrum offers one useful reference model. Its 2020 Guide describes a Scrum Team with one Product Owner, one Scrum Master, and Developers, with no sub-teams or hierarchies. “Developers” is an inclusive term for everyone who creates an aspect of a usable increment, including specialists. Scrum Teams are cross-functional and self-managing, and the Guide says they are typically 10 or fewer people. Treat that size as Scrum guidance, not a universal headcount target. 2020 Scrum Guide
Whatever framework you use, keep the unit of responsibility small enough to have shared context and clear ownership. A team that owns a complete product outcome can make tradeoffs together; a group that owns only a stage in a process is more likely to optimize its own queue while work waits elsewhere.
2. Make accountabilities clear and shared
Clear accountability helps decisions happen where the relevant context is. In Scrum, the Product Owner is accountable for maximizing product value and managing the Product Backlog. Developers plan the Sprint work, uphold quality through a Definition of Done, adapt toward the Sprint Goal, and hold one another accountable. The Scrum Master supports understanding and use of Scrum and is accountable for improving team effectiveness. The whole team is accountable for a useful increment each Sprint. Scrum Guide accountabilities
For a development-and-test team, the practical consequence is that quality cannot be delegated to a final sign-off queue. Test specialists contribute valuable risk analysis, test design, automation, and exploratory skills; developers contribute code-level knowledge and help investigate failures. Both should be involved while a change is being shaped and implemented.
Agree on ownership for decisions such as:
- Who clarifies the user outcome and acceptance examples?
- Who decides what evidence is enough to consider a change ready?
- Who maintains automated checks and fixes flaky failures?
- Who investigates a defect, and how are findings fed back into design?
- Who can change scope when new information appears?
These answers can vary by domain. The important point is that they are understood and that quality work is part of the team’s normal delivery responsibility.
3. Put testers alongside developers throughout delivery
When testing happens only after implementation, defects arrive late, triage and repair take longer, and quality can feel like somebody else’s job. DORA recommends continuous testing, fast and reliable automated checks in the delivery pipeline, and testers working alongside developers. It also says a tester is a role and need not always be a full-time job. DORA: Continuous testing
That does not mean eliminating specialist testers. It means using their expertise throughout the work rather than making them a downstream approval gate. A specialist can help identify risky assumptions before coding, develop exploratory charters with the team, improve testability, and investigate unexpected behavior while the implementation is still fresh.
Use multiple kinds of feedback
| Feedback type | What it helps reveal | Good point in the workflow |
|---|---|---|
| Unit checks | Whether an isolated piece of code behaves as intended | During implementation and local development |
| Acceptance checks | Whether a running application or service meets expected behavior | In CI and on representative environments |
| Exploratory testing | Unexpected interactions, gaps in examples, and risks automation did not encode | Repeatedly during delivery |
| Usability evaluation | Whether people can understand and use the experience | When a working increment or prototype is available |
Automated checks and human evaluation answer different questions. Keep the suite useful by reviewing it and fixing failures that waste attention. DORA recommends feedback in less than ten minutes on local workstations and in CI; use that as a practical target for the fast feedback loop, not as a claim that every test or deployment must finish in that time.
Write a shared Definition of Done
Describe the evidence expected before work counts as done. Depending on the product, it may cover review, relevant automated checks, security considerations, accessibility, observability, documentation, and deployment readiness. Keep it concrete enough that developers and testers can apply it consistently. Review it as risks and product needs change.
Test automation should be a team capability. DORA cautions that when a separate group owns automation, distance from the code can make failures harder to fix. Developers and testers should be able to understand failures, improve checks, and remove flakiness together. Automation is not a substitute for exploratory or usability work.
4. Reduce handoffs by improving team and system boundaries
A team has more room to deliver when it can make a change, test it, and deploy it without repeated outside approvals or tightly coordinated releases. DORA describes loosely coupled teams in terms of those outcomes and emphasizes that architecture and organizational structure affect each other. A microservices or service-oriented label alone does not guarantee independent testing or deployment. DORA: Loosely coupled teams
Look for constraints in the actual workflow. Track or discuss:
- How often design changes need approval from outside the team
- How many releases must be coordinated with another service
- Whether validation can happen without a shared integrated test environment
- How much time is spent coordinating dependencies
- How many handoffs occur, and how long reviews or approvals wait
- Whether the team can test and deploy its part independently
Use these observations to find a bottleneck, not to rank teams. A shared environment may be essential for a particular system; the question is whether the dependency creates avoidable waiting and whether a boundary or test strategy can reduce it.
DORA attributes to its 2021 report a finding that elite teams meeting reliability targets were three times more likely than low-performing teams to have adopted loosely coupled architecture. This is an association reported for those groups, not proof that architecture alone causes performance. DORA: Continuous delivery
5. Give the team context and room to learn
Useful experimentation starts from a user problem or business outcome, rather than only from a fully prescribed story. DORA recommends giving teams the ability to pursue ideas, test them with users, revise specifications during development, and change stories without outside permission when appropriate. Autonomy still needs clear goals and constraints. DORA guidance on working in small batches
A practical learning loop is to agree on an outcome, make a small change or prototype, observe how users respond, and incorporate what the team learned. This is an application of that guidance, not a mandatory ceremony. Keep the loop small enough that feedback can still influence the next decision.
6. Build a delivery workflow that supports quality
Continuous delivery is a socio-technical capability: tools matter, and so do the boundaries and working relationships around them. DORA’s continuous testing guidance describes version control, CI, test data management, monitoring and observability, security in design and testing, and close collaboration as relevant parts of delivery. Increasing release frequency without improving architecture and process can raise failure rates and burnout. DORA continuous testing
Establish a simple path from a change to useful feedback:
- Keep changes in version control and make review expectations clear.
- Run fast checks close to the code, then broader checks in CI.
- Make test data and environments reliable enough to reproduce failures.
- Bring security and operational risks into design and testing.
- Use monitoring and observability to learn how changes behave after release.
- Review failures together and improve the system that produced them.
Microsoft’s overview of software development teams also discusses agile and DevOps practices, CI/CD, version control, automated tests, peer review, collaboration standards, built-in security, and continuous learning. Its examples include GitHub and Azure DevOps; these are vendor examples, not independent evidence that one tool is best. Microsoft: DevOps tools
7. Choose a team structure by its results
Centralized test groups, embedded test specialists, and cross-functional product teams can each fit particular contexts. The sources do not establish one staffing pattern or tester-to-developer ratio as universally best. Compare structures using evidence from your own flow:
| Question | What a useful answer tells you |
|---|---|
| How long from a code change to useful test feedback? | Whether the feedback loop helps the person making the change |
| How often does work wait for a testing handoff? | Whether specialist capacity is a bottleneck or integrated into delivery |
| Does exploratory and usability work happen during delivery? | Whether quality covers more than encoded checks |
| Can the team validate without a shared environment? | Whether system boundaries or test data create dependency waits |
| Who owns automation and defect investigation? | Whether the people able to fix issues can act on them |
| Can the team deliver and learn from a complete outcome? | Whether it has enough context and authority to improve the product |
Change one constraint at a time where possible, then observe whether feedback, waiting, and reliability improve. Avoid treating a role chart or a single delivery metric as a substitute for understanding the work.
8. Use measures to improve, not to pressure
Combine flow observations with product and reliability outcomes. Useful measures include wait time for review or testing, handoffs, time to receive actionable test feedback, coordination required for releases, the ability to validate independently, and whether reliability targets are met. Pair numbers with team discussion: a short wait can still hide poor feedback, and a high number of tests says little about whether they catch relevant problems.
Do not set release frequency as an isolated target. DORA cautions that increasing releases without improving architecture and process can increase failure rates and burnout. Ask whether the team can deliver safely, diagnose problems, recover, and learn from users.
9. Troubleshooting common team problems
| Symptom | Likely cause | Practical response |
|---|---|---|
| Testing starts after all development is complete | Test is organized as a separate final stage | Bring testers into planning and risk analysis; define examples before or during implementation. |
| CI failures take a long time to diagnose | Slow or flaky checks, unclear ownership, or distant automation ownership | Separate fast feedback from broader suites, make failure output actionable, and have developers and testers fix checks together. |
| Automation passes, but users still find problems | Automation covers encoded expectations but misses usability or unexpected behavior | Keep exploratory and usability evaluation in the delivery process. |
| Work waits for another team or a shared environment | Tight service coupling, scarce environment capacity, or a handoff boundary | Measure wait and coordination time, then improve testability, ownership boundaries, or environment access. |
| Teams release more often but reliability worsens | Frequency increased without corresponding improvements to architecture and delivery practices | Address reliability, observability, and failure recovery before adding pressure to release faster. |
| Developers and testers disagree about “done” | Quality expectations are implicit or differ by role | Write a shared Definition of Done and revise it when product risks change. |
| Teams cannot adapt a story after learning something | Decision rights are centralized or work is too large to adjust safely | Clarify outcomes and constraints, reduce batch size, and let the team revise scope within its authority. |
10. A practical starting checklist
- Choose one product outcome the team can own end to end.
- Make product, quality, and improvement accountabilities visible.
- Bring testing expertise into planning, implementation, and evaluation.
- Agree on a Definition of Done that includes relevant quality evidence.
- Keep fast, reliable automated feedback close to the change.
- Retain exploratory, usability, and acceptance evaluation.
- Identify one recurring handoff or dependency and measure its wait time.
- Give the team user context, constraints, and room to adjust its plan.
- Review whether delivery is both useful and reliable.
Or skip the browser setup
When your team needs website screenshots for visual checks, bug reports, or product review, you can capture them with a browser automation setup or use ScreenshotNeo, a website screenshot API and MCP server. One GET request returns an image or PDF. See the ScreenshotNeo API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" \
-d access_key=YOUR_API_KEY \
--data-urlencode url=https://stripe.com \
-o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({
access_key: 'YOUR_API_KEY',
url: 'https://stripe.com'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);
- Cookie banners are accepted and removed, along with known newsletter popups and chat widgets, before the shot; each step can be turned off.
- Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing; response headers report the page verdict and billing status.
- An MCP server gives AI agents tools to take screenshots, get page information, and capture PDFs.
- 1,000 screenshots a month are free with no card; paid plans start at $5 for 3,000 screenshots.
Sign up for 1,000 free screenshots a month, with no card required.
Frequently asked questions
Should every development team have a full-time tester?
Not necessarily. DORA says testing is a role that does not always need to be a full-time job, while recommending that testers work alongside developers. The needed specialist capacity depends on the product’s risks and the skills already on the team.
Does Scrum require a separate testing role?
No. The Scrum Guide defines Developers broadly as the people who create an aspect of a usable increment and assigns quality responsibilities to them. Specialists can be part of that group.
What team size should we target?
There is no universal optimal size established here. Scrum’s 2020 Guide says Scrum Teams are typically 10 or fewer people; use that as framework guidance and consider the coordination and skill needs of your product.
Does adopting microservices make a team autonomous?
No. Autonomy depends on whether the team can actually make changes, test, and deploy with limited outside coordination. Architecture labels alone do not establish those capabilities.


