Achieving Offshore Agility
1
White Paper
Importance of Communication & Collaboration in Agile World
Author: Tabinda Aftab
Research and Development Application Services
Importance of Communication & Collaboration In Agile World
Introduction A 2003 Forrester Research survey of 145 senior IT and business executives shows that the most common problems reported by customers are • 53% of survey respondents said “my company's lack of project management skills” presented a significant or major challenge to offshore outsourcing success • 51% said their lack of a good process for specifying the work posed a major or significant challenge to success One of the reasons for offshore development failure is that customers tend to treat offshore product development in the same way as dealing with an onshore service provider. Communication typically happens through telephone or emails and often, supplemented by visits from both sides to each other's locations. Time zone differences, poor communication and coordination, and cultural differences can lead to misunderstandings and delays. The lack of real‐time visibility into project details, the resulting problems are unknown to onsite managers/stakeholders until the deployment phase reaches when the problems are almost unfixable. The result is that productivity drops, completion is delayed, and the anticipated savings don't materialize. The loss of communication richness (due to lack of face to face interactions) makes it more difficult for distributed teams to collaborate on design challenges , clarify requirements and identify and mitigate risks. This contributes to missed requirements, rework, project delays, and cost overruns. Considering all these problems and outcomes the conventional development model fail because these models donot allow the customers to come directly in contact with the service provider’s team to develop an evolving product , custom deployments and maintenance of future versions.
Hence, the conventional waterfall development model that involves synchronous activities, performed only after defined milestones or stages are met and validated is not applicable. The situation calls for the service provider to perform a total, real‐time understanding of the dynamic customer requirements with an ability to be nimble footed. Agile development model on the other hand requires that there is a proper communication channel between the customer and the offshore development team at all stages of the project. The mode of communication can differ at each stage of the project, but the principle of “Just‐In‐Time” modeling and Envisioning should be adopted to ensure that the team has the right information, no more, no less, at the right time. The need and importance of total communication and collaboration cannot be overemphasized in an Agile model. It is believed that the success of agile model depends upon the level of communication involved. This document focuses on identifying issues related to offshore /distributed teams, the communication channels and the use of these channels in achieving thorough communication with respect to such situations.
Distribution of Development Teams Collaboration between different companies involve different parties of specialists working on one common goal. These can be projects of equal cooperation with mutual responsibilities, but also sub‐projects given to an outsourcing partner. In certain complex or specialized applications, domain experts are often hired and included in a project team. Such experts or consultants are usually need to be contacted from time to time remotely. The collaboration with customers is highly important for software development. Unlike
www.ephlux.com
White Paper
2
Importance of Communication & Collaboration In Agile World
traditional approaches where business analysts collaborate on‐site with the customer during the analysis and requirements engineering phase, agile methodology demands a continuous collaboration with highly knowledgeable customer representatives during the whole development life cycle. Customer companies cannot in all cases abandon their most knowledgeable staff members to exclusively work off‐site with a development team. In this case, different combination of in‐site and off‐site teams are established for the project such as parts of the development team have to be on‐site with the customer and need to be remotely integrated with the rest of the team off‐site, or the customer representatives on‐site are remotely integrated with the offshore development team.
or co‐sourcing models certain special measures must be taken, especially in the area of communication. The following practices ensure effective communication in an offshore agile project.
Best Practices of Communication in Agile Offshoring Though the Agile methodology emphasizes effective communication, preferably face‐to‐ face communication, in the case of distributed teams this is mot possible. But, Agile processes are not rule‐bound; rather, they can be evolved and amended for methods and dynamics by which organizations are able to build, maintain, and apply systems of knowledge within changeful, context‐dependent, collaborative work situations. Therefore to evaluate the viability of Agile methodology to a distributed teams scenario, the main concern is that it can support iterative, incremental, and sustainable development; encourage teamwork; promote self‐ management; become accustomed readily to emergent changed requirements; and increase customer contribution in the development process. Although Agile is viable to off‐shoring www.ephlux.com
Seeding Visits: Mutual seeding visits between the customer and offshore service provider to build and maintain relationships as a basis for efficient communication and collaboration are highly useful if scheduled early in the project or at project initiation. If some joint tasks in a relaxed environment are given that could allow the teams to work together with the customer/stakeholders might help in the creation of valuable personal relationships. The visits should be scheduled for a sustainable duration to really get people to connect. However, this option is not always open but can be a big step in initiating a relation. Early Communication: There is a tendency in software development to bring the actual development teams into the picture when it is time to implement. The big picture is never acquired by the team. This results in the lack of understanding of customer’s expectation. The team does not understand the actual need or significance of the solution to the customer. Agile methodology insists on bringing all involved teams and the stakeholders to a single platform in order to ensure that the big picture of the system to be built is similar throughout.
White Paper
3
Importtance of Communication & & Collaboratio on In Agile World
Co ollaboration:: Geographicaal isssues must be e addressed to o en nable collabo oration. It is esssential for th he offshore teeam to bee involved in as many analysis an nd design discussions and deecisions as po ossible Plan Visibility:: Although agile m model does no ot emphasize too m much planning g ahead but planning shortt term goals on the “Just‐In‐ deepending upo Tiime” modelin ng and keepin ng th hem visible to o all involved not only the team((s) but the offfshore sttakeholders aas well. This can be acchieved throu ugh several sccheduling too ols or project portals. Additionally, th here should b be defined m mechanism fo r project proggress m monitoring. Customer Engagement: At all times in n agile metho odology the ccustomer is an reequired to be e in the comm munication lo oop. Unlike traditional metthods, Agile em mphasizes that the actual technical teeams stay in ccontact with tthe cu ustomer/stakkeholders/off‐site team m members to m mitigate any m miscommunica ation scenario os M Maintaining co onsistency off approach an nd delivery: W With a collaborative teeam, and a cu ulture of useful co ommunicatio on in place, the work reequired to de eliver the projject becomes th he next dilem mma to overco ome. While th he value of "in ndividuals and in nteractions ovver processess and tools" iss paarticularly im mportant for aagile teams, a deefined processs and a constant frramework of process langu uage can reeally help enaable individuaals and
4
Use of common software modeling language Regular Monito oring & Feedback
Early RIsk Mitigation
Light Documeentatio n
www.ep phlux.com
Successful Communicatio on Practises
Build d Relation nship
Continual Integration
Value mapping
interactio ons in distribu uted team scenario. Without a un niversal langu uage of softwaare developm ment, local variationss in the use o of terms or descriptio ons of activitiies, deliverables, or roles ccan lead to great uncertain nty over the responsibilities and the expectatiions of team memberss/stakeholderrs at each location upon the others. Simp ple training caan nderstandingg the assist all involved in un same nottification and language. Commun nication proto ocol: Just as aall the involved team membeers and the ders need to u understand the stakehold same langguage, it is eq qually importtant that a com mmunication n protocol and d process iss well defined d. This can incclude the use, p priority, frequ uency and motive for using a certain com mmunication tools M, chat, phon ne calls, wikis, such as IM video con nference and emails etc. Since decisionss regarding ad doption of communiication and reeporting prottocols have a much greater impact, they White Paaper
Importance of Communication & Collaboration In Agile World
should be discussed as part of pre‐ project planning, and any required hardware or software resources should be obtained well in advance of project kick‐off. Managing the development of shared work products: Although a defined communication protocol, with common language and approach that it brings, can assist in determining the activities of the development team, the volume and complexity of the work to be performed can still be overwhelming. This can be especially the case when a development team has to share and review the work with their off‐shore partners/stakeholders. Problems pertaining to review and collaborate in real‐time on the deliverables of the project can affect the quality and progress. Therefore, it is mandatory to ensure that the deliverables/files are accessible to all involved members at all time. One of the easy way to achieve this is to create a central file repository where the deliverables/files are uploaded regularly and shared within the teams and stakeholders. Staff assessment As every project requires a dissimilar resource needs, team members must have the desirable skill‐sets and experience. The team that put together version 1.0 may not have what is needed for the features planned for 1.1. The management and the stakeholders need to assess the teams before instigating the project to ensure that the team is capable enough for the project. Trust and feedback Because off shoring has communication barriers, misunderstandings are rampant. Trust www.ephlux.com
is critical to success. Trust enables the trade of positive feedback and criticism. Establishing common non‐work interests helps a lot. Evolving Process: The traditional models normally fail in offshore projects due to over stressing on the process instead of the actual scenarios. As agile believes that the requirements of a project change and develop over time thus a process that evolves along with the project depending and considering the unique requirements, situation and circumstances and limitation of the project can guarantee smooth sailing of project and a satisfied customer at the end of this. Light Documenting: Although working code is a sign of some degree of accomplishment, it is never an alternative for documentation. However, an agile methodology does not require heavy documentation of every phase and deliverable. Lighter documentation recording the milestones, achievement, tests and other non‐functional attributes of the system can help the development team as well as the customer. Value‐stream Mapping: By scheduling work based on the biggest problems facing the business that have yet to be solved, the greatest amount of value is delivered to the business more rapidly. This helps in scheduling and prioritizing work. Not only that, but due to their importance, these requirements are more often than not front and central and therefore more complete. Early Risk Mitigation: Early risk alleviation means continuously addressing the hardest issues. In many White Paper
5
Importance of Communication & Collaboration In Agile World
cases, the most important business priorities are also the most architecturally significant but this is not always the case. So risk must be a regular consideration. Risk shouldn't be delayed because it only gets worse. Continual Feedback: Ensure that the feedback of all the stakeholders/customers and business manager’s feedback are taken in account against every delivery. A continual feedback cycle and analysis of these feedbacks to identify any new/evolved requirement ensures that all the functional and non‐functional and business requirements are met. Continuous Integration: This is probably one of the most talked about feature of agile methodology. Continuous integration of working software snippets guarantees and most importantly shows the progress of software while also showing the effectiveness of communication and collaboration between he teams and customer. Continuous integration also unveils future risks, business limitation, functionality limitations, bugs/defects, architectural and quality affecting factors at a very early stage in life cycle that allows timely fix ups. This is the main essence of Agile Development Model that differentiates it from the traditional models.
Identifying and Choosing Communication Protocol As this paper as discussed that Agile methodology is very communication intensive and plans around collaboration of all involved.
To gain maximum advantage from a communication channel , it is required that the scenario best for that channel is identified and understood, as different tools work for different kinds of problems. The basic limitation to sort out is to identify a channel and protocol to communicate the big picture or the vision of the project. Concentrating too much on day‐to‐day details
and goals ,often the teams forget the actual vision. This can hurt because then envisioning and modeling decision might be taken upon an individual’s perception of the project’s vision. Therefore when deciding the communication protocol and processes the focus should be on communicating the vision better than merely deciding on the task oriented issues such as the next tasks, feature list etc.
Groupware Technology Groupware or computer supported cooperative work (CSCW) systems refer to technology supporting groups simultaneously working on a common project. These systems provide the teams and stakeholders with a means of communication tools and interfaces enabling shared working environment. Workflow systems and virtual work environments promote awareness, progress monitoring and visibility throughout the team.
www.ephlux.com
White Paper
6
Importance of Communication & Collaboration In Agile World
CSCW systems aim at faster information transfer, better utilization of tacit knowledge, speeding up development processes and reducing administrative overhead. These goals are remarkably symmetrical to the ones of agile methodology. These tools can be categorized according to their usability that is: • Communication Tools • Monitoring Tools
Communication Tools These tools provide a mechanism for communication, conveying messages and expressions. Messaging Systems Two kinds of messaging systems can be distinguished, asynchronous and synchronous messaging systems. • Asynchronous messaging, in the form of e‐mails, is a well established medium for coordination and the exchange of information over the Internet. Via mailing lists members of collaborating groups can keep each other up to date, synchronize and coordinate their work. With digital signatures and certificates, email can be securely used even for the exchange of confidential business information. • Synchronous messaging is often the most commonly used medium through instant messengers (IM). Communication over IMs happens in real‐time. IM clients enable something like a shared virtual office, reducing the need of scheduled appointments.
Audio‐Conferencing Systems Today, audio conferences can be realized over ISDN (Integrated Services Digital Network) telephone lines, an Internet based VoIP (Voice over Internet Protocol), or mobile communication standards. Spoken communication is much more efficient for the clarification of complex or difficult matters. Being able to hear the opponents' voices enhances the exchange of information tremendously, especially in emotional regards. Audio conferencing is more dependable while communicating important functionality requirements and finding solutions to any identified problems as actual audio transmission can better convey the emotions and notions. Video‐Conferencing Systems Video conferencing might require some upfront setups and ask for mutual availability of all the team members. Video conferencing, a step ahead audio conferencing is closest to face‐to‐ face‐ meetings and can bring the teams and
customers close. Since the participants are able to see each other the actual emotions and expressions can be exchanged thus reciprocal trust can be propagated.
Monitoring Tools
www.ephlux.com
White Paper
7
Importance of Communication & Collaboration In Agile World
These tools assist in exploring the project’s progress, going through the developed functionality and other scrutinizing purposes. Wikis Wiki systems allow easy editing capabilities within the browser, include a change tracking functionality, thus any previous known‐good state of a page can be restored. It is an easy way of collaboratively editing documents. An extremely high degree of linkages between different entries and file attachments is characteristic for wikis. Wiki systems usually offer a complementary discussion forum with threads pertaining to the different entries. These threads can be used by editors to discuss and comment changes. Changes can be propagated automatically by email.
Communication Effectiveness Metrics Just as the requirement and complexity of different software differ such as product development, client‐server application, business oriented application, scientific application; so are their communication requirements. Depending upon the nature of the application, one or more of the following criteria may be chosen for measuring communication effectiveness: Combine Multiple Channels There are several channels available for
Screen Sharing Software Screen sharing applications enable participants in distant locations to simultaneously display identical screen content, according to the principle of “what you see is what I see” (WYSIWIS). The host of a session can edit and navigate through the viewed documents. Screen sharing tools or functionality are a very good way to enhance the efficiency of video and audio conferences. Group Editing Software Collaboration requires different people to contribute to shared documents. Group editing software enables group members at distant locations to simultaneously work on the same documents. Consistency of concurrent changes is maintained by sophisticated write protection mechanisms. Group editing software enables the collaborate creation of work products in video and audio conferences.
communication but a good combination of all these channels according to their features and the need of time. Phone calls and chats are the most common mechanism of communication but when more serious and formal communication is required other channels such as video and audio conferencing are preferred. Other monitoring tools allow visibility of project’s progress and goals. Verification of Effectiveness The best practices in agile off shoring emphasize on maintaining a feedback loop between the technical team as well as the customer. Such loops and regular monitoring
www.ephlux.com
White Paper
8
Importance of Communication & Collaboration In Agile World
also test the effectiveness of the channels selected and used. Communication Audit Communication audits can be arranged by arranging formal/informal focus groups scrutinizing the use and frequency of communication channels and identifying any gaps to be removed.
situation. Furthermore, every agile project needs to employ flexible and adoptive processes that matches there circumstances and requirements and evolves with the project.
References 1.
Conclusion
2.
Any organization or person experienced in outsourced software development if asked about the main factor for the success or failure of any project would generally identify communication effectiveness as the driving force. Therefore, ensuring the effectiveness of communication channels in turn guarantees the success of an outsourced project. In an Agile world it is believed that the success of any project local or offshore depends upon the communication. Agile methodology identifies the importance of creating and maintaining trust relationships to build efficient communication channels.
3. 4.
5.
FOWLER, M.: Using an Agile Software Process with Offshore Development. GRUDIN, J.: Computer Supported Cooperative Work: Its History and Participation. John Scarborough :The Distributed Agile Model Julian Holmes: Geographically distributed agile teams: Enabling individuals and interactions with processes and tools. Nari Kannan's "Metrics for Outsourced Software Development" http://www.sourcingmag.com/content/c070205 a.asp
Offshore Agile Methodology requires a little more coordination, regulation, and scheduling ‐ ‐ in other words a little more discipline. Unless an Agile team is composed entirely of bright, experienced, self‐managing, team‐supporting multiple‐domain experts, some degree of discipline is a compulsory requirement. Conclusively, the role of communication is significant in creating a Offshore Agile Success Story. With the technological advances and internet as the most common medium of communications several channels for are available; however the key is to identify the most dependable and workable in a certain www.ephlux.com
White Paper
9