Communication in distributed software development: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
m Alter: doi-broken-date. You can use this bot yourself. Report bugs here. | User-activated.
Citation bot (talk | contribs)
m Alter: doi-broken-date. Removed parameters. | You can use this bot yourself. Report bugs here. | User-activated.
Line 11:
 
== Importance ==
Software development, in general, requires a great deal of information exchange <ref name=":3">{{Cite journal|last=Perry|first=D. E.|last2=Staudenmayer|first2=N. A.|last3=Votta|first3=L. G.|date=July 1994|title=People, organizations, and process improvement|url=http://ieeexplore.ieee.org/document/300082/|journal=IEEE Software|volume=11|issue=4|pages=36–45|doi=10.1109/52.300082|issn=0740-7459}}</ref> and studies show that a great percentage of a developer's time is spent on collaborative/communication activities.<ref>{{Cite journal|last=Robillard|first=Pierre N|last2=Robillard|first2=Martin P|date=2000-09-15|title=Types of collaborative work in software engineering|url=http://www.sciencedirect.com/science/article/pii/S0164121200000133|journal=Journal of Systems and Software|volume=53|issue=3|pages=219–224|doi=10.1016/S0164-1212(00)00013-3}}</ref> While [[Formal Communication|formal communication]] is used for essential tasks such as updating a project status or determining who has responsibility for any particular work, [[informal communication]] is also crucial for the development process.<ref name=":4">{{Cite journal|last=Herbsleb|first=J. D.|last2=Moitra|first2=D.|date=March 2001|title=Global software development|url=http://ieeexplore.ieee.org/document/914732/|journal=IEEE Software|volume=18|issue=2|pages=16–20|doi=10.1109/52.914732|issn=0740-7459}}</ref> [[Informal Communication|Informal communication]], or "corridor talk”, helps developers stay aware of what is going on around them, what other employees are working on, who has expertise in what area, and many other essential pieces of background information that enables them to work together efficiently and create the "spirit of a team".<ref name=":4" /> Studies also show that the more uncertain a project is, the more important is this kind of communication.<ref name=":2" />
 
In a [[Distributed development|Global Software engineering]] (GSE) environment, [[informal communication]] is hard to recreate. The lack of this type of communication can lead to surprises, resulting in misalignment and rework.<ref name=":4" /> For this reason, Communication in Distributed Software Development is important for any company that is applying GSE. This area of study, among other things, tries to recreate [[informal communication]] in a GSE environment, in order to develop software without the loss of development speed that is characteristic to this environment.<ref name=":1" />
Line 22:
Linguistic barriers typically manifest themselves when at least one of the actors in a conversation is not speaking its native language. Aside from the fact that one should be able to express himself better in his native language, there are other obstacles. [[Idiomatic expression]]s and [[slang]] are an examples of such obstacles that difficult [[Informal Communication|informal communication]].
 
According to [[Allen curve|Allen's Curve]], the frequency of communication between engineers drops at an exponential rate as the distance between them increases. In case of coworkers in a company, communication is often triggered by random encounters between coworkers. When there is a significant distance between the latter, their communication decreases. In fact, an empirical study was conducted that compared the frequency of communication between coworkers from local and remote sites. Most of the inquired answered that they speak to the majority of their local colleagues at least once a day, while speaking less than once a week with their remote ones.<ref name=":1">{{Cite journal|last=Herbsleb|first=J. D.|last2=Mockus|first2=A.|date=June 2003|title=An empirical study of speed and communication in globally distributed software development|url=http://ieeexplore.ieee.org/document/1205177/|journal=IEEE Transactions on Software Engineering|volume=29|issue=6|pages=481–494|doi=10.1109/tse.2003.1205177|issn=0098-5589|citeseerx=10.1.1.110.4806}}</ref>
 
Temporal barriers are closely related to geographical barriers. Temporal barriers are typically present on a scenario where two or more coworkers are in different time zones and often times in different geographic locations. Developers mostly communicate during work hours, and while they can use asynchronous communication which doesn't require overlapping work hours, it inherently delays the communication process.<ref name=":6">{{Cite journal|last=Šmite|first=Darja|date=2006-01-01|title=Global software development projects in one of the biggest companies in Latvia: is geographical distribution a problem?|journal=Software Process: Improvement and Practice|language=en|volume=11|issue=1|pages=61–76|doi=10.1002/spip.252|issn=1099-1670}}</ref> As an alternative they can use synchronous communication if they need to communicate in real time, however it introduces the complication of finding overlapping work hours. [[Follow-the-sun]] is a common approach taken by software companies to mitigate the latter issue.
Line 29:
Research on Communication in Distributed Software Development is conducted in order to improve the understanding of the implications of different communication methods on the success of the development process and the final product.
 
Communication is an essential process in coordinating a software development project and sharing knowledge between the team members. Previous studies <ref>{{Cite journal|last=Hendriks|first=Paul|date=1999-06-01|title=Why share knowledge? The influence of ICT on the motivation for knowledge sharing|url=http://onlinelibrary.wiley.com/doi/10.1002/(SICI)1099-1441(199906)6:23.0.CO;2-M/abstract|journal=Knowledge and Process Management|language=en|volume=6|issue=2|pages=91–100|doi=10.1002/(SICI)1099-1441(199906)6:23.0.CO;2-M|issn=1099-1441|doi-broken-date=20182019-1202-3021}}</ref><ref>{{Cite journal|last=Goodman|first=Paul S.|last2=Darr|first2=Eric D.|date=1998|title=Computer-Aided Systems and Communities: Mechanisms for Organizational Learning in Distributed Environments|jstor=249550|journal=MIS Quarterly|volume=22|issue=4|pages=417–440|doi=10.2307/249550|url=http://repository.cmu.edu/cgi/viewcontent.cgi?article=1817&context=tepper}}</ref> claim that sharing knowledge is important to building trust and even improving the performance of the whole team, which also applies in a distributed software development process.
 
It can also bring challenges, as referred in the section above, that when improperly dealt with can delay a team project or even cost money to the company. A great deal of studies tries to find ways to mitigate these problems and avoid miscommunication.<ref name=":7" />
Line 35:
The tools used for communication are within the scope of some studies. They show the advantages and disadvantages of some different types of tools, and also which kind of tools the developers like to use for certain situations.<ref name=":03" /><ref name=":8" />
 
The interest of researchers in how a globally distributed development influences the success of the project is noted in publications such as <ref name=":7">{{Cite book|last=Mockus|first=A.|last2=Herbsleb|first2=J.|date=2001|title=Challenges of global software development|url=http://ieeexplore.ieee.org/document/915526/?part=1|journal=Proceedings Seventh International Software Metrics Symposium|pages=182–184|doi=10.1109/METRIC.2001.915526|isbn=978-0-7695-1043-9}}</ref> where the author mentions the need for more empirical studies on the subject. Another study <ref>{{Cite book|last=Yu|first=Liguo|last2=Ramaswamy|first2=Srini|last3=Mishra|first3=Alok|last4=Mishra|first4=Deepti|date=2011-10-17|title=Communications in Global Software Development: An Empirical Study Using GTK+ OSS Repository|journal=On the Move to Meaningful Internet Systems: OTM 2011 Workshops|volume=7046|language=en|pages=218–227|doi=10.1007/978-3-642-25126-9_32|series=Lecture Notes in Computer Science|isbn=978-3-642-25125-2}}</ref> tried to find more direct relations between time zones and language barriers without significant results, which as suggested by the author, might be due to low sample size. However it was shown <ref name=":1" /> that there is indeed a relationship between distributed development and longer response times between collaborators. There are also studies that correlate the frequency of communication and the geographical distance, such as [[Allen curve]].
 
The research done so far points to the need of improving the methodologies and tools used by companies and that communication is a big factor in the success of a company. {{citation needed|date=June 2017}}
 
== Forms of communication ==
[[Communication]] in a collaboration setting can be achieved either synchronously or asynchronously, differing in how agents interact with each other. The different communication forms create analogous communication systems and tools depending on the type of communication supported, which serve different purposes in a distributed development setting. Even inside a company, the tasks and responsibilities of different members reflect in their usage in the tools used in the work environment.<ref>{{Cite book|last=Sundaravej|first=T.|last2=Mirchandani|first2=D.|last3=Lederer|first3=A.|date=January 2015|title=Synchronous Collaboration Technology Use in Teamwork|url=http://ieeexplore.ieee.org/document/7069683/|journal=2015 48th Hawaii International Conference on System Sciences|pages=216–225|doi=10.1109/hicss.2015.35|isbn=978-1-4799-7367-5}}</ref>
 
=== Synchronous systems ===
Line 67:
 
====Audio and video conference====
[[Conference call|Audio]] and [[Videotelephony|video conference]] are the technologies for the reception and transmission of [[Audio signal|audio]]-[[video]] signals by users at different locations, for communication between people in real-time. These type of tools attempts to replicate the rich interaction present in face-to-face meetings.<ref name=":8">{{Cite book|last=Niinimaki|first=T.|last2=Piri|first2=A.|last3=Lassenius|first3=C.|date=July 2009|title=Factors Affecting Audio and Text-Based Communication Media Choice in Global Software Development Projects|url=http://ieeexplore.ieee.org/document/5196929/|journal=2009 Fourth IEEE International Conference on Global Software Engineering|pages=153–162|doi=10.1109/icgse.2009.23|isbn=978-0-7695-3710-8}}</ref> Rich synchronous communication technology such as video-conferencing is appropriate for highly interactive discussions where body language and intonation can convey the degree of understanding or agreement among participants.<ref>{{Cite book|last=Dafoulas|first=G. A.|last2=Swigger|first2=K.|last3=Brazile|first3=R.|last4=Alpaslan|first4=F. N.|last5=Cabrera|first5=V. L.|last6=Serce|first6=F. C.|date=January 2009|title=Global Teams: Futuristic Models of Collaborative Work for Today's Software Development Industry|url=http://ieeexplore.ieee.org/document/4755342/|journal=2009 42nd Hawaii International Conference on System Sciences|pages=1–10|doi=10.1109/hicss.2009.231|isbn=978-0-7695-3450-3}}</ref>
 
[[Video conference]] is also a good way to develop trust among global software developers, since it allows team members to form personal relationships.<ref>{{Cite journal|last=Bhat|first=J. M.|last2=Gupta|first2=M.|last3=Murthy|first3=S. N.|date=September 2006|title=Overcoming Requirements Engineering Challenges: Lessons from Offshore Outsourcing|url=http://ieeexplore.ieee.org/document/1687859/|journal=IEEE Software|volume=23|issue=5|pages=38–44|doi=10.1109/ms.2006.137|issn=0740-7459}}</ref>
 
Investigators found out that team members who are not confident with their English language skills prefer to use [[email]] or [[instant messaging]] over [[Conference call|audio]] and [[Videotelephony|video conferencing]], as text-based media provide more time to comprehend and compose a response.<ref>{{Cite journal|last=Noll|first=John|last2=Beecham|first2=Sarah|last3=Richardson|first3=Ita|date=September 2011|title=Global Software Development and Collaboration: Barriers and Solutions|journal=ACM Inroads|volume=1|issue=3|pages=66–78|doi=10.1145/1835428.1835445|issn=2153-2184|hdl=10344/656}}</ref> This becomes a problem, since text-based media doesn't use neither auditory nor visual features, which can hinder the process of understanding important information and lead to misunderstandings.
Line 106:
 
=== Agile ===
Mixing [[Agile software development]] and Distributed Software Development brings a lot of challenges to the team communication.<ref>{{Cite journal|last=Ramesh|first=Balasubramaniam|last2=Cao|first2=Lan|last3=Mohan|first3=Kannan|last4=Xu|first4=Peng|date=October 2006|title=Can Distributed Software Development Be Agile?|journal=Commun. ACM|volume=49|issue=10|pages=41–46|doi=10.1145/1164394.1164418|issn=0001-0782|citeseerx=10.1.1.477.201}}</ref> On one hand, [[Agile software development]] demands an increase for informal communication and lacks formal communication, like [[documentation]].<ref>{{Cite journal|last=Highsmith|first=J.|last2=Cockburn|first2=A.|date=September 2001|title=Agile software development: the business of innovation|url=http://ieeexplore.ieee.org/document/947100/|journal=Computer|volume=34|issue=9|pages=120–127|doi=10.1109/2.947100|issn=0018-9162}}</ref> On the other hand, Distributed Software Development makes it difficult to initiate communication, can lead to misunderstandings and increases the communication cost (time, money, etc) as explained previously [[#Challenges]], which can lead to a decrease on the frequency of communication.<ref name=":1" /><ref>{{Cite journal|last=Ebert|first=C.|last2=Neve|first2=P. De|date=March 2001|title=Surviving global software development|url=http://ieeexplore.ieee.org/document/914748/|journal=IEEE Software|volume=18|issue=2|pages=62–69|doi=10.1109/52.914748|issn=0740-7459}}</ref> This makes the area of study presented of utter importance in Agile Distributed Software Development. One of its core principles emphasizes the relationships between individuals and their interactions, entailing constant communication.<ref>{{Cite book|title=Agile software development : the cooperative game|last=Alistair.|first=Cockburn|date=2007|publisher=Addison-Wesley|isbn=9780321482754|oclc=70867033}}</ref>
 
=== Extreme Programming ===
[[Extreme programming]] (XP) was designed for a environment where all developers were co-located,<ref>{{Cite book|title=Extreme programming installed|last=1967-|first=Anderson, Ann|last2=Chet.|first2=Hendrickson|date=2001|publisher=Addison-Wesley|isbn=978-0201708424|oclc=44518151}}</ref> which is not the case for Distributed Software Development. Furthermore, XP is heavily reliant on continuous communication between stakeholders and developers, which makes communication one of the five core values of XP.<ref>{{Cite book|url=https://books.google.com/?id=G8EL4H4vf7UC&pg=PR13&dq=K.+Beck,+Extreme+Programming+Explained:+Embrace+Change,+second+ed.+Addison-Wesley,+Reading,+MA,+2005#v=onepage&q&f=false|title=Extreme Programming Explained: Embrace Change|last=Beck|first=Kent|date=2000|publisher=Addison-Wesley Professional|isbn=9780201616415|language=en}}</ref> Consequently, communication on distributed environment is of utter importance for a XP development environment <ref>{{Cite journal|last=Layman|first=Lucas|last2=Williams|first2=Laurie|last3=Damian|first3=Daniela|last4=Bures|first4=Hynek|date=September 2006|title=Essential communication practices for Extreme Programming in a global software development team|url=http://www.sciencedirect.com/science/article/pii/S0950584906000024|journal=Information and Software Technology|series=Special Issue Section: Distributed Software Development|volume=48|issue=9|pages=781–794|doi=10.1016/j.infsof.2006.01.004|citeseerx=10.1.1.463.7225}}</ref> and should be taken into account when applying this methodology on a distributed environment.
 
== References ==