In partnership with iTechArt UK
Outsourcing agencies are a great way to bring in additional skills and talent to your existing engineering team; they allow you to grow without committing to permanent employees and a costly hiring process. But working with an agency and securing the right contract for your needs can be complicated.
Full disclosure: I have 16 years of experience in Technical and Leadership positions, nine years of which have been in agencies, so you could say I’m biased. But those career choices are a reflection of how strongly I believe in the efficiency of outsourcing agencies. They offer flexible, cost-effective solutions to project teams, and I’m keen to help companies get the best from their partnership.
Generally, agencies offer two ways of working: fixed price projects or team augmentation.
Fixed Price Projects
Fixed price projects tend to be the best option when you’re working on a project with a clear scope and a well-documented list of requirements.
If your project and expected outcomes are clearly defined and there are no plans to make changes to the product during the development, then a fixed price agreement can work well. This is particularly true if the project is output driven and you simply want to pay an agency to deliver it for you. In this case, changes to agency teams or staff won’t directly impact the successful completion and delivery of the product.
Fixed price project work is probably less suitable for early stage startups or companies who change direction regularly. If the project criteria will change regularly then expect changing estimates. Regular scope changes would fit team augmentation (outlined below) much better as constant estimation reassessments will slow down the progress of the team.
Fixed price projects are also less suitable for builds that change the core platforms, especially if that platform is being updated regularly by other team members. This will cause confusion between the teams and make it hard for the agency to give you a reliable quote and timeline.
Similarly, if your project requires a lot of direct involvement from members of your existing team, this will make it hard for the agency to control overall delivery of the project and providing a fixed quote much harder. This also applies in cases where the platform contains a large amount of technical debt or legacy code, which only long-serving team members know how to work with.
I have seen many failed fixed price projects come to me unsure how they should proceed next. This is usually where technical decisions were made that were not suitable for the organisation — be it using two different languages and frameworks for what should be a simple platform, proprietary frameworks being used resulting in the platform becoming difficult to support and maintain, or just the described features not working as hoped..
When decisions are not defined in the original project scope, the agency will take their own decisions, mostly with the best of intentions. In these scenarios, the blame can be directed in both ways: The agency did not clarify with the client what they were building, the client wasn’t experienced enough to fully identify or verbalise their needs, or both. Either way, the gap in technical leadership caused issues resulting in the final product not meeting the business needs.
Choosing a Fixed Price Agency
If you have provided a clear brief and detailed requirements, your agency should be able to provide you with a fixed price quote and clear timelines for delivery. This should not change much once the project begins.
Before hiring an agency, you should also consider:
- Discovery Workshops – These are usually chargeable engagements. If you don’t have detailed requirements from the outset, these can be a really helpful way of getting a clearer scope that will guide the agency in the right direction.
- How clear the contract terms are at the start of your agreement. These should be fairly easy to navigate. Pay specific attention to exit clauses, commitment clauses, and payment timelines, and ensure that you’re happy with them from the outset. When paying a fixed price, it’s a good idea to ensure there is a warranty period built-in and that you are clear on exactly what is covered within this timeline.
- The handover at the end of the project and exactly how and when this will take place, as well as exactly what documentation you will be provided. Remember to ask about training days for your internal team to allow them to confidently take over from where the agency finishes.
Agencies can provide support with identifying the skill sets held by your current staff, and determining which additional skills are required.
This is a particularly useful option if you know that you will need to scale up and scale down your team regularly, or if the project criteria is subject to change during the design process. In reality, almost every project build is likely to incur some changes along the way; it’s more of the rule than the exception. Most teams need to adapt to changing business priorities, fluctuations in the global market and research data that indicates a need to shift the focus to different features or scenarios. From my experience, team augmentation is generally the more efficient and suitable option for most circumstances.
Keep in mind that if you’re using team augmentation services, it’s a good idea to plan for some internal team members to be available to support the agency and provide regular feedback and answers to questions during onboarding. This will ensure that the agency is enabled to deliver a product that meets your expectations.
Even though you’re outsourcing the work, you should consider the outsourced team as part of your workforce. Connect them with the wider team regularly and try to ensure they feel invested in the project, just like you would with your own team members.
I have seen team augmentation fail in the past when the client struggles to get out of the fixed price project mindset while having an existing complex platform solution. In one such case, the agency team was treated separately to the rest of the internal engineering team; little information and time was provided for onboarding, and initial estimates created by the agency engineers were made in hours and considered as commitment from the team. Unsurprisingly, missed estimates were considered poor performance rather than a need to improve and address the way development was planned and executed.
As with any new member of staff (internal or external), onboarding needs to be effective and allow time for engineers to get up to speed with the platforms they are working on to be able to effectively estimate any planned work.
In this case, this client would either need to adopt a more agile approach to a distributed team and the onboarding support required, or rely on a fixed price project approach. The latter however, would likely require a higher cost due to the amount of buffer that agency would need to add, to account for the unknowns in the platform.
Choosing a Team Augmentation Agency
Invest time in finding the right agency for your needs. You and your team will work closely with the agency team, so you need to make sure it’s a good fit and that you’re comfortable working closely together. Here are some key points to consider:
- Investigate whether or not the agency you’re working with has done work in a similar field in the past and whether they are familiar with your industry.
- Consider the size of the agency and talk through their ability to scale your project team up and down according to changing requirements. Think about specialist skills that your team might require further down the line such as quality assurance or DevOps, and find out whether the agency you’re working with can offer those additional services.
- Always ask for case studies when you are approaching an outsourcing agency. It’s a great way to learn more about their way of working with clients. There are also specialist websites such as Clutch which provide verified reviews and agency comparisons. Look for an agency with a strong industry reputation and a diverse range of positive reviews.
- Once you have identified an agency that you want to work with, ask for details about your account management team and how they propose working together. Ensure that you feel comfortable with the way information will flow between you and the agency and vice versa. Ask how often there will be feedback loops between your team and the offshore team members. Generally speaking, in the first couple of months, you should expect weekly meetings, reducing to three-to-four weeks once the team stabilises.
- Are there clear processes to follow if members of the team are not performing? Is there a timeline for replacing someone if issues are not resolved?
- Consider appointing a Project Manager, either within your own team or within the agency team. This will help to ensure the smooth running of the project and a clear line of communication between both teams.
- Consider the time zone of the agency you want to work with. Ensure there are at least a few hours of crossover time in your working hours. Similarly, bank holidays and public holidays for both your internal team and agency team should be transparent to set expectations and plan accordingly.
- If possible, try to interview each of the agency team members who will be working directly with your in-house team. This will give you the ability to confirm their language abilities and welcome them into the project. If it’s geographically possible, you could also arrange to make an on-site visit to the agency, or set up a team day in which agency staff and in-house staff work together. It can be a digital meetup if that’s all that is possible. This will help to build the connection between members of your team, although be aware that you will likely have to cover the expenses.
- Ask the agency about their staff retention rates and how employees are treated and supported. Good companies will have clear training plans, support services, and comfortable conditions for employees. Find out more about the way they recruit and how they train people internally. All of this will help to increase the retention rate allowing for a more stable team overall.
- When looking over agency contracts, look at the details: overtime rates, payment schedules, and terms, tax charges, sick pay and holiday pay, intellectual property ownership, the notice period for scaling the team down (one month is standard), and liability insurance.
- If you are working with an outsourcing agency abroad, be clear about the country in which you are contracting the work. Many outsourcing agencies have corporations based in several different countries and you will be subject to the laws of the country you are contracted to.
- Finally, remember that if you choose a specific agency because of its reputation for work within a specific sector or industry, you are unlikely to be able to ask for exclusivity. If you are concerned, you should be able to agree to a separation of your team from any competing companies.
If you do opt for an outsourcing agency, remember that if the agency consistently doesn’t meet your company’s needs, you shouldn’t be afraid to switch. You should never feel trapped in an agency that is not working for you. A client/agency relationship should feel transparent, easy to navigate and productive for everyone involved.