When it comes to the IT industry, some of the more important consequences of Globalization are Outsourcing of IT operations and Outsourcing of many software development posts.
Regarding the Outsourcing of software development posts, in general this has turned out to be a positive move for software companies and IT professionals in developing countries, as they have experienced a growth in their business operations driven by this process.
But this movement also has brought its own share of ills into the mix.
Now, the typical software development project has a team with team members from many countries, working across many time zones. The most frequent process used by these teams is Agile.
Let’s review some of the challenges that these Agile teams are facing, in no particular order.
One of such challenges is the diverse cultural backgrounds of team members. Even though diversity in general, and diverse cultural background in particular, is a very positive factor for an Agile team, the challenge that most frequently shows up is pertaining to communication.
One on one conversations between team members are a major aspect of Agile as a process, and diverse cultural backgrounds, including diverse native languages, pose some important issues and obstacles to the natural flow of the conversation.
[New comment added] It would make sense to expand this idea a little bit: outsourced team members in general do not belong to the same organization as the rest of the team, so, it is very likely that outsourced team members (developers) might not know the details of the business of the customer, or the meaning of business terms used by the customer when describing functional requirements and business rules (this relates to the concept of “ubiquitous language” in Domain Driven Development).
Besides this, different cultures usually have different cosmovisions, that is, different mappings to the concepts and ideas that explain the universe all around us. One of the first mappings that each person incorporates is their mother tongue, so, different native languages is an important element of the diverse ways of understanding the universe all around us. [New comment added]
But diverse cultural backgrounds is not the only challenge to one on one conversations, as all of these teams have non-collocated team members, and that also poses a major obstacle to the flow of the conversation, at least to some of the conversations that are required to happen on a daily basis.
Another challenge is caused by the fact that team members that represent The Voice of the Customer are usually on a different “shore” from outsourced team members, most of them being developers, so, “up-close” conversations between developers and users also face some obstacles to be solved.
Another pattern that also is becoming important is that outsourced team members are also non-collocated among them, that is, outsourced team members from different regions of a country or from different countries of the world.
This pattern in particular is a major obstacle to Agile. This pattern affects many Agile practices, like one on one conversations, or even pair programming.
Another pattern that is becoming important is that all these constraints that affect these Agile teams introduce certain types of discontinuities to the process that induce issues and problems to the scalability of the team.
For instance, these constraints and discontinuities have to be mitigated with many calls and meetings of the leadership of the project, which means that team leaders are busy each and every day during a significant percentage of their available time, which means that they are not as available to team members as it would be recommended.
The principles of Agile are such that if Agile needs any fixing, it should be done from within, that is, by the team. So, in a coming post, we will discuss some solutions to these challenges.
Kind regards, GEN