A few years back, I got a call from a CTO who had brought in an offshore firm that promised to deliver a fixed scope of work in six months. Five months in, the CTO discovered that only a fraction of the work had been completed and that the work was of low quality.
The CTO wasted both time and money, and lost significant market opportunity.
Whether or not you’ve personally been through an experience like this, I’m sure you will agree that choosing the wrong technology partner is painful.
In this blog, I'm sharing what I've learned over the past twenty-five years scaling successful tech companies, to help you avoid this pain. Choosing the right technology partner should feel like wind at your sails, helping you deliver quality products to your target market more efficiently than you could have done with your internal team.
Step 1: Rank the qualities you are seeking in a partner
There are various factors to consider when choosing the best technology partner for you.
Before choosing any specific tech partner, you must first identify the qualities that are most important to you in a third-party firm. Go through each of the qualities below and rank the importance of each quality as low, medium, or high. Or, for added clarity, stack rank each quality if possible:
- Location - Do you prefer that the teams you partner with be in the same cities as your employees? Or would you prefer they be onshore, nearshore or offshore? Does timezone matter? Or does location not matter at all?
- Tip: if you are looking to outsource work that will be collaborative and iterative, having core team hours when everyone is overlapping will greatly tighten your feedback loops and result in greater outcomes.
- Type of service offerings - within the outsourced tech industry, there are many nuances of how firms approach partnering with you. Some of the keystone offerings are listed here.
- Success criteria - There are three variables in software projects, according to the Iron Triangle theory: time, scope, and budget. You cannot fix all three variables. Identify your primary success criteria (Is it time, scope, or budget?) and choose an outsourced partner who can align with this.
- Billing model - The three primary billing models are
- Time and Materials - you pay for a set amount of time (e.g.,: team of four for six months).
- Fixed Fee - you pay for a set scope or a set of features to be delivered, regardless of the time it takes to complete.
- Fixed Budget – this is different from Fixed Fee. This is a set monetary amount, with variability in scope.
The problem with fixed fee - Many high quality outsourcing firms these days are against fixed fee arrangements, the reason being that scope is a fuzzy thing to agree upon up front. How many projects have you personally been on where the scope has remained static from start to finish? Probably none. Scope is dynamic and you want to partner with a company who can embrace and respond to this necessary change.
Any firm that does fixed fee pricing knows this, so will pad their pricing to include the reality that they are likely going to take longer than planned. With fixed fee, one party will get ripped off–we just don’t know which one until the end of the project. If you enter into a fixed fee arrangement and the firm delivers quicker than you thought, you are paying a premium, but at least you get your product. You might be ok with this.
But, the alternative is that the team delivers past the expected completion date. At this point, they are paying their employees to finish your project past the point at which they are making a profit, so be warned that this is when projects fail and get into real trouble. The outsourced firm and you are completely misaligned at this juncture: You want your work done well, and they want to just finish as quickly and cheaply as possible.
My opinion: avoid fixed fee unless you have extremely high confidence in your estimate.
How to do time and materials (T&M) and fixed budget well - So, if fixed fee is a risk, that leaves us with T&M and fixed budget. T&M and fixed budget best practice is to align up front on the definition of ongoing visibility into the team’s progress. Ideally, you’ll want weekly planning sessions (or, at minimum, every two weeks) where you see what the team has accomplished, scope out the next sprint, and align on priorities. There’s more to it than that, based on the details of the engagement. Anyone who contacts me about this will get a free hour of consultation here.
- Cost - there are large variances in cost and pricing structures for outsourcing firms, from the cheapest offshore prices to the highest end boutique ones to everything in-between. When considering cost, it is important to consider all costs involved:
- Monthly cost - One of the biggest mistakes technology leaders make is not taking the time to really understand what they are paying for when outsourcing.
- How many hours per month are you getting? Many companies have either minimum or maximum hours their teams work. For example, two different firms may quote you $8,000 per week per software engineer, yet Firm A will give you 32 hours per week and Firm B will give you 40 hours per week, so your ROI for the two firms will not be the same.
- Inquire as to any additional value and touch points you may get for being a partner. Maybe you’ll be entitled to quarterly business reviews where the executive team of the services company gets involved. These often provide very high value at no cost to you.
- Cost of rework and delay (as discussed in The CTO's Guide to Outsourcing Software Development) – I unfortunately get tons of calls from CTOs who say “I just spent $50/hr per engineer for six months for a team of four and I found out everything that the offshore team did has to be redone.” It’s a good idea to spend some time up front to identify potential areas where rework or delay can be costly, and then create a proactive plan to manage against these risks.
- Cost of idle time - the farther apart the time zones are between you and the outsourced team, the longer the idle time gaps are. Overlapping work hours are ideal, especially if you are collaborating and working on complex tasks. You do not want 8-24 hours to lapse every time the team gets stuck because they have a question. I know that many tech leaders, including many of you reading this guidebook, have distributed teams globally, so you are well versed in the cost of idle time across time zones.
- Overhead costs - In addition to paying for the team you hire, find out if there are other overhead costs. These may include any principal- or partner-level employee who may be your liaison, travel time, software licenses, etc.
- Savings - And a bit of good news to conclude the cost section. When you outsource, you do incur cost savings. All of the overhead costs you incur with your in-house team, like office space, benefits, management, HR, recruiting, training, onboarding, offboarding, etc, will be saved. I know it’s not black and white here, because even with outsourcing there will be some costs, but there will be savings, too.
- Leverage models - all outsourcing firms have their own leverage models. Some are top-heavy with mostly senior talent, some are bottom-heavy with mostly junior talent, some are balanced. You may or may not be able to pick the precise leverage mix for the team you get, but you will be able to get a sense of the leverage model at the firm.
- Skill set / capabilities - Some companies hire generalists, some hire specialists. Many hire a mix of both. Many firms will also have their own set of other firms they outsource to for specialty areas they cannot service.
- W2 vs 1099 - Some firms hire the individuals that work for them as full-time employees and train them in a certain set of best practices, and some work with individuals as 1099 freelancers, not employees. A key thing to know here is: If the outsourced firm hires their folks as W2 employees, the firm likely will provide their own management for these employees, which is key. If the firm hires their folks as 1099 freelancers, they likely will not provide any training or management of these individuals, and that will fall to you to invest your own time and money here.
- Transitioning ownership from them to you - This is critical and must be understood up front. You do not want to wait until the outsourced firm has delivered what you paid them to do and then find out about their transition practices. Find out how firms transition ownership of the products/features they build, from their team to you. Yes, you’ll want this documented at a high level in the Master Service Agreement (MSA). But, the MSA isn’t going to cover all of the on-the-ground details. That’s up to your team and the third party team to work out. At Stride, we place a lot of emphasis up front on ensuring we are crafting software that your team can ultimately own. As such, we’ll make sure we use tools and technologies that work for you, and we store all of the artifacts in locations that are owned by you. This is done from day one. Not all firms do this, however, and I’ve gotten too many calls from CTOs who want to offboard an unsuccessful third party but fear doing so because the third party is essentially holding code and artifacts hostage.
- Flexibility/Adaptability - There is a sliding scale here. Some firms pride themselves on ‘their way,’ and some will completely adapt to ‘your way.’ Firms that want to do things ‘their way’ believe that they have a unique set of best practices, and that’s a big part of their value. Figure out if you want a team who take direction, both in terms of what to do and also how to do it, if you want a team to teach your team best practices, or if you want something in between. Ideally, if you can identify the areas where you want someone else to teach your team best practices, you can find a team that wants to bring those best practices to your team.
- Maintenance and 24/7 support - there are specialty firms that focus solely on maintenance and/or 24/7 support. If you are seeking one or both of these services, find out what the third-party firm offers and what they recommend.
Step 2: Create a short list of tech partners that meet your needs
Once you rank the qualities above, you are ready to start selecting the specific technology partner that meets your needs.
Start by creating a list of companies to choose from, so that you can measure them each against your criteria from above:
- Define success of the engagement. At Stride, we kick off our engagements by defining success with our clients. We often find that various stakeholders have different–and often actually conflicting–definitions of success. If you can start to define what success means internally before you start speaking with third parties, it will help you be more efficient in your search.
- Seek recommendations.
- Peers - Ask your peers whom they recommend. If your peers don’t have recommendations, go online to peer communities (e.g., tech events, social media, slack, etc.) and post a question online.
- Employees - Ask your employees, including your C-Suite, board members, investors and employees on your team, for a list of all firms they’ve partnered with in the past and ask for introductions to their key contact at these firms.
- Google search the right way. There’s a right and a wrong way to search the internet for an outsourced firm.
- Thought leaders - Connect with thought leaders who are speaking about the problems you are trying to solve. Search places like Reddit, Slack, LinkedIn, Quora and podcasts- to see who’s talking about things that you are looking for help with, and then contact those people. If they aren’t the right fit, ask them who they’d recommend.
- Communities - I also like to search communities like Reddit and the others I listed under “Thought leaders” to see what firms are coming up as recommendations for problems the community is looking to outsource.
- Ask everyone you speak with for additional recommendations. This may seem odd, but in fact this is one of the most efficient things to do. Any time Stride speaks with a company that is seeking to potentially partner with us, we assess their needs and very quickly recommend that they either continue conversations with us or we refer them to one of our many dozens of partners. We probably refer to partners about 30% of the time. There are many solid, high quality services firms that are small to mid-sized, and each has its specialties. The more we can work together, the better off we all are.
Step 3: Select your ideal technology partner
Once you have a small list of potential partners, it’s time to select your partner. You’re armed with your stacked criteria, your definition of success, and your list of recommended firms. To narrow down the field and select the ideal partner for you:
- Speak with at least 3 companies - to compare and contrast answers. Create a list of questions that you ask all firms you speak with. Ideally, you have a list of questions for the tech team you’ll actually be working with day-to-day, as well as a list of questions for the stakeholders of the firm. The questions should help you get answers to your stack ranked qualities from above.
- Estimate your ideal start date – find out when the firm can start the engagement. Often the answer depends on various factors, yet it’s possible to identify an estimated start time and figure out if that works for you.
- Align on values – this is very important and often overlooked. You are going to want to partner with a firm that shares a core set of values with you. This doesn’t mean the company values have to be identical, but rather they should align.
Step 4: Build in flexibility to enable change over time
Building in flexibility and optionality is key. What your team needs today will not be what it needs tomorrow.
As discussed at the end of The CTO's Guide to Outsourcing Software Development, consider ways to build in optionality.
You are now armed with a four-step process for helping you choose the ideal technology partner for your software development needs.
Yet, this is only the tip of the iceberg. As you have questions, I’m here to help. I’m offering two free consultation sessions for anyone with access to this blog. The devil is in the details and I want to be there to support you as you go through this journey. Email me at firstname.lastname@example.org and mention this guidebook and we can go through any and all questions you have.