One of the biggest challenges when starting or continuing software development in a project that involves a relationship between teams located in different countries — but with similar time zones (onshore-nearshore)—is the proper selection of Agile practices to follow.
This research arose from the need that distributed software development teams have to adjust the way they work to achieve greater efficiency and productivity in software development processes.
The Challenge of Agile Practices in Onshore-Nearshore Projects
There is currently no specific methodology custom-designed to provide support in the proper selection of agile practices for projects with onshore-nearshore features.
The software development process is affected when two teams that are integrating use the same or different Agile/traditional practices and this situation becomes problematic when the project is already in an advanced state.
Unlike traditional development, which is sequential, Agile practices are based on iterative and incremental development, where requirements and solutions evolve over time as needed by the project.
1. Change from Scrum to Kanban
The onshore project was already using Scrum since the beginning of the relationship, but as they developed, they didn’t see positive results. The Nearshore team, based on their needs, suggested a change to Kanban. Months later, a nearshore Scrum Master analyzed the situation and concluded that effectiveness improved with the change.
2. Change from Waterfall to Scrum
The onshore project is very traditional, but introduces the Agile practice, Scrum. There was no system in its adoption, neither was there an analysis to know whether there was an adequate practice put into place.
There is an increase in the use of Agile methodologies due to the favorable results obtained, but despite its effectiveness, there are many occasions where these results are not achieved and there is no analysis of compliance with the objectives of the practices.
This is relevant to nearshore companies which are compromised to offer SaaS solutions. If this service provides poor quality, it can cost a client contract.
How to Decide an Agile Methodology
We’ve established an Agile practices selection methodology based on Encora Mexico as a case study. It contains onshore-nearshore teams using different Agile software development practices that need to integrate for the implementation of a project
This will be accomplished by identifying Agile practices selection patterns for each project depending on their size, type of project, roles, and Agile practices implemented, adjusting them to a quadrant in the Cynefin framework of complexity. And finally, by being able to determine the obstacles and positive aspects in the implementation of Agile practices in an onshore-nearshore software project with the previous characteristics being well-documented.
Results of Effective Agile Practices
More than 2% of improvement is visualized in deliverables of projects that implemented Agile practices with favorable results, in comparison to their initial status at the beginning of the study; this percentage would increase if the selection methodology is used at the early stages of the onshore-nearshore relationship.
In 82.37% of the projects, Agile practices were refined. In 64.70% of the projects, improvements were obtained in the matter of better defined processes, deliveries were more organized in accordance with team members and there was an increase in such deliveries.
Summary of Agile Practices
By project size, the inclusion or reinforcement of the following Agile practices are recommended:
The projects would be chaotic to work with, almost bordering on
A clear and concrete strategy on how to approach the development of these projects could have been anticipated: which Agile practices were recommended and an estimation of the required number of roles in the team. Also, deficiency detection in documentation and if training was necessary.
For instance, Project #15 shows that, although it seems that implementing an Agile practice offers benefits, it may become harmful to make this decision arbitrarily without a thorough analysis of the processes that are being carried out by the team, roles involved, project duration and specific needs of the project.
Finally, a new selection model is obtained as a contribution, which provides a profile or characterization of each project; besides serving as a historical record of each client, it provides relevant data to support the development proposal to follow and the implementation of the Agile selection model at the beginning of development of each project.
The Future Applications of Agile
To gain more insight into the project’s Agile behavior, we need to continue supervising the application of the selection methodology for all seventeen projects analyzed in this study and reinforce regular follow-up meetings to identify in the early stage when an Agile practice is not giving the expected results.
Also, for new projects obtained by the company, implementation of the selection methodology should be applied from day 1.
For a complex model and with a bigger sample of projects we could build a neural network that could support the prediction of Agile practices based on the project’s characteristics.
Fast-growing tech companies partner with Encora to outsource product development and drive growth. Contact us to learn more about our software engineering capabilities.