The Secret Art of… Software Development Outsourcing—Part IV







The Secret Art of… Software Development Outsourcing—Part IV

Published: 2018/08/30

7 min read

Once You Make Your Decision…

After a lengthy process of searching for a proper outsourcing partner, you have finally made your decision. Now what? How do you verify that your newly chosen partner has all the information they need to safely and efficiently deliver the goods? How do you make sure that everything is going to go well on your end? How can you ensure that your organization will get the most out of this cooperation in both the short- and long-term?

You have come a long way in your efforts to get the most out of software development outsourcing—you carefully determined your own needs, analyzed various types of outsourcing models of cooperation, picked the most suitable one and considered a variety of attractive outsourcing deals.

Now that you’ve done all that and chosen your outsourcing partner, it’s time to do everything you can in order to make sure that your future cooperation, both in the near term and going forward, is fruitful and safe. It’s actually not that hard—as long as you keep the following instructions in mind.

Take the paperwork seriously

Once you decide which outsourcing partner you want to work with, you are likely to be presented with a few documents that are going to influence the shape of your cooperation. Make sure you understand everything they involve:

●  Non-Disclosure Agreement (NDA)

A document that ensures that neither party discloses confidential information regarding the project or each partner’s company to third parties without appropriate consent.

It’s worth it to have a proper NDA signed as early in the process as possible. During negotiations with a potential outsourcing partner, at some point you will probably need to exchange sensitive information and this document will guard their confidentiality.

●  Master Service Agreement (MSA)

The MSA is the foundation for both the current project and possibly all future projects and transactions you are going to arrange with your outsourcing vendor. Its purpose is to define all of the generic terms and conditions that can be applied to various projects regardless of their price, scope or schedule. Some of them include payment and warranty terms, limitations of liability, intellectual property ownership and other basic duties of both parties. Take the time to make sure that the MSA is detailed and well-written since not only does it protect your interests, but it can also cover potential future projects.

●  Statement of Work (SoW) or Work Order (WO)

The MSA provides a foundation for the Statement of Work, which has all the project-specific details both parties have agreed to, including start and end dates, number of employees on the vendor’s end, prices, job description, location and all of the other information essential to project delivery. Each new project will require both parties to sign a new SoW.

Would you like to see what these documents usually look like? Contact us to receive templates of the very same documents we sign with our clients on a regular basis.

Make sure that people on your end are up to the task

To make the project go smoothly and reap all the benefits of mutual knowledge transfer, it’s important to pick the right people to work on the project on your end. The outsourcing manager will maintain ongoing relations with the outsourcing partner. For the sake of simplicity, it should be one person. The subject matter expert will be responsible for knowledge transfer. In other words, he or she will provide all of the business knowledge and background necessary to make sure that the vendor will succeed in meeting project requirements and goals. The technical expert will be in charge of disclosing and acquiring all of the technical knowledge related to the project.

Knowledge transfer workshop— it’s not only about software

Knowledge transfer is both one of the most important and often most-neglected aspects of outsourced projects. It’s a two-way street, since it concerns both the transfer of knowledge from the client to the partner and the other way around.

Usually, a knowledge transfer workshop consists of a couple of separate sessions listed below:

●  Introduction of your company – according to Conway’s law “any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure” [1]. It basically means that any software you develop is influenced by your vision, goals, values and organization culture. It’s essential that your outsourcing partner understand this so they develop a solution that you could call your own. The best way to achieve that is to treat members of the outsourced team as employees in your company. To make it feel even more real, you can even use some trainings and materials you have prepared for your new employees.

●  Introduction to business domain – even if your outsourcing partner has experience in the business domain where you operate, it’s recommended to show them how you do business. It’s unlikely that there are two companies (even in the same sector) that work in the same way. Be extremely careful about the terminology you commonly use within your organization. This is often a source of many misunderstandings, so make sure that it’s explained properly to your outsourcing partner… or even better, prepare a simple document with a list of the most important terms

●  Introduction to your software development process (SDP) – besides the methodology you use to develop software, it’s good to include information on coding standards, deployment pipelines, test approaches, and definitions of “done”. You can also use this opportunity to ask the outsourced team about their opinion on your SDP – there is a chance that they will bring a couple of good ideas to the table.

