Five keys to success when working with an outsourced software development partner

Categories: Agile | Communication | Nearshore | Offshore | Outsourcing | Scrum | Teamwork |

A healthy relationship between client and development partner is the key to success. This generates a good atmosphere where both parties can collaborate to achieve goals and generate greater value together. To identify, and validate, the most important factors that lead to a good offshore outsourcing relationship, we surveyed directors and team leaders at Belatrix, asking them to rank agile practices according to the value each provides and how they protect and improve the customer-partner relationship. Here are the recommendations that came out of that survey:

1. Build in a continuous communication mechanism

In Scrum, this mechanism is the daily stand up meeting and it has been ranked the most critical factor when doing offshore outsourcing.  What is most important here is to do it every day, ideally at the same time each day, and having appropriate communication channels. As one of the panelists observed “it is important to have good communication habits.” Furthermore, he stated that “those practices are especially important when there are time-zone differences,” even if there are just a few hours of difference, as is the case with Nearshore.

Having a formal communication mechanism doesn’t mean that spontaneous communication goes away.  That is another important means of communication but that should be complemented with more formal and established communication processes. “It is nice to have spontaneous conversations, but in some cases clients and development partners are very busy.  Without a formal process, it’s easy to overlook how critical a daily meeting is,” said one of individuals surveyed.

2. Plan out you acceptance process and “done” definition

Setting expectations is an essential step in software development.  Having an acceptance process and a “done” definition helps to ensure that everyone is on the same page.  “This provides a clear and concise foundation to understanding project expectations and gives working guidelines to the team,” said one survey respondent.  Other participants also shared their guidance for how to define those processes.  For example, this works best “if the person who decides on the acceptance criteria is involved in the day-to-day aspects of the project, … if that is not the case, then it can be risky.”

3. Identify clear point(s) of contact with customer and provider

Having someone from the client side who is always available is crucial to addressing questions, removing obstacles and keeping the team moving forward.  This point of contact, a single person or a group, needs to be able to provide the team with quick answers.  This has to be its priority to allow the team to be successful.

One respondent commented, “a lag in answers to team questions about requirements or project needs can result in delays or incorrect implementations.”

4. Schedule formal meetings to get feedback from customers and team members

In Scrum, this is called the retrospective meeting. This is of paramount importance to improve team’s performance and development processes.  “This is the foundation to improve from one sprint to the next one”, said one director. It’s important that the meeting define the list of actions or problems to be solves, but also to determine what needs to be done in order to avoid those issues in the future.

5. Scope negotiation to gain team commitment

Last but not least, making sure that there exists a mechanism to negotiate the scope of every iteration/sprint. This means that communication is not a one-way process, but instead is a negotiation, where customer and provider collaborate to get a realistic but challenging scope. “Impossible goals not only carry problems to the relationship, but also to the team’s moral,” said one panelist. Another person also pointed out that “without consensus there is no teamwork.”

Leave a comment