The essence of Extreme Programming (XP) is making the customer a part of the team who works very closely with the developers, ideally communicating on a daily basis. However, what about a situation where your development team is offshore? Is it possible to have the best of both worlds, realizing the gains of offshoring without losing the benefits of XP? How do you keep the momentum and the communication flow going, at the same time ensuring seamless integration of the deliverables into the customer's production environment at the XP pace? This article will cover four years of cooperation between Exigen Services and one of its major customers, a leading computer chip manufacturer. In this period of time, Exigen Services has delivered 61 successful projects to the customer, with five more currently in development, utilizing XP exclusively. We will discuss the organizational model, roles, and responsibilities used in this highly successful relationship, as well as the tools used to monitor and manage the projects daily
Offshore XP: Why Even Do It?
The reasons to implement XP projects with an offshore team are the same as the reasons to use XP at all:
Obviously, doing XP in an offshore situation presents a set of challenges. It is not possible to implement some of the XP practices in a distributed manner (for example, you can hardly imagine pair programming by one developer in Russia and another, say, in Ireland). However, by setting up a proper organization, you can still reap the benefits of XP even when working with a remote team.
Organization
Exigen Services and its client use a clear organizational structure to run multiple offshore XP projects (see Figure 1).

Figure 1: Offshore Agile Project Team
Let's go over the roles and responsibilities on both sides.
The business team drives the story creation and prioritization. Stories and subsequent change requests are consolidated and channeled to the development team through the BPM. The business team's main task is to be responsive to the development team, answering questions early and often, thus enabling the development team to move quickly through the implementation of stories. As the development team delivers its daily builds, the business analysts also continuously verify that the functionality implemented by the developers is really what the business wanted.
The TIL deals strictly with the technical and organizational side of the project, leaving the issues related to the business logic to the BAs and the BPM. This is to ensure that the BPM is focused on getting the requirements right 100% of the time and does not have to be distracted from communicating with the development team for non-essential, administrative tasks.
The enabler acts as the first filter on the customer side. He receives the daily build from the Exigen Services team and deploys it in the client's integration environment (which emulates the production environment), since the offshore team is not allowed direct access to the client's highly sensitive environments. He also performs code reviews to make sure the team follows coding and architectural guidelines. In short, the enabler's responsibility is to ensure the code's consistency and to make sure the business analysts can proceed to test the system's functionality. More often than not, a separate Technical Data Analyst (TDA) is working alongside the enabler and takes care of the database side of things.
Exigen Services has delivered projects to many internal customers within the client's organization in the UK, Ireland, Israel, USA, and Russia. Due to the global nature of the client's organization, the BMP, TIL, Enabler and the development team can be in different countries for the same project.
The project manager staffs the development team and acts as the central communication conduit to the customer. On a daily basis, he or she runs the morning standup meeting to kick off the daily "mini project." Right after that, the PM proceeds to collect the questions from his team, answering the easier ones and consolidating the rest into the daily email to the client's analyst team.
In the middle of the day, the project manager holds the daily Scrum telephone call with the customer. Normally, we funnel the communication between developers and the customer through the PM: if each team member communicated with the customer directly, the customer could be flooded by duplicate questions or by questions that can be easily answered by the PM. However, team members may also take part in the Scrum. For example, in the case of a complex technical problem, Exigen Services' Tech Lead will speak directly to the Enabler on the customer side. Immediately after the Scrum, the PM holds the second stand-up meeting for the day, passing back the answers he received during the Scrum call.

Figure 2: Screenshot from Exigen Services' XP Matrix
One of the things that stands out about Exigen Services' XP projects is the universal use of the tool we have termed XP Matrix (see Figure 2). This Excel-based tool was born from joint efforts of Exigen Services' engineers and the customer. It is used for tracking the project on the level of iterations, user stories, and tasks. The tool also keeps track of the team's velocity and load factor, and provides daily extrapolations based on the accumulated data. The stories' completeness is tracked on the daily basis, and color coding of stories and tasks gives the manager a clear at-a-glance view of how far along his or her project is.
On the screenshot above you can see the Iteration Track (bottom left) where the iteration is tracked based on Work Complete (the magenta line), Work Left (blue line), and Instant Team Velocity (green line). The point where the magenta line and the blue line separate indicated the moment when a change request was introduced (little yellow square on the burndown chart, bottom right). The horizontal axis on the track chart represents planned effort. The magenta line (Track Upon Work Complete) running above the axis means that the team exceeded the amount of work initially planned for the iteration. The blue line (Track Upon Work Left) hitting zero at the end of the graph means that the team completed an additional change request without moving the original deadline.
In the recent months, a group of our engineers has been working on the implementation of a standalone tool that contains all the functionality of the Excel tool and improves on it, such as adding data validation, providing greater usability and advanced budgeting functionality, and shortening the learning curve for new managers
Peter Vaihansky is Senior Director at Exigen Services Exigen Services. With headquarters in Boston, MA and development centers in Eastern Europe, Exigen Services provides software development outsourcing management expertise and services to global US and European companies including: Computer Sciences Corporation (CSC), T-Mobile, IBM, Fellowes, Contex, ScriptLogic, WebSideStory, and others. Exigen Services specializes in applying Agile methodologies (XP and Scrum) to distributed, offshore software development projects.