●  Introduction to the software – this usually consists of three parts:

o  Business view – explanation on how and why users are using your system

o  Architectural view – high level overview of system architecture (including hardware and software infrastructure)

o  Low level view – or,as developers call it: “diving into the code”

If possible, it’s best to do a knowledge transfer workshop on site (either at your location or your outsourcing partner’s). That way, the effectiveness and level of engagement is much higher and there is an opportunity for people from both teams to meet and start building a relationship.

Make the outsourcing team’s job a little easier

It’s essential to make sure that the outsourcing team has all the organizational information they need to work efficiently and without having to repeatedly ask for it later. Of course, the main reasoning is simply to make their job easier and more effective. But at the same time, taking care of that is a great way to make a good impression on the vendor’s team and help establish positive relations. Some of the typical matters that need to be discussed are the use of virtual private networks, all of the necessary accounts and login information and access to and organization of working environments etc.

Start working together

If you were able to organize an on-site knowledge transfer workshop at your location, then it’s a good idea for the outsourced team to stay and start working on the project with your team if possible. New members of the team will probably struggle with typical problems related to the beginning of development, like missing access to some necessary systems and services, configuration issues, or build problems. They are much easier to resolve when everyone is in one place. Additional benefits include:

●  Building bonds and relationships – it’s important for people from both companies to understand and trust each other

●  Opportunity for the outsourced team to ask questions – as people from outsourced team becomefamiliar with the system they will surely want to learn more

●  Possibility to conduct additional ad hoc worships (if needed)

●  Opportunity for the outsourced team to experience how you operate

●  Opportunity to see how the outsourced team is performing their work

Your internal team buy-in matters a lot

You may easily forget about your internal team’s needs and fears. Your team buy-in is key to the ultimate success of the whole initiative. Especially if you start outsourcing for the very first time. Things you need to consider include:

–  What’s your team’s attitude toward outsourcing? Do they like the idea because the outsourcing partner will take some things off their shoulders? Or maybe it’s totally the other way around and they are concerned about, for example, losing their jobs?

You need to hear and understand your team’s attitude and then plan how to address their fears. Proper communication about the reasons for the introduction of the outsourcing partner is a foundation here.

–  What are your team’s habits related to communication and other areas? For example: how much they communicate verbally vs using instant messengers or other channels? Verbal face to face communication is most effective but can’t be searched and shared with the remote team. If you need to change any of your internal team’s habit, tell them why it’s important.

–  Let (your) developers talk with (your partner’s) developers

At the end of the day, developers are pretty similar all over the world and they will find a common language once they get the feeling that they work on the same team. If you make it happen, your chances for success will greatly increase. Consider bringing some of your people to work on your outsourcing partner’s premises from time to time and you will see how communication and buy-in improves.

Monitor, monitor, monitor…

With all said and done, all you need to do is ensure that the project continues to head in the right direction. Proper monitoring on various levels is necessary. On the basic level, there are Agile-inspired meetings that help keep all stakeholders informed. On the management level, it’s also worth organizing regular meetings.

Software Mind is a Polish software development outsourcing company that is dedicated to delivering the most amazing outsourcing experiences. To make it possible, we hire the best software developers and equip them with know-how we have been accumulating for years, delivering challenging projects for clients from around the world. Would you like to know more about us and our agile approach? Or do you already have a specific project in mind? Just contact us and let’s talk about it!

About the authorSoftware Mind

Software Mind provides companies with autonomous development teams who manage software life cycles from ideation to release and beyond. For over 20 years we’ve been enriching organizations with the talent they need to boost scalability, drive dynamic growth and bring disruptive ideas to life. Our top-notch engineering teams combine ownership with leading technologies, including cloud, AI, data science and embedded software to accelerate digital transformations and boost software delivery. A culture that embraces openness, craves more and acts with respect enables our bold and passionate people to create evolutive solutions that support scale-ups, unicorns and enterprise-level companies around the world. 

Subscribe to our newsletter

Sign up for our newsletter

Most popular posts