Articles | January 23, 2020
Get to know Agile nearshore software development
Working with remote teams in the same or a similar time zone, known as nearshoring, seems to bring about advantages and challenges in equal measure. At first glance, it could be very tempting to try to work in a traditional way using a hierarchical structure and waterfall methodology to overcome all the possible difficulties in outsourcing but… nothing could be more confusing!
Working with remote development teams in the same or a similar time zone, known as nearshoring, seems to bring about advantages and challenges in equal measure. At first glance, it could be very tempting to try to work in a traditional way using a hierarchical structure and waterfall methodology to overcome all the possible difficulties in outsourcing but… nothing could be more confusing!
The Agile methodology is simply the perfect way to adapt to nearshore software development, and it helps to face all of these challenges together with a partner. What are the major benefits of Agile and nearshoring and why do those two make a perfect match in terms of IT projects?
The idea of Agile software development
From the implementation perspective, the various Agile methodologies differ from one another in terms of practices, terminology and tactics, but they still share the same philosophy, characteristics and some similar practices. Nowadays we are lucky to have the opportunity to take advantage of multiple Agile methodologies, such as Scrum, Lean, Kanban or Iterative Development. Undoubtedly the popularity of Agile development is increasing, including among dispersed teams, as per the recent State of Agile report. I will mainly focus on Scrum, which – according to the cited report – is the most often used Agile framework. Agile techniques facilitate software development project organization and communication, as well as ensuring efficiency and improved monitoring of the progress being made. This is why it is perfect for nearshoring projects, where the above aspects play a key role.
The perfect marriage of Agile and nearshoring
We are all aware of the benefits of nearshore software development and we know that they outweigh the inherent challenges. Such benefits include easy and flexible access to a pool of highly qualified specialists, being based in the same time zone, a similar culture and mindset and cost efficiency. But we should not skip over the challenges that nearshoring can bring. Let’s discuss them freely and go through them together. If we take into consideration such aspects as various and remote team members, different responsibilities and geographical locations, and add to this the innate human fear of something new, or a lack of communication – we have a simple recipe for sticking to the traditional, hierarchical way of working. It might seem simpler just because… we are used to it. But the nature of nearshoring means: collaborative, cross-functional work in teams within similar time zones. As we can see, it fits perfectly with agility in both on-site and remote workplaces! Using Agile, we get a perfect tool which can help nearshore teams to improve their communication, organization and software development itself. Here’s how.
Nowadays, time is priceless. We are too busy to read the hundreds of e-mails that we get, so instead of creating a long, confusing mail chain, it is much easier just to call each other. When it comes to Scrum, for instance, the emphasis is on daily communication during so-called “events” (Daily, Review, Retrospective meetings). In the case of remote teams and nearshore cooperation, clients quickly get used to communicating on a daily basis and conducting Daily meetings via a variety of video conferencing tools. In nearshore outsourcing teams, it is crucial to have consistent and clear communication with each member of the team. Additionally, the possibility of seeing each other during Daily meetings improves communication and gives a sense of mindfulness and mutual respect.
Read also: Outsourcing in Agile model
Nearshoring – how to engage?
First of all, I highly recommend building relationships between development and customer teams from the very beginning. This can mean holding virtual meeting sessions and video conferences, as well as talking to each other frequently. Also, conducting the onboarding process at the client’s premises and holding face-to-face meetings from time to time is recommended in order to foster engagement. Secondly, we should set clear expectations and properly define the rules of engagement. This is especially crucial when we have remote teams working on different tasks and in different locations. To engage people, the team needs to understand why, how and what. When people are sufficiently well-informed about all of the above, the rest of the processes should adjust naturally. All of these simple rules will make communication more effective, allowing the provider’s developers to meet expectations across geographical boundaries.
See the case study:
Free exchange of ideas and feedback
This point is strongly related to the previous one. Open communication is also part of what makes Agile methodology so effective. It is essential to ensure easy communication channels to discuss important aspects of the project and to integrate the teams. It is also vital to make sure that everybody knows what they are expected to be doing. In Scrum, for example, the role of the Scrum Master is a real help in overcoming the challenges and barriers, fostering continuous improvement, and reinforcing psychological safety. Such an approach makes it possible to speak freely about what the team really thinks to reinforce creativity. Scrum Masters support the development team by asking suitable questions and ensuring that every task is understandable for all team members.
Learning from the past or Retrospectives
If I had to describe Agile methodology in two words, I would use: “Continuous improvement”. Progress is achieved through Iterations. Agile development teams analyze what they have done, how they have improved, and they use this experience in future steps to make the entire process of software development better. Of course, there is a wide variety of online tools that the Agile nearshore team can use, which facilitate retrospectives. There are multiple ready-to-use basic templates which can be customized. Using these, it is easier to determine what to start, stop and keep on doing or to define issues or even emotions within the team during the software development process. This ensures that the entire software development process is well-organized. Retrospectives can take many shapes and forms, but the most important part is learning from the past and applying “the lessons learned” to the future. Agile development is all about continuous improvement by iterating tasks.
How does the above apply to nearshoring cooperation? Collaboration in the nearshore development model is unique and continuous improvement also plays a key role here. We cannot build a successful partnership in just one day. Fruitful and successful cooperation between business and outsourcing services provider requires continuous improvement, just like in the Agile approach.
If you decide to use the Kanban method in your Agile software development, this will help you to monitor the progress of a project in real time. There are digital versions of the physical dashboard available – very helpful when we cooperate with remote teams in the nearshoring model. By using the virtual board, you can systematize and organize all the tasks and define deadlines. This helps the distributed teams to plan and monitor their daily tasks.
Such tools are also useful as part of everyday work. According to research, almost 80% of information is gathered visually. Visualization facilitates understanding and task management in a project. Personally, I love working with Trello, which helps me to organize my daily work on different projects. Such tools help to improve efficiency and allow for better time management. As a bonus we get the opportunity to personalize the background image and interface thanks to multiple labels and tags.
Agile software development – how to keep improving?
The clients’ and provider’s teams do not have to physically work in one place to be Agile. It is very likely that software development teams all over the world encounter the same difficulties in their work. So, if you have decided to cooperate with cross-functional nearshore development team, you can draw on your partner’s team expertise, and the knowledge gained beforehand. This will allow you to grow and, as I mentioned at the beginning, you can take advantage of Agile practices to improve communication, organization and the entire software development process. Thanks to nearshoring cooperation in the Agile model, you not only get access to your partner’s expertise, but also improve soft skills and time management within your organization.
Should I decide on Agile nearshore outsourcing?
I truly believe that Agile practices have revolutionized the way we work, and they also have a positive impact on IT nearshoring, making an important contribution to the company’s success. Whenever we feel tempted to carry out a project using the traditional model, it is worth leaving our comfort zone just to try out the new approach and thereby improve efficiency, communication and project management. For many companies, this was just the first step to long-term and fruitful cooperation with a nearshoring partner.