Choosing the right software agency for your project – the questions to ask

Stick to this proven checklist and you'll never make a wrong choice again when choosing who to work with for a software development project

IT Consulting/Digital TransformationUPDATED ON August 2, 2021

Author

Careers page hero image

As a software agency and nearshore IT outsourcing provider with over 20 years of experience, we’ve had a lot of client relationships. And with all different kinds of clients across a variety of sectors. Huge international brands, big national brands, mid-sized companies with history, and exciting start-ups beginning their journeys.

We’re delighted to be able to say the vast majority of the many client relationships throughout the years have been positive and a significant number have continued for years. But there are also inevitably occasions when the match doesn’t work as well.

With experience, we’ve managed to reduce the number of unsuccessful client-agency relationships we have to a satisfyingly tiny number. We’ve achieved that by implementing a strict screening process to establish if we’re the correct fit for projects we’re asked to help with.

Some of our prospective clients have a lot of experience in working with software agencies and know what questions to ask and how to do their due diligence. Others are less experienced and we’ve learned we then have to ask the questions that establish if there is a good match between our services and company culture and what the prospective client needs and expects.

K&C - Creating Beautiful Technology Solutions For 20+ Years . Can We Be Your Competitive Edge?

Drop us a line to discuss your needs or next project

What is the difference between a software agency and an IT outsourcing company?

A good place to start is to define what exactly a ‘software agency’ or ‘software development company‘ is. Companies whose core business is to develop software for other companies and organisations describe themselves in several subtly different ways. There can be grey areas and cross-over between companies that call themselves software agencies, IT outsourcers or IT outstaffers, but as a general rule of thumb the way each works is:

Software agency

You tell a software agency what software product you need to develop – functionalities, usability needs and considerations, security requirements, minimum up and recovery time requirements, infrastructure requirements and budget (choice of server technology, cloud platform running expenses etc.) and usually some guidance around tech stack (front end should be React, preference for established, mainstream tools and technologies etc.).

The software agency’s in-house team will then build the software to that technical specification and business model. If all or most details are clear at the outset a software agency will often build the product for a fixed price and to a contractually agreed deadline though an agile approach is also usually an option. Their job is done when you sign off on the completed software.

IT outsourcing company

When working with a software agency you will usually only have limited direct contact with the team building your software – often just with the technical team lead. In contrast, working to an IT outsourcing model usually means you will be in direct contact with the team developing your product and often be involved in the process of putting it together. In some circumstances, an IT outsourcer might simply provide a team extension of a few specialists to work alongside your in-house team.

As a commercial model, IT outsourcing is usually based on a time-material agreement. That means rather than paying a fixed price for the finished software, you will pay the IT outsourcing company for each working day spent on your project by the team members. You will usually commit to paying for an agreed number of IT specialists for a minimum period of time which is often at least several months.

The IT outsourcing company will pay the team members according to their agreement with them and provide them with an office environment if working remotely, computer etc. Essentially, an IT outsourcer ‘lends’ you its employees temporarily. For the duration of the project, they work for you but when it’s completed they will move onto another project, often with another client.

We, for example, typically refer to ourselves as an IT outsourcer as a ‘catch-all’ but offer a range of cooperation models that cover those a specialist software agency, IT outsourcer and outstaffer would be expected to.

IT outstaffing agency

An IT outstaffer basically acts as a combination between a specialist recruiter and payroll company, while also providing office space, computers etc. if the team is remote. To all intents and purposes, specialists provided by an outstaffer are just like having your own employees except you outsource the recruitment and administration. The outstaffer will provide an itemised bill that breaks your costs down between salary, bonuses, other expenses, and their charge for the service.

A software agency selection blueprint that works!

Ultimately, establishing if there is a good match between your project and a software development company you are considering outsourcing it to is not rocket science. And while there is almost an element of risk in any new professional relationship, it can be significantly reduced by following a proven methodology.

For us, that is answering a checklist of questions on what the client and project expects and needs (the two are not always necessarily the same thing). There must be alignment on:

  • Tech stack
  • Team size
  • Flexibility and scalability requirements
  • Budget
  • Location and language proficiency requirements for team members.
  • Organisational culture and the personalities and professional approach of key stakeholders.

Asking the right questions on what is expected and needed across these considerations, we can establish compatibility or lack it, with a pretty slim margin of error. Follow the same approach and we’re confident you’ll massively improve your strike rate of contracting the right software agency for your next development project.

