When Should a Startup Hire a Software Consultant?

Atomic Object works with all sorts of companies, from technical startups to established traditional businesses to Fortune 500 companies. We engage each company differently, trying to structure the engagement to best meet the needs of the client.

Startups, in particular, have a number of cost/benefit questions to consider before engaging a consultancy like ours. Depending on the situation, working with a consultancy can be a smart move or a bad fit.

At a high level, a consultancy gets you:

  • Access to a team with extensive experience that can hit the ground running
  • Relief from much of the churn and decision-making that can come along with assembling a team while making key technical decisions
  • The precise, planned control over your team throughput that comes from tapping into an existing talent pool, as opposed to the uncertainty of hiring in a competitive market
  • Reduced operational expenses from avoiding long-term payroll and benefits expenses

But there are also trade-offs and risks:

  • A consulting firm costs more per hour than a developer or designer hire, so you trade long-term operation expenses for a marginally increased capital expense.
  • Knowledge of a software system is largely institutional, existing in the minds of the team. This can put you at risk if a vendor is poor at sharing knowledge and access to artifacts.

Let’s consider these items in more detail.

Capital Expense vs. Operational Expense

In most cases, a top-tier software consultancy is going to cost more per hour than a traditional employee, let alone a technical cofounder who is forgoing market hourly rate pay for future gains is equity. Small, lean tech startups (for example) aren’t going to want to engage with us until they’ve found product-market fit or are leveraging outside investment to scale development capacity, if at all.

For other startups, however, partnering with a consultancy can be a less risky and capital-intensive proposition than hiring a team. Giving a startup concept a fair shot and getting to market in a reasonable timeframe can take a sizable team working at maximum productivity. Once the app, website, or other software artifacts are sufficient for market testing, development throughput needs drop substantially. In situations like these, paying the short-term premium to engage an experienced software development team for access to burst capacity–without committing to the long-term operational expenses of hiring tech talent–can be a significant win.

The benefits a consultancy brings stem from the flexibility in ramping team size up and down with project needs. At the very early stages, a product can only sustain a few key decision-makers. But as the core design and architecture solidify, team size can be ramped up to an optimal size, balancing cash-flow burn versus delivery timeline to the unique needs of your business.

Post-launch, the team needs often decline to a smaller group iterating with market and user feedback. Once the product stabilizes, you may want to suspend development altogether and go into maintenance mode until needs for a next phase of development are decided. Consultancies are well-suited to adapt to these ebbs and flows of capacity need, scaling up the team to meet short-term goals, and rotating team members off to other software projects to keep team size tuned to business needs.

Fast Acceleration vs. Growing Internal Expertise

A high-quality consultancy specializing in the kind of services your company needs will provide a very good value. (Atomic, for example, specializes in building software products and line-of-business applications across platforms and ecosystems, and we do so again and again.) Because consultancies can specialize in particular services, they’re well suited to providing immediate value from day one and executing effectively from the get-go.

This is a specialized skill, and one many software developers don’t possess to the same degree, if at all, due the nature of their day-to-day work. Many software developers spend their careers maintaining and improving legacy systems, which is a valuable and critical set of skills. However, it’s not the same technical skill set needed to design, architect, and build something new in a risk-managed way to fit within time and budget constraints.

Starting with a consultancy allows you to tap into the specialized skill sets of a team with a diverse background in many project types, who have learned the lessons needed to effectively navigate new paths. From the perspectives of software project management, product management, user experience design, and development practices and technology choices, engaging a company like Atomic allows you to hit the ground running on building core systems and establishing intellectual property without having to lose time and capital to repeating history.

Avoiding lock-In

But while a consultancy can help jumpstart development of a new business, it can also mean that knowledge of key systems may be largely held by a third party. One potential drawback of engaging a consultancy is that expertise in newly established systems lies outside of the startup itself. This can leave a company in a position of being beholden to a vendor to keep crucial operational systems running and maintained. It’s crucial, then, that any company engaged in this way has a long track record of healthy customer relationships and responsible behavior—we’ve had clients whose business was at risk when a relationship with a vendor turned sour.

A sign of a good vendor, then, is proactive support in pushing ownership of key artifacts to the client. You should own your code and production systems. GitHub organizations, Amazon services accounts, and even Confluence wikis should be under your company’s control. A healthy relationship with a vendor is a long-term partnership, and a vendor who relies on great work and great service to provide the best value over the long term is one who really understands this.

Transition planning

Beyond simple ownership of artifacts and systems, however, is internal knowledge about the system itself. Depending on the role of the system in an organization and its centrality to the core value proposition of the company, this expertise should largely be part of the company itself.

Proactive knowledge transfer to an internal team is a service you should expect of your vendor. As your company gains traction and you grow your technical team, insist on a structured way to allow close collaboration and education between the consultancy and your organization so you can facilitate hand-off of that knowledge. Better yet, converge on a plan early on to ensure this happens effectively down the road.

In many past projects, Atomic has built the initial release of a startup’s key system and helped vet technical hires for the company. Those new team members worked onsite with Atomic as one unified team, helping establish a deep understanding of the system within the new organization. This co-located, mixed-team strategy serves a dual purpose. In addition to enabling gradual deep knowledge transfer, it also serves to seed the startup with a healthy development culture and practices. New team members work directly with the Atomic team, practicing sprints, test-driven development, source control, and other key practices. This seeds the startup with a productive development culture from the beginning, instead of trying to establish it from scratch.

A Matter of Fit

Ultimately, deciding on whether to engage a consultancy, vetting candidates, and structuring an engagement are crucial for a young company. Consultancies are expensive in some respects, but a truly good one is an excellent value. It ultimately comes down to finding a good fit with a reputable company, proactively identifying and protecting against key risks, and determining whether the productivity and flexibility gains provided by a consultancy provide enough leverage to your organization.

Tell Us About Your Project

We’ll send our latest tips, learnings, and case studies from the Atomic braintrust on a monthly basis.

.test-table .table { width: 50% } @media all and (max-width: 500px){ .test-table .table { width: 85% } .table thead { display: none; } .test-table .table tr { display: flex; flex-direction: column; margin-bottom: 5px; } .test-table table th { content: attr(col); font-weight: bold; padding-right: 20px; width: 40vw; display:inline-block; vertical-align: top } .test-table table td { word-break : break-all; width: 40vw; text-align: center; } }