A software agency is a firm that designs, builds, and maintains custom software for client businesses. Rather than selling a standardised product, it assembles engineers, designers, and quality assurance specialists to solve a specific organisation's technical problems on a project or retained basis.
What a software agency does
Agencies take on work that sits outside a client's internal capacity or expertise. Common engagements include:
- Custom application development -- building internal tools, customer-facing platforms, or workflow automation systems tailored to a client's processes rather than adapted from off-the-shelf software.
- Digital product development -- delivering web apps and mobile apps across iOS, Android, and browser-based environments, with attention to UX and UI design alongside functional requirements.
- Technology consulting -- advising on stack selection, architecture, and build-vs-buy decisions before a line of code is written.
- Legacy modernisation -- re-platforming or replacing older systems while keeping the business running during transition, including data migration and staged cutover planning.
- Ongoing support and iteration -- maintaining and extending systems after launch, often under a retainer or support agreement.
The agency model gives a business access to a range of specialisms -- backend engineering, frontend development, infrastructure, QA -- without the overhead of hiring and retaining each discipline permanently. For decisions about team size and composition, see how many engineers you need.
How software agencies are structured
Most agencies organise delivery around a project team: a lead or principal engineer, supporting developers, a designer, and a project or product manager. Larger agencies may add dedicated QA engineers, security specialists, or data engineers depending on scope.
Engagement models vary. Fixed-scope projects suit well-defined requirements; time-and-materials or retainer arrangements suit iterative product development where scope evolves. Agencies working on iterative delivery typically follow Agile or Scrum cadences, running short development cycles with regular client review points. For an overview of the main process models, see differences between SDLC models.
Technical decisions agencies commonly handle
Agencies make consequential choices about the tools and infrastructure a client's product will depend on for years. A few areas where those decisions matter:
- Backend-as-a-service -- tools such as Firebase and Supabase can accelerate early development but involve trade-offs in cost, control, and scalability. See the differences between Firebase and Supabase and what backend-as-a-service means.
- Frontend framework selection -- the choice between React, Next.js, or a dedicated mobile framework such as React Native affects long-term maintainability and performance. See React vs Next.js and pros and cons of React Native.
- Hosting and infrastructure -- the tradeoffs between serverless, managed hosting, and self-hosted infrastructure have cost and operational implications. See pros and cons of different web hosting forms.
- No-code and low-code boundaries -- some scopes are better served by tools like Webflow than by custom code. See when to use Webflow vs custom development.
What to look for when choosing an agency
Relevant portfolio depth. Past work in a similar domain -- regulated industry, high-transaction systems, consumer mobile -- is a stronger signal than general case studies. Look for evidence of long-term client relationships, not just completed launches.
Honest scoping. Agencies that invest time in understanding requirements before quoting tend to produce more accurate estimates. Vague or unusually fast scoping is a warning sign.
Quality assurance practice. QA should be integrated throughout development, not treated as a final check. Ask how the agency handles security reviews, performance testing, and accessibility compliance.
Communication and transparency. Regular progress updates, clear documentation, and accessible project tooling reduce the risk of misalignment as projects develop.
Support continuity. Understand who maintains the system after launch, how quickly critical issues are handled, and whether the agency can scale support as the product grows.
In an AI-native team
Coding agents and agentic coding workflows are changing how agency engineers work: more time is spent directing, reviewing, and verifying generated code than on line-by-line authorship. This raises the importance of engineers who can critically evaluate output they did not write -- a skill that matters both for quality and for security, since AI-generated code requires the same thorough review as any other. See how much production code is AI-generated and what changed about code review for context on how this is playing out in practice.
What we test for
When placing engineers into agency-style client roles, we assess both foundational ability and AI-native practice through two structured sessions. The first tests core engineering fundamentals without AI assistance; the second is an AI-native session involving agents and generated code, specifically examining whether a candidate can verify, critique, and take responsibility for code they did not personally write -- the competency that differentiates capable AI-native engineers in a client-facing context.
Short answers
What is the difference between a software agency and a product company?
A product company builds and sells its own standardised software to many customers. A software agency builds custom solutions for individual client businesses, owning the delivery process rather than the resulting product.
When should a business use a software agency rather than hiring engineers directly?
An agency suits businesses that need a full team quickly, have a time-limited or well-scoped project, or lack the internal capacity to hire and manage engineers. Direct hiring makes more sense when the work is ongoing and the domain is central to the business.
How do software agencies typically charge for their work?
Most agencies use fixed-price contracts for well-defined scopes, or time-and-materials billing for iterative work. Retainer arrangements are common for ongoing support and product development where requirements evolve over time.