The right team structure is essential to any successful process and methodology. When using agile methods and practices with dispersed team members, it’s critical. As our methodology has matured, we’ve learned which structures work, and which ones don’t, and continually refined our own team to reflect what we’ve learned.
Each project is assigned a Chief Technology Officer, and a Product Marketing Lead. The CTO assumes the role of Product Owner, and works with our Product Marketing Lead to champion the voice of the customer. Together, they map the business goals and requirements of the project to specific features and use cases, and prioritize them accordingly. The CTO is also responsible for overall design and architecture. Both the CTO and Product Marketing Lead work locally, face to face with the customer. It is their responsibility to ensure that each deliverable meets or exceeds the customer’s expectation.
Two Project Managers are assigned to each project, one is local, working onsite, face to face with the customer, and one works remotely. The two Project Managers are responsible for day-to-day oversight of their development team. They ensure that team members are adhering to development practices, and most importantly, ensure that the work is on schedule and executed according to expectations.
A cross-functional team is assembled for each project. Each team is crafted to contain all of the skills necessary to develop, test, and deliver the work assigned to it. In the case of larger projects, multiple teams are employed and focused on different functional components (e.g. one team focuses on search, and another on messaging). While the team composition varies based upon the nature of the project, a typical Web 2.0 engagement would include one or more coders, one or more dedicated QA resources, and an interface design and usability specialist.
We continually rotate members of the remote team into our local team, giving each one an opportunity to work together with the customer, and with us. As a result we find we can build better, more productive teams with better overall communication.