Organizations are increasingly looking to software development companies for support, which is why the IT outsourcing market is projected to reach a revised size of US $410.2 billion by 2027, according to Research and Markets. With CTOs across all sectors ramping up capacity to engineer software that scales to growth strategies, what does onboarding a software outsourcing partner look like? Read on to find out.
Phase 1: Making first contact and signing a Master Service Agreement
Gartner research reveals that only 11% of organizations meet their defined internal launch targets. As a result, companies are turning to dedicated development teams to speed up software release cycles, achieve a faster time to market, create new revenue streams, implement new technologies and accelerate digital transformations. These aims are made more challenging given the difficulties in finding and retaining experts, with Korn Ferry reporting that “by 2030, there will be a global human talent shortage of more than 85 million people. Left unchecked, in 2030 that talent shortage could result in about $8.5 trillion in unrealized annual revenues.” It’s clear why a company contacts a software outsourcing company – but what comes next?
Determine whether a software outsourcing company fits your culture:
Look for missionaries, not mercenaries: 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.
Refer to case studies, testimonials, referrals: Case studies are an indicator of what cooperation looks like in practice. They verify whether a company can live up to its promises, demonstrate technical competences, highlight battle-tested methods and reveal what a partnership can achieve.
Aim for a value-driven, not task-driven, partner: Forward-thinking software development needs to adapt to changing business goals, reflect users’ expectations and integrate emerging technologies. Value-driven, or people-driven, outsourcing delivers a greater return on investment (ROI).
Jump on a discovery call:
A preliminary call to understand why a company is looking for software development support, the focus should be on the desired software goals. An outsourcing company will endeavor to learn as much as possible about the business context, project priorities, operating realities, scope and potential evolution of the cooperation.
Protect your rights and safeguard your ideas:
Signing an NDA is optional, but advisable, as it encourages smooth operations and speeds up processes. It enables both sides to explore more details about architecture diagrams, study product demos, share confidential documents regarding systems and platforms and ensure the protection of intellectual property and internal files.
Conduct a technical call and draft a cooperation proposal:
A more detailed version of a discovery call, a technical call is essential to understanding what kind of team should be built and what kind of expertise is needed to achieve business goals. It enables both you and your outsourcing partner to exchange documentation, elaborate on product goals, clarify the size and shape of a team (including roles and skillsets), propose a tentative structure (to be refined in the next stage), share a desired timeline and schedule and discuss the option of providing a minimum viable product (MVP).
Once agreement is reached on the scope, team composition, timeline and budget, it’s time to prepare a cooperation proposal that follows a time & materials approach. Since product requirements and a project’s final aim change frequently, more and more companies are opting for a time & material model, which supports adaptability – clients simply pay for the time developers spend on a project.
Sign a Statement of Work:
Once a cooperation proposal has been accepted and terms are agreed on, a Master Service Agreement (MSA) and Statement of Work (SOW) can be drafted and finalized.
An experienced software outsourcing partner will be able to provide a user-friendly template for a client to complete but will also be willing to work according to a client’s form. Final versions of these documents should be reviewed by legal representatives from both sides, which may require additional amendments. The timeframe can vary, depending on modifications, but usually does not last longer than 2-3 weeks.
Phase 2: Establish ways of working between in-house and outsourcing teams
Once the Preboarding stage is finalized, it’s time to establish the Ways of Working. You and your software outsourcing partner will need to agree on the practical details of the cooperation between the external development team and your in-house staff. Defining expectations before the project starts helps both parties navigate the onboarding process and build the foundations of a successful partnership.
The first thing is to determine what kind of team you’d like to have:
- Autonomous teams. A client provides product requirements, and the external team delivers the desired outcomes. An external team is fully managed by the outsourcing partner and communication between the team and the company is usually limited to exchanging information, giving updates and reporting outcomes.
- Dedicated external teams managed by an in-house product owner. A client’s product owner is actively engaged in planning the product backlog and works closely with external developers by prioritizing product requirements and giving feedback on the team’s work.
- Mixed teams. This team is comprised of both in-house and external developers, who are integrated into a client’s team in terms of planning, assigning tasks and deciding on the technical direction. A mixed team is supported by the outsourcing company’s software delivery manager who helps solve potential issues, manages the external team’s structure and oversees their skill development. Since external developers merge with the in-house staff, their onboarding process proceeds faster as team members easily exchange knowledge and solve problems together.
Regardless of the type of team, organizations should look to an Agile approach for their software development, which delivers real-world value, including:
- Faster software delivery – A development team can deliver small “packages” in shorter periods.
- Better visibility – Tasks are planned with weeks, rather than months, in mind.
- The ability to react quickly to market changes – Deployment in small batches enables faster feedback.
- Enhanced troubleshooting capabilities – By planning tasks within shorter periods and working in smaller batches, potential issues are found and solved early, which saves time on major bug fixes and lowers delivery costs.
- Easy assembling of cross-functional autonomous teams – A skilled team with a clear task backlog delivers results and encourages a culture of trust and ownership.
Communicate effectively with your remote development team
Since near- and offshoring teams support organizations remotely, it’s crucial to establish channels and mutual expectations around communication. This ensures the external development team has the necessary means to contact stakeholders in your organization and that your stakeholders get relevant information when they need it.
Depending on the form of cooperation, the external development team will regularly communicate with your developers over chat or video calls. Before a project starts, you and the software outsourcing company will decide on the communication tools you will be using.
Next, the team sets up relevant channels for external and in-house developers. In some cases, organizations also create a separate channel for internal departments. Here, an external team can relay information on new functionalities or implemented changes that affect department processes.
Phase 3: Form productive relationships
An external development team spends the first few days of a software project getting acquainted with the way an organization works – from the business and IT perspectives. Preferably, these meetings are held on site so that everyone can get to know each other, and the outsourcing partner’s team can experience first-hand the culture of a client’s organization. If not possible, workshops can also take place online.
Depending on the agenda and individual schedules, workshops can be broken up into several time blocks across a few days so that participants can also tend to their regular daily tasks.
Introduce your software development partner to your organization through business workshops
Workshops introduce an external development team to a company’s culture, goals, operations and anything else regarding the product they’ll work on. The people involved in these meetings consist of product stakeholders in a company. Depending on the project, that can mean product and business owners, people in internal departments, but also end users outside of an organization.
Make sure you identify all the groups that will use or influence the product, or whose work will be affected by it. If it’s not possible to invite users or customers to talk about their experiences, include in-house experts who can thoroughly present the user perspective. Workshops cover:
- a client’s culture, mission, values and structure,
- a client’s business environment, key customers and challenges,
- users’ perspective on the product, including user interface, flows and business cases,
- a client’s main goals.
Create opportunities to share knowledge
While the business workshops help an external development team gain a deeper understanding of a project, technical workshops help them navigate technological paths. Depending on an organization’s structure and the form of cooperation (autonomous vs. mixed teams), the people involved in these meetings usually include a CTO, software architects, team leads and domain experts.
Technical workshops introduce a software development partner to:
- system architecture and its other key aspects,
- existing software development and delivery processes (when applicable),
- important systems, repositories, knowledge sharing platforms,
- existing application code,
- tools used in development and adjacent processes.
Encourage collaboration through regular in-person meetings
While remote collaboration has advantages, meeting your new support team face to face significantly enhances the partnership. When working mainly online, it can be difficult to find the time to get to know each other. But forming social connections is as crucial to the success of a project as data security or project management. Without established rapport and trust, teams might struggle to discuss problems, brainstorm solutions and align their goals.
That’s why it’s a good idea to give the external and in-house experts a chance to integrate so they can have a more casual chat and find some common ground outside of work – the sooner, the better.
At the start of a collaboration, you don’t have to get too bogged down in logistical details, but it generally helps to agree on how often both organizations are willing to meet up so you can plan budgets more accurately. The recommended frequency of meetings is three to four per year so that the team members who will work closely together have enough opportunities to catch up.
To get step by step explanations, insights from software delivery experts and best practices for onboarding a software development outsourcing company, check out this practical guide:
About the authorMarek Jodko
Head of Team Excellence and Software Delivery Director
Head of Team Excellence and a Software Delivery Director with almost 15 years’ experience, Marek has worked on projects with international clients across financial services, banking, travel, healthcare and pharmaceutical industries. His background as a tester, business analyst and project manager empowers him to lead cross-functional teams of experts with a management style that embraces Agile values. His experience identifying feature requirements and managing product backlogs enables Marek to form transparent and trusting relationships with clients to aptly address their software needs and champion value-driven digital transformations.