Many Agile organizations are considering to outsource parts of the development work. But they want to keep their benefits from Agile, like quick delivery, customer involvement, and high quality. Outsourcing will create distance between the local organization and the development teams where the outsourced work is done, and to manage projects that involve outsourcing is often difficult. Can you do outsourcing and remain Agile? Yes you can, but some aspects need the proper attention and planning to assure that it will work.
Communicate and Collaborate
Establishing communication between the sites is crucial. One possibility is the use of ambassador roles; contact person that keep in touch, radiate information, and assure that actions that involve multiple sites are taken up and finished. But don’t depend too much on the ambassadors; it is important to have multiple communication channels between sites, to lower the risk of miscommunication and missing important information.
Face-to-face meetings are essential in a distributed setting. Of course that will imply that people have to travel, which involves costs and time. But for team members to work together effectively, they need to know, trust and mutually respect each other and build up relationships; and face-to-face communication is the most effective way for this. So if you are planning for distributed teams, also plan for travelling of team members.
Managers also need to stay in touch with the teams, and vice versa. They must frequently visit all sites, and have face-to-face contact to assure that all teams share the same vision and are aware of the importance of what the project is doing and how their work contributes. Air travel is a must for managers to ensure successful delivery.
There are several solutions possible for multi-site teams. Some of them involve roles that specific for larger and distributed teams, like architects, integration experts, product owners and infrastructure experts. These roles are important to establish and maintain collaboration between the distributed teams, and to ensure that that the parts developed by teams can be combined into working solutions. Global decisions (e.g. architectural issues, infrastructure or overall testing) should be taking by consensus where possible, to ensure that people are heard and can provide input for the decision, and are aware of the decisions that have been taken. The product owner, as defined in Scrum, clarifies and assign priorities to the different requirements. It is necessary that every team has a collocated product owner. Also off-shored teams need a product owner, to ensure that the team has the right information, on time, to deliver business value.
It is important that team members share a team identity, work towards a common goal, and acknowledge the joint responsibility to deliver results. Also they need to adhere to collaborative rules and guidelines, and must agree on a joint set of values. Reaching this takes time and effort, it should not be forced upon team members so plan sufficient time for team member to discuss, establish and experience the way that they want to work together. Team member need to build up trust, which enables them to work together.
Setting the Culture
Many communication problems are related to cultural differences between teams or sites. It is important for team members to be aware of cultural differences, and to learn how to handle them to improve collaboration. A good way to learn each others culture is to work on-site, to experience the culture. There is a lot of research done on culture, take for instance the Hofstede model which quantifies behavioral differences in cultures; this research can help you to prepare, recognize and better understand cultural differences.
You need to establish a culture where people know and trust each other, to ensure collaboration. Frequent face-to-face meetings are needed, and it will take several weeks of people working together before trust is established. Avoid longer periods in which team members have no face-to-face contact, since it will hamper trust and result in a threshold which makes it even more difficult to build up trust afterwards.
Feedback, though more difficult with distributed development, is still very important. Customer feedback helps the teams to understand and increase the delivery of business value. When customers are located in different sites, make sure that they can download the products, and have the means to quickly provide feedback to all the distributed teams. If possible, customers should be on site at product demos, where they can give face-to-face feedback to the teams.
Agile retrospectives help the teams to look back to understand and improve their way of working. In a distributed setting, there needs to be at least retrospectives per team, and project-wide retrospectives. The first one focuses on the developing and improving the team, while the second one focuses on communication and interworking between teams. The project-wide retrospectives can also help to establish and optimize processes that are used within the project. A wiki is often very useful to share information about the way of working between team, mostly because all team members can contribute in an easy way which keeps them involved.
When you are doing outsourcing in an Agile company, make sure that you set-up and maintain effective communication between teams and the local organization People in the different teams need to know each other, to build a culture of trust where they can collaborate. Feedback is crucial, to address issues that come up in the collaboration. If you pay attention to these aspects, outsourcing and Agile will support each other, ensuring that value is delivered to your customers.
Several articles are available that cover the quality topics mentioned in this blog:
- Getting Business Value out of Retrospectives
- Agile Project Management
- Establishing and maintaining stable teams
About the Author:Ben Linders has a broad international experience, specializing in quality, process improvement and organizational development. Team worker, driven, supportive, and pragmatic. Committed to quality business results on time, continuous improvement & development of professionals.
Agile, Scrum, Lean, Six Sigma, Retrospectives, Lean Startup, Kanban, CMMI, People-CMM, Root Cause Analysis, Open Space, RUP, EVO, Props, Prince-2, ISO 9001, EFQM.