With research showing the international value of the IT outsourcing sector is forecast to hit $937 billion USD by 2027, companies have no shortage of options when it comes to finding a software development partner to ramp up capacity and speed up software delivery. But what kind of partner should CTOs look for and how can they effectively integrate an external team into their technological strategies and growth plans? Read on to find out.
In explaining the difference between building companies fast versus building companies to last, legendary venture capitalist John Doerr argued for the need to find missionaries, not mercenaries. The difference? According to Doerr, “Mercenaries are driven by paranoia; missionaries are driven by passion. Mercenaries think opportunistically; missionaries think strategically. Mercenaries focus on their competitors and financial statements; missionaries focus on their customers and value statements.”
Doerr’s beliefs struck a chord and are often repeated by product-oriented companies around the globe, who are increasingly turning to outsourcing companies to support their growth, speed up software development and create new revenue streams. Why? In today’s fast evolving economy, leading companies understand the importance of developing products quickly while always being prepared to pivot and change direction. Missionaries have all the technical skills of mercenaries, along with a dedication to a client’s business and enthusiasm for developing innovative solutions that make an impact. A prevailing, and incorrect, assumption is that software outsourcing company can only provide mercenaries. But finding the right outsourcing partner who can build a team of talented missionaries is possible, provided you know what to look for.
The biggest obstacles to forming a team of missionaries are ineffective leadership, inadequate staffing and inefficient processes. Working with a capable software outsourcing team means getting the dependable ownership, creative talent and proven ways of working needed to augment engineering capacity, speed up software development life cycles and drive growth strategies.
Choose a partner with a missionary culture and top-notch talent
When deciding which software company to team up with, the first thing to pay attention to is an outsourcer’s commitment to your needs, not just a willingness to discuss the advantages it can deliver. The best partner is one who strives to understand your business, challenges and goals. A partner only concerned with advertising their greatness will not be able to give the commitment you need for the results you want.
Of course, technical skills and a proven track record are important benchmarks of success and will give insights into an outsourcer’s capabilities. Take note of real-life examples from their own experiences, but don’t just focus on achievements. Indeed, best practices are the results of successes and failures, as a credible software partner should have tried and tested methods that include knowledge of what worked, and what didn’t.
Beyond experience, the mission and vision a company aims for, along with the values it believes in, offer a profound look at the culture it espouses and the character of its employees. Obviously, the mission and vision between you and your outsourcing partner will be different (product company vs service company) but check if they are focused “internally” on self-excellence or “externally” on helping you grow your business. The mission, vision and values of a company shape its culture and will impact the engagement of employees. Engagement is key, as research shows that 71% of executives say that employee engagement is critical to their company’s success, and companies with high employee engagement are 21% more profitable. Forbes reports that companies with highly engaged employees outperform their competitors by 147%. Having similar values is a good indication that the cooperation between your in-house staff and external development teams will be smooth and productive.
Central to the success of a project is selecting a way of working that promotes collaboration, not competition. That’s why a cooperation, or team model, works best. Avoid companies that propose one manager as a single point of contact, as this concentrates too much influence into a single person. Of course, there should be a hierarchy and division of responsibility, but engaging all team members and exchanging views is fundamental to developing software that delivers value. Communication should be ever-present and status updates should occur on a daily, not weekly basis.
When interviewing potential outsourcing partners, evaluate their attitudes to communication and the methods they use, in particular their preferences for communicating with Product Owners. It’s also important to verify whether they are focused on the product or only concerned about writing ‘beautiful’ code. Find out if they are interested in becoming involved during the ideation phase or build phase, as the earlier they come aboard, the better.
Onboard your external development team
Selecting an outsourcing partner is the critical first step, but a client must also be deeply involved in onboarding the external development team. Make sure the team your outsourcing partner provides goes through the same onboarding process as your own employees. Of course, you can omit parts not applicable to them, but it’s essential that they participate in every training session related to your company culture (especially mission, vision and values). Sadly, it’s a common mistake to skip this part and jump right into product architecture. Before this happens though, an external development team must be familiar with the market you operate in, know your competition, be aware of your marketing strategies and understand the strong and weak sides of your products and services. Involve Product Owners to explain internal processes and most importantly, the vocabulary your in-house team uses.
Consider outsourcing as just another aspect of the diversity your company embraces, like gender, age and sexual orientation. What outsourcers bring to the table, besides their personal experiences, is a company full of technological expertise on a wide range of topics. If you’re thinking about introducing something new, instead of looking for an external consultancy firm, start by asking your outsourcing team if they have relevant experience with it. There is fair chance, given the diverse projects for clients across industries, that some of their experts can help you. Outsourced developers should be treated by everyone else in your company like any other employee. Encourage them to participate in company activities like all-hands meetings, social gatherings and integration events. Though people have become used to onboarding remotely as a result of COVID-19, it helps tremendously to do onboarding on-site at your company premises. By being in your office and working alongside your team, external developers will not just learn about your culture, but experience it.
Give your outsourced developers the same level of infrastructure access that your employees have. It’s possible that your security teams will tell you that it cannot be done due to GDPR, SOC 2, ISO and other data privacy certifications. But experience shows it’s very rarely true and comes from an overuse of a ‘better safe than sorry’ approach. If you get pushback from one of your teams, ask them to explore the issue and propose at least 2 or 3 solutions that enable you to move forward with an equal rights policy. In the words of a great CTO, a security team is not paid to say, ‘no can do’ but ‘this is how to do it safely.’ Accessing information and eliminating data silos are key to increasing communication. At a time when 48% of organizations say their top collaboration hurdle is ineffective communication between team members, the importance of accessibility cannot be underestimated. Moreover, tracking access, delegating responsibilities and monitoring domain technology are standard procedures that should not put extra demands on a company’s operations. Granting access to the right people eliminates the risks that comes from a single point of contact, increases information flows and speeds up software deliveries.
Establish a productive environment
Study after study shows how important a work atmosphere is, both to employee satisfaction and revenue. Gallop estimates that employee disengagement costs the US economy as much as $350 billion USD per year. Creating a nurturing atmosphere that inspires creativity will bring out the best in people. Outsourced talents should know that it is ok to make mistakes, as software development often requires experimentation that can produce good and bad results.
Far more important than trying to avoid making mistakes is establishing spheres of responsibility. If roles are not clearly defined, chaos will undoubtedly ensue. Developing software requires high levels of cooperation, as the work of one engineer is dependent on the work of another. If there are multiple components and different lines of code for the same task, the work that subsequently follows needs to align with what has preceded it.
This close level of cooperation should extend to all aspects of development. Instead of following a strategy that is based on approvals, use a consultancy approach whereby developers document their actions, share their ideas with stakeholders, gather feedback and based on this information, either implement changes or reject the suggestions. At the end of the day, developers must take ownership and be held accountable for a given functionality.
But there is a difference between holding someone accountable and conducting a witch-hunt. It is crucial to carry out blameless post-mortems so that a team can learn from mistakes and improve. Team members should know that if a mistake is made, the person responsible for it will be expected to fix it. Making a mistake is part of the software development process. However, not learning from a mistake and repeating it is inexcusable. If done well, this exercise will lead to a stronger team; if done poorly, it will trigger resentment and hinder future cooperation.
Encouraging an atmosphere that produces missionaries, not mercenaries, results in a product-focused, technology-driven approach. This means the entire development team should focus on actionable, not vanity, business metrics. These metrics should be reviewed frequently: working in iterations (sprints) requires a weekly review, while with continuous flow fashion (Kanban), reviews should be conducted once every two weeks. The conclusions drawn from these reviews should be framed against the desired metrics, and work adjusted accordingly to ensure those metrics are met. The analysis should be done by the entire team, so that a Product Owner/Manager does not overshadow the insights of others. Above all, it is important to trust in a process and follow a ‘build-measure-learn’ approach advocated by Eric Ries in his highly informative book The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses.
Contact our experts if you want to learn more about building a cross-functional engineering team that fits into your culture and manages your software development.
About the authorPiotr Jachimczak
Software Development Director
A Software Development Director with almost two decades' experience, Piotr has worked on international projects across the financial, ecommerce, fintech, telecommunications and biotech sectors. For the past 11 years, Piotr has managed UK and US projects for Software Mind, which has enabled him to observe, analyze and design best practices for the British and American markets. The close relationships Piotr has developed with leading UK-based organizations and Silicon Valley companies, including unicorns, gives him a unique perspective and invaluable insights into all phases of the software development life cycle.