As my work demanded, it happened to be, I have been in the right place and at the right time to understand the challenges of implementing agile in an service based company, specially when the agile teams are multi-vendor and operating in from multiple location.
During this era of agile transformation, I have lead many teams in various organizations and have been helping teams for transforming majorly from an offshore team stand point.This blog is an expression of my thoughts, understandings and facts that I have understood and gone through during this tenure.
[Dear readers please do not consider my research or expressions as any company I have worked with]
CHALLENGES FACED IN MULTI-LOCATED AGILE SOFTWARE DEVELOPMENT
In recent years we have witnessed the globalization of many organizations. Consequently, globally distributed collaborations and virtual teams have become increasingly common. Distributed projects are projects consisting of teams working together to accomplish project goals from different geographic locations.
There are certain issues relating to the dispersion of work and the constraints associated with this. In these blog, constraints such as temporal distance, geographical distance, and socio-cultural distance are identified. Although these distances increase the scope of organizational operation and facilitate a broader skill and product knowledge base, there is little doubt that each of them challenge project processes such as communication, coordination, and control.
Temporal distance is a measure of the dislocation in time experienced by two members wishing to interact; geographical distance is a measure of the effort required for one member to visit another; and socio-cultural distance is a measure of a member’s understanding of another member’s values and normative practices. Below table provides an overview of opportunities and challenges in multi-located software development by relating the dimensions of distance to the software development processes of communication, coordination, and control in an agile project.
IMPACT OF THREE DISTANCE DIMENSIONS
|Temporal distance||Geographic distance||Socio-cultural distance|
|Communication||(+) Improved record of
|(+) Potential for closer proximity to market and utilization of remote skilled workforces||(+) Potential for stimulating innovation and
sharing best practice
|(-) Reduced opportunities for synchronous communication||(-) Increased cost and logistics of
holding face-to-face meeting
|(-) Risk for misunderstandings|
|Coordination||(+) Decreased coordination needs
due to division of labor
|(+) Increase in size and skills of
labor pool can offer more flexible
|(+) Access to rich skill set and various practice|
|(-) Increased coordination costs||(-) Reduced informal contact can
lead to lack of task awareness
|(-) Inconsistency in work practices can impinge
on effective coordination, as can reduced
cooperation through misunderstandings
|Control||(+) Opportunities for ’round-the-
|(+) Communication channels often
leave an audit trail
|(+) Access to rich skill set and authority|
|(-) Management of project artifacts
may be subject to delays
|(-) Difficult to convey vision and
|(-) Different perceptions of authority/hierarchy
can undermine morale
Note:+ (plus sign) indicates an opportunity; – (minus sign) indicates a challenge
IMPACT ON KNOWLEDGE SHARING
In agile software development most of the knowledge is tacit, which resides in the human mind rather than documentation. This codified tacit knowledge is shared among between locally and globally distributed team members through tools. The knowledge sharing approach varies between team members due to experience levels. The types of problem this leads to are search availability and difficulty finding the right knowledge at the right time. We have also found that to share tacit knowledge between remote team members, teams maintain a common chat room and online conference. Based on the situation, sometimes the team performs pair programming through screen sharing, to resolve problems.
In this figure, arrows indicate the mitigation techniques applied by practitioners for a specific challenge. Based on the severity of communication, language and cultural challenges frequently faced by practitioners during knowledge sharing in distributed agile projects. Teams are also struggling with misunderstanding and visualization challenges.
IMPACT ON COMMUNICATION AND COORDINATION
Communication and collaboration between project stakeholders is crucial for Agile methodologies. However, in multi-located agile software development, the distance between the development teams can create many difficulties in synchronizing communications. Agile development requires a high level of synchronized communications between the stakeholders and any weakness of the communications could create a misunderstanding of the requirements, reduce the team productivity, or decrease the collaboration level. The following table lists the communication challenges and an approx. percentage based on the sample set (73 participants responded from different organization overall) anonymously participated on an online servery I conducted within the practitioners I have worked with.
|COMMUNICATION CHALLENGES||Frequency of response from respondent|
|There is a lack of communication and collaboration during all the product development stages||55%|
|There is a lack of English\other language skills within the project team members that impacts the communication levels||18%|
|There is a lack of communication between the developers and the product owners
“misunderstanding of the requirements”
|There is an increase of the communication and coordination costs to address the communication barriers||18%|
|Lack of knowledge and information sharing||22%|
|The increased distance between teams||12%|
|Poor infrastructures that restrict modern communication tools||6%|
|The visibility level of the development progress is low||2%|
Asynchronous online communications methods (such as email or project management software) have been used to address the problems of synchronized communication between teams working in different time zones. However, it has still not been enough to compensate. The lack of synchronization and direct communication contradicts Agile’s values and principle. The lack of communication could create barriers for customers when they follow the progress of development and could make it difficult for developers to keep in touch with customers. Therefore, this could decrease visibility of development providing a good quality communications channel could be expensive and add substantial cost to the project. Sometimes the development teams, especially those offshore face technical issues such as poor internet connections, or poor infrastructure. Due to this, the communications cost must be increased.
IMPACT DUE TO CULTURAL DIFFERENCES
The first value from the Agile manifesto is “Individuals and interactions over process and tools”. This means the Agile approach is not just about the process, it takes care of people over the process. Agile methodologies focus on creating a relationship between team and customers, sharing a culture and building trust between team stockholders. Agile principles also believe that the developers and customers need to work side by side during the development. Working together with different people and sharing the work environment can be an easy task with local development. However, with global development, it is a bigger challenge. The stakeholders with global development are from different counties and areas around the world, combining different cultures, different values, different backgrounds, and different religions. Consequently, applying Agile methodologies within the global environment confronts some cultural barriers.
The differences of cultures between the stakeholders could create a lack of understanding of the team responsibility. In some cultures, organizations’ members do not pay attention to the upper level management. They are used to working within a “command and control” environment. Managers from this kind of culture do not share the vision and goals of their organization with their employees. This could create a lack of understanding of the teams’ responsibility and decrease team moral.
It is felt that the offshore members usually stay quiet and cautious during the agile meetings until someone asks them to speak, as to do otherwise is considered rude in their culture. In contrast, the onshore members are direct, loud, honest, and open to discussion In addition, the cultural differences may cause a lack of transparency and honesty. The members of the offshore team usually hide the development issues, especially in the beginning of the project. They pass the good news to the onshore team and avoid talking about any kind of negative staff. The offshore team looks to the onshore team as their managers, so they may not have the courage to discuss any negative things with them. The offshore team members usually try to avoid any discussion with onshore team because they do not want them to think they do not understand the problems. The cultural differences also could create misunderstanding between team members and lead to lack of trust and team awareness. That could decrease the team productivity.
IMPACT ON TIME ZONE CHALLENGES
The differences of the time zones between the project stakeholders in global development could reach around 10 to 12 hours. That creates many barriers in Agile development. Many of the Agile practices require synchronization of the working hours between the offshore teams, onshore team, and other stakeholders.
The differences of the countries and regions create differences with the public holidays and weekends between the development members. For example, the weekend in western countries is on Saturday and Sunday. In some other regions they have Thursday and Friday as the weekend holiday, and some countries only have one day as a break. The seasons for vacations are different between countries. This problem could minimize the chances of the development teams working together.
IMPACT DUE TO MULTI-VENDOR AGILE TEAM
The table below lists the risks in adopting multi-vendor approach in software development and the mitigation techniques.
|1. Teams of different vendors not working in a constructive way. This leads to “leg-pulling” and blame-game.|| Input and output from a team or team members are clearly defined.
Include teams in common reviews and handover sessions to ensure all are on page specifically monitored by customer manager.
|2. Customers having overheads of dealing with the vendors account managers who constantly look for opportunities to expand their portfolio.
Here the competing vendors will look for failures of others or try to interpret any failures to other teams and try to score from it.
| Do not entertain account managers who frequently present proposals to take over another vendor work. This exercise should be periodic and opportunity be given to all vendors.
Have periodic reviews (fortnightly or monthly) with account managers on current team project only.
|3. Different teams build walls in terms of training’s, ramp-up, handover of items etc.|| Have clear output deliverable’s defined in handovers, training’s.
Ensure there is a concurrence from receiving team.
There is a clean documentation available for above exercises.
|4.Teams covering facts and creating a perception which is not correct. This case is very specific to a scenario where one vendor is in powerful position and reporting to the customer. (e.g. PMO)||Have status reports of each team be submitted which should not be tampered by PMO.
The PMO status report should be an extract from each of team reports.
Have a communication channel with each vendors in terms of periodic reviews in the presence of PMO.
In this case the PMO should not be the anchor for the discussion, either vendor or customer managers should anchor.
Create another forum of escalation above PMO but below steering committee for vendors which should address operational issues if PMO is unavailable.
I am sure there are many other challenges all of us might face in delivering, leading and working as a part of multi vendor , multi geographic location agile team. I am also confident should be more innovative and creative ways how you all are handling the challenges in your respective team. Please feel free to share your thoughts and I will keep on updating this blog with more concrete practices and challenges.
Till then … Lets deliver best value products to our customers. 🙂