What every CTO should know about hiring an external software development partner
How to find the right software development partner
Having a software development team of your own, you surely know how challenging it is to scale your team — the market’s tough when it comes to getting great candidates, especially in-house. Hiring an in-house team means you’re recruiting, onboarding, training new people. Extending your team with external help is usually a faster and more efficient way to grow the team, but it can also pose challenges. Don’t worry, though, we’re here to help you avoid them.
In this article, we’ll guide you through some essential aspects of hiring an external team, such as:
- selecting the right company to work with
- the importance of good communication in a distributed team
- the common mistakes of outsourcing.
Let’s start with item number 1 on our list: selecting a company to work with.
Choosing your software development company
That seems simple, right? I’d just Google “software development company”, read some reviews, browse case studies, and there we go, the choice is made and the award goes to… Hold on a second, it’s not that simple.
We’ve already covered the absolutely essential steps of selecting the software house to work with here, and today, we’re sharing some more tips on what to look for and what mistakes to avoid.
The bare essentials — a recap
In the beginning, it’s good you research software development companies that provide services you need. To make sure you’re only focusing on legit companies who deliver, you can go to portals such as Clutch, where companies’ clients share reviews along with ratings. The clients rate software development companies looking at many factors: delivery, communication, time & budget.
That should give you an overview of what the company does and, if you feel curious about their work, you can see more details of their projects in their portfolio. All of that so far is pretty obvious, but there are also aspects that are a little more tricky, like cultural alignment.
Check the cultural alignment
Once you’ve checked the tech stack, the portfolio, and maybe even blind CVs, and gone through some client reviews, there’s still one very important thing ahead of you: checking the cultural alignment.
This step is often overlooked, but in practice, it makes a difference. Unfortunately, the fact that a company has had 100 clients or has a pretty good score on Clutch does not translate into the instant success of your cooperation. Software projects can last months or years, depending on your needs, and it’s important that “new people” on your team are a good fit for your company. It’s not 100% like a recruitment process but it’s still a bit similar: you want to make sure that the people you hire do their jobs well but are also collaborative, communicate well, and are fun to work with.
Understand the importance of good communication
Checking the cultural alignment can also be a bit tricky since it’s sometimes hard to say how well you’ll work together. The most important things to pay attention to are the culture of work and communication.
The culture of work covers all matters related to project management. For example, following the principles of Agile, planning, reporting, presenting demos, or generally work ethic and taking responsibility for the job. Communication is complementary since good project management practices will already cover most of the guidelines on that. But it’s not just about having daily standups and weekly planning, it’s also about communication somewhere in the middle of it all.
The external team should be able to tell you all about the technical details, but also have some understanding of business and be decent conversationalists. “Decent” is absolutely sufficient, the chit chats are just a nice addition, not the focus of your cooperation :)
When thinking about how well your team-to-be handles communication, including channels, regularity, guidelines, and soft skills, you should also remember about checking how well they speak the language that you will all be speaking. Most of the time, teams and clients speak English, but the speaking skills vary across the world and it’s important that you understand each other without having to ask “What was that again?” a hundred times.
Spot the red flags
During the talks with your potential partner, you should never ignore red flags. If you disagree on matters that are very important to you, chances are that you won’t build a long-lasting partnership with such a company. Spending time together will help you see whether they’re the people you want to be around. And don’t forget to ask all sorts of questions! How do they approach project management? How will they update you on progress? Can you scale your team up fast if necessary?
And since we’re talking about asking the right questions, here’s a list to help you deal with that: FAQ.
These questions include matters related to:
- software quality
- data security
- intellectual property
- time estimates
… and many others.
You can read more about finding the best team out there here, and in the meantime, let’s move on to the common mistakes that you should avoid.
Common mistakes of outsourcing
Plenty of people have outsourced their projects, or parts of their projects, to external teams. Some of them built successful products, others failed. And let’s face it: whether you choose the right partner plays a significant role in your project’s success.
Vetting your potential partner on their expertise and cultural alignment is one thing, but then there’s still so much room for error… Luckily, others have failed before you and now, you can learn from their mistakes to save yourself some time, money, and shivers of horror.
Look out for these traps:
1. Underestimating communication
Communication plays a huge role in every software development project, during the interviews and the whole cooperation process. It’s essential that you establish guidelines for the regularity of communication, channels, and your expectations. It’s best when you’re honest and as clear as possible, and you should expect the same from your partner. Communication can make or break a business relationship, so it should not be underestimated.
Having in mind all that, and given that we’ve been a fully remote company since day 1, we had to figure out the dos and don’ts of communication and collaboration in a distributed team. You can learn more about how we’ve organized our remote work culture, how we communicate, and what tools we use in the “Remote software development” ebook.
2. Ignoring the location
While working in different time-zones is not a problem anymore since we’re getting increasingly accustomed to working with people from all over the world and can always find ways to adjust, cultural differences are more difficult to overcome.
Cultural differences can influence a number of elements that are crucial in the development process, like reporting, decision making, assigning tasks, and the definition of completing a task. In different parts of the world, people have contrasting work habits and management practices — so while talking with your potential partner, make sure to discuss work organization and choose the best project management methodology to suit your needs. Additionally, no matter the methodology, make sure that you maintain regular and clear communication and some things are established from the get-go, including goals, milestones, success criteria.
3. Imprecise expectations
You may hire an external team at different stages of product development: when it’s still just an idea, a work in progress, or a full-blown product waiting for new features. And at every phase, you can fail to express your expectations. If you want your partner to deliver quality work (and yes, you do), you must provide the team with clear objectives, requirements, detailed descriptions. If you’re not feeling confident about getting your message across to the team, don’t jump into the development phase right away, start with workshops that will help you get to know each other better, find common ground, exchange ideas, and kick-off the project with all essential elements checked off the list.
When working in Scrum, the product is developed iteratively, leaving space for adjustments when necessary. Each sprint consists of planning, development, review & demo, and retrospective. Thanks to that, the team can improve the efficiency of their work and fix any issues from sprint to sprint. Additionally, project kickoff at the beginning of collaboration sets rules for communication, management, and delivery and allows all sides involved to gain a good understanding of the expectations, requirements, goals, and priorities.
4. Prioritizing price over all else
Naturally, price is a key factor that should always be taken into account, but it’s not the sole most important thing. Going for the cheapest option available can easily backfire, even if the company promises wonders at this very low price.
Luckily, our instincts protect us or are at least trying to do so. If something is “too cheap”, it feels like there’s something wrong with the service. And that’s often the case. However, hiring a cheap but inexperienced team with no actual client reviews is very risky as the costs of delays and mistakes can be higher than what you would pay for the more expensive outsourced team. It’s important to remember that your time is money too, so balancing price and quality is essential. Naturally, looking at price range is just the right thing to do, but then, there are also other factors (as described in the points above) that you should consider when selecting the vendor.
Building a successful partnership
Finding the right company isn’t always easy. There are companies out there who have fallen victim to false promises. Others may have miscommunicated their expectations and left the partnership disappointed. That’s exactly why we suggest taking this decision carefully, verifying the candidates, taking some time to get to know them, asking questions. if you’re having problems listing all the things you should ask, use this FAQ — the questions most commonly asked by our clients before they started working with us, like:
- How do you assure software quality?
- What tools do you use in your development process?
- How do you estimate time?
- Do you actively contribute to IT communities?
These questions and small pieces of advice such as “check their reviews” may be obvious, but they’re also easily forgotten in the process. So when you’re about to make an important decision like that, get your checklist ready and have a full picture of the company before you commit.