Based on our experience of agile project execution at e-Zest, I would like to highlight some of the best practices for success of agile projects in offshore model
- Fixed cost model is not right model for execution of agile projects. Considering business drivers and budgetary considerations, we suggest agile business model where we can move away from fixed-Price contracts to contracting a team of appropriate skills for X number of sprints of Y duration. This allows product owner who is onshore to adjust the scope to the minimal viable features to fit the cost
- Cross-location movement of team members. I.e. onshore team members visiting offshore location and offshore location team members visiting onshore location. This is critical aspects for cultural exchange and understanding work practices of partner organizations
- Use of collaboration tools or agile project management tools like basecamp, VersionOne, Rally, JIRA etc.
- Agreeing on backlog in sprint planning meeting provides visibility on what the off-shore team will do in the next sprint which can be reviewed
- Using regular builds to get regular feedback on features throughout product engineering/application development process
- Use of continuous integration tools like Cruise Control, Team Foundation Server (TFS), bamboo, Hudson etc.
- Tweaking processes for offshore e.g. conducting daily SCRUM meeting on daily basis at mutually convenient timing
- Use short iterations and delivery cycle. Longest iteration cycle should be maximum 4 weeks
- Separating team by functionality rather than activity. In waterfall model, there used to be separate teams for requirement analysis, design, construction, testing etc. With agile approach we should assign functionality to given team and team should be formed with cross-functional skills.
- Prepare minimum documentation based on specific needs of the product/project in hand. Don’t prepare documentation for the sake of documentation compliance.