We have run many projects in which we work hand-in-hand with software engineering teams at the client’s site. In some initiatives, we divide the work so that Orphosys Corp and the client teams are relatively autonomous in developing specific functionality for an application. Under such projects, it may be common that each teams runs agile in its own way. In other projects, both the client and Orphosys Corp’s engineers work together on the same functionality and under the same methodologies.
Regardless of the scenario at hand, Orphosys Corp will always start a nearshore outsourcing relationship by coordinating with the client the best way to manage an agile initiative and defining the following components:
Activities and Monitoring (how to run and groom the project backlog, which project management tool we use, how will we determine project status at any point in time);
Communication (who will participate in daily standups, what is expected of sprint retrospectives, how and when will we run sprint planning meetings, what channels should be open should questions arise as the sprint unfolds, what are the escalation points should issues arise, etc.);
Gauge success on an ongoing basis (what metrics will we use to understand project progress and productivity, how will feedback from end-users or beta users be brought back to the team, how will we generate a positive spiral of continuous improvement in the project).
Of course, there are many ways to implement the fundamental tenets of a successful agile nearshoring initiative. Our preference is to work with the client to try to adjust to the client’s current agile methodology. However, we will be insistent if we see that there are any areas that could be improved in the way the client is running the project, such as establishing a TDD approach, improving continuous integration practices, or making sure the software is DevOps ready.