Define the role – what does the software agency have to do?

You wouldn’t just hire any software developer for a particular role. You’d hire the software developer with the right approach, set of skills and experience for that role. It’s a very diverse profession.

A software agency is less specialised because it employs tens to hundreds of developers, specifically because the variety of projects they work on will require different expertise. But most software agencies still have strengths and tech stacks and project types they have less experience of.

For example, at K&C we have a lot of experience building cloud-native software that runs on Kubernetes clusters. We’d be a natural choice to build an application with a DevOps architecture based on microservices, K8s and JavaScript.

We don’t have much experience working with software applications that involve Augmented or Virtual Reality. We probably wouldn’t be the optimal choice of software agency if you want to build an AR or VR-centric app.

Your first important task in the process of selecting a software development partner is, then, to define your project’s functionality requirements and technical specifications.

Hint: as far as it is possible, and unless you are developing a genuinely groundbreaking software solution it almost always is, stick to a popular tech stack and avoid obscure, niche and ‘shiny new’ but unproven/early-stage technologies.

You will save yourself a lot of future headaches, and potentially being locked into an unhappy marriage with a software agency, if your tech stack is one a lot of developers have experience working with. If a niche technology is recommended, make sure there isn’t a more popular alternative that can do the job.

Research tech stack before you shortlist software agencies

Ideally, you will have enough in-house expertise to define, at least in a big picture sense, the tech stack your software will be built using. For example, do you want your software to be built on a cloud-native tech stack?

If all your other software is run on AWS, there might be a clear preference or requirement for an AWS-native tech stack. Or your organisation’s strategy might be that all your software is built as vendor-agnostically as possible. Or security requirements might dictate you need a hybrid cloud architecture that will split the software’s load between public and private clouds.

Whatever the case may be, narrow your tech stack requirements down as far as you can then speak to software agencies that specialise in or have relevant experience using your core tech stack.

If there is a clear choice between technology and tools alternatives that do roughly the same thing, ask a candidate software agency which they would recommend and why. Often these choices come down to the personal preferences of the team working on the project and informed by what they have the most experience with.

That’s not necessarily a bad thing. But always make sure you will not be locked into using a niche technology or tool few developers have experience with. If elements of the tech stack will be decided by the team working on the project, agree to the principle that where there is a choice between alternatives, they always choose the most commonly used option unless there is a strong technical argument not to.

That’s especially important to communicate and audit if the team developing the software is responsible for deciding on its tech stack.

Can the software agency provide relevant case studies and references?

Always dig into the track record and references of any software development agency being considered. Can they provide relevant case studies and references?

You may be able to get an early feel for a company’s track record from their website, ie., does it provide a good selection of case studies and other indicators of an active and verifiable history?

Speaking directly to references may not chronologically be the first part of your software agency selection procedure. But that’s a practical necessity and not a reflection on how important it is to do your due diligence on track record.

A software agency should be able to immediately provide you with relevant case studies on request. But they will want to establish a dialogue to confirm you genuinely are a prospective client before putting you in direct contact with references.

A good reference is a powerful validation for a software agency when speaking to new prospects. But it also has to come from an existing or former client. These people will quickly ask to no longer be provided as a reference if bombarded by a regular stream of enquiries.

A B2B services company has to manage their best references well but you can still ask at the beginning of any conversation if it will be possible to speak to other existing and former clients a little further down the line.

Hesitancy, or being palmed off with “we can’t reveal client names because of confidentiality agreements”, should be a warning sign, even at an early stage. Lots of our clients won’t let us mention them by name in case studies on our website but would still be happy to confirm our work together in private communication.

When does IT Outsourcing work?

(And when doesn’t it?)

Your software development team – can an agency offer you the specialist numbers and flexibility you need?

One of the most important strategic advantages of working with a software agency instead of hiring developers in-house as full-time employees is the flexibility the approach provides. Software development and maintenance needs are often cyclical with modern organisations needing different specialists, in different numbers, at different times.

That’s obviously an issue when it comes to committing to expensive full-time employment contracts. A popular solution is for companies to directly employ a core IT and software development team, covering needs expected to be fixed over the medium to long term. IT outsourcing and software agencies are then used to provide the additional resources project cycles require.

That means it’s important to work with a software agency with the right scale, processes and business model for your needs. There’s a big difference between a 3 or 5-person team that will develop a new app over a couple of months and one building a complex piece of enterprise-level software with a team that needs to be scaled up and down significantly and make use of a variety of specialist profiles at different moments.

Make sure there is transparency and agreement around how a software agency will staff your development team. Will they recruit specifically for your project or allocate it to existing employees? That could make an important difference to how long it will take before you have a team ready to start work. If one of the developers working on your project has to go on extended sick leave or takes up another job offer 3 months into the project, does your software agency have the capacity to quickly replace that specialist without it having a major impact on the project timelines and meeting the deadline?

If your software agency is building a relatively simple product to a fixed-price agreement you may not need to worry much about all of the above. But always go into details about the capacity and flexibility prospective development partners can realistically offer and make sure they are willing to contractually commit to what’s been agreed. That goes for all projects but is especially crucial for larger, more complex projects.

Budget is always a factor

The reality is every commercial transaction has to find a balance between cost and benefit and it’s no different when it comes to finding the right software agency to work with. Software developers and other IT specialists are expensive. That’s simply the current market reality based on demand to supply.

But there’s still, of course, a sliding scale when it comes to the rates different software agencies charge. What rate you are able and willing to pay will depend on the business case for the software to be developed and the financial resources available to your organisation.

2 main factors influence the rates a software agency charges:

  • How much they pay their developers
  • Their margin

It won’t perfectly correspond every time but as a general rule, a software agency that pays their developers and specialists more can be expected to have higher quality, more experienced professionals at their disposal. They will also be able to hire more quickly, which shouldn’t be underestimated as a factor in a labour market as tight as that for IT specialists.

And a software agency with better margins can usually offer more flexibility and reliability when it comes to scaling teams up and down because it can afford to keep people ‘on the bench’ between projects for longer. Lower margins inevitably mean less flexibility.

Good management can optimise the price-to-quality-to-flexibility ratio a software agency represents. But good management still has to work within commercial realities.

We won’t patronise you by telling you a seemingly cheap option can turn out to be the most expensive option of all. Anyone with professional experience is well aware that applies to any service and not just software development. But it does highlight it’s important to have a good feel for market rates so you can judge if an offer sounds too good to be realistic. And to ask for clarification why if you are quoted rates that are higher or lower than the market averages.

Do you have language and location requirements for your software agency’s team?

This is a less important question of a software agency than it would be of an IT outsourcer or outstaffer but you might still have preferences and requirements when it comes to languages spoken by specialists and their physical location.

These days, many software agencies work with specialists based in nearshore and offshore destinations like Eastern Europe or Asia. They may not all speak English, or your preferred language, to a high level. That’s less important for team members you won’t have day-to-day contact with but you do need to have strong communication with at least a couple of people in the agency, especially with whoever communicates your requirements to the team building your software and will report back on progress.

That means it’s important to establish if these key individuals speak English, or another language, to the level that will allow for the necessary level of communication.

If onsite presence and meetings will be required, possibly at the planning or other key stages of the development project, you will also have to make sure you choose to work with a software agency that will be able to facilitate that. Make sure you don’t find out after it’s too late in-person meetings won’t be possible, or very difficult, due to factors like geographical distance and visa complications.

And make sure you confirm timezone differences won’t hinder your ability to communicate effectively throughout the process.

Are the personalities of key stakeholders and organisational culture compatible?

Finally, the success of any B2B service partnership is inevitably influenced by the professional relationships established between key stakeholders. These relationships rely on a combination of compatibility between personalities and the organisational cultures of both partners.

Assessing the ‘soft’ qualities represented by a software agency’s organisational culture and personalities of the key stakeholders on both sides is unfortunately not an exact science. There can be clues in how a software agency positions itself through its marketing and communication channels. But it ultimately often comes down to a judgement on how a software agency conducts itself during early communication.

Is communication clear and timely? Are the right questions being asked and is the agency’s approach detailed and structured? There is a good chance these early exchanges are a strong indicator of what can be expected of a software agency’s ongoing standards of communication and general approach.

Finally, do you feel like there are grounds for confidence positive professional relationships can be established with the people you are dealing with at the software agency on a personal level? We’re social beasts and even in a professional setting the simple question ‘will we get along?’, can be a crucial one to answer.

K&C - Creating Beautiful Technology Solutions For 20+ Years . Can We Be Your Competitive Edge?

Drop us a line to discuss your needs or next project

 

 

Related Service

Cloud Native Development, Migration, Infrastructure & Consulting Agency

Read more >

Kubernetes Consulting, Training, Support & Management

Read more >

Angular Development and Migration Services

Read more >