Content deleted Content added
m Dating maintenance tags: {{Citation needed}} |
m categorization/tagging using AWB |
||
Line 4:
== History ==
The history of communication in distributed software development is tied to the historical setting of distributed development itself. Communication tools helped in advancing the distributed development process, since communication was the principal missing component in early attempts for distributed software development {{Citation needed|date=June 2017}}. One of the main factors in the creation of new tools and making distributed development a viable methodology is the introduction of the [[Internet]] as an accessible platform for developers and researchers, facilitating the exchange of both code and information in a team.
One of the first manifestations of distributed development is the open-source community, where developers are joined together not by an enterprise and its resources but by voluntarily participating in the same project, resulting in diverse teams from different geographical locations. In these projects there is a surging need for communication and collaboration tools. The [[history of free and open-source software]] shows that as time progressed, the complexity of the projects and the number of involved people increased. Better communication and collaboration tools had an important role on this increase. Initially the available methods were mostly asynchronous forms of communication such as the [[email]] and [[Electronic mailing list|mailing lists]] or even relying on periodical written publications to spread information. Synchronous and efficient communication would be mostly limited to [[telephone]] calls {{Citation needed|date=June 2017}}.
In this early stage there aren't many accounts of this kind of distributed development on an enterprise setting {{Citation needed|date=June 2017}}. However, the developments and tools of previous years pioneered the necessary means for companies to start investigating and adopting these practices when advantages could be obtained. More tools such as [[Audio conferencing]] and [[Instant messaging]] appeared mostly for other purposes but were quickly adopted, and continued to push forward the idea of distributed development. This new movement created an interest in the area of study that is
== 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
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
== Challenges ==
Communication can be hindered by several barriers, such as socio-cultural, linguistic, knowledge, geographical and temporal barriers
Socio-cultural barriers can manifest themselves as the means of communication. In fact, a study shows that U.S. and Japanese clients have distinct preferences with regards to them. U.S. clients prefer to communicate frequently via informal telephone and email contacts, while Japanese clients prefer verbal communication and less frequent but formal use of electronic media
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
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.
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.
== Research ==
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}}</ref>
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 40:
== 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 journal|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}}</ref>
=== Synchronous systems ===
Line 54:
==Tools==
Communication tools for Globally Distributed Software Engineering can be of various types that vary with the communication form used, the interface provided to the user, among others. Also, different categories can use different sensory information to improve the communication. The tools available include [[instant messaging]], [[email]], [[Audio conferencing|audio]] and [[video conference]], [[virtual office]] and [[virtual reality]]. This section provides an overview of different types of tools and some popular examples that are in use currently, however it is not a thorough collection and listing of available tools. More complete listings can be found in other resources.<ref>{{Cite web|url=https://drennings.github.io/MindTheGap/|title=Mind the Gap|website=drennings.github.io|language=en-US|access-date=2017-06-15}}</ref>
=== Asynchronous tools ===
Line 60:
[[Email]] is a method of exchanging digital messages between people using digital devices such as computers, mobile phones and other electronics. Unlike the most [[instant messaging]] tools, on email neither the users nor their computers are required to be online simultaneously. The cost of using email in company varies, since, for example, the company might have its own email server.
Empirical studies demonstrated that all team members on a software development team used this tool effectively. Unlike [[instant messaging]], email messages are intended to be more stand-alone and less sensitive to the context of communication, and thus producing email messages requires more time than traditional IM messages
Some email providers are [[Gmail]], [[Outlook.com]] and [[ProtonMail]].
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
[[Video conference]] is also a good way to develop trust among global software developers, since it allows team members to form personal relationships
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
[[Zoom Video Communications|Zoom]], [[GoToMeeting]] and [[Highfive (company)|Highfive]] are examples of these type of tools.
Line 79:
Virtual Offices recreate the personal proximity and functionality of a physical office needed by teams in a global distributed software engineering environment. Instead of having "channels" or "messages threads", virtual offices have rooms on a virtual office space.
Professor Thomas J. Allen in the late 1970's discovered that the increase of distance between engineers reduces exponentially the frequency of communication between them
Furthermore, other studies <ref name="van Gamerenvan Solingen20132">{{cite journal|last2=van Solingen|first2=Rini|last3=Dullemond|first3=Kevin|year=2013|title=Auto-erecting Virtual Office Walls: A Controlled Experiment|pages=206–215|doi=10.1109/ICGSE.2013.34|last1=van Gameren|first1=Ben}}</ref> show that virtual offices make work coordination easier and improve the performance in a team.
Line 86:
====Virtual Reality====
[[Virtual reality|Virtual Reality]] has gained increased interest over the years. It has grew from an industry of 129 million [[United States dollar|USD]] in 2015 to over 1 billion [[United States dollar|USD]] by the end of 2016. It is estimated that the industry will reach 4.6 billion [[United States dollar|USD]] by the end of 2018.
The content exchanged during the act of communication is merely the interpretations of the situations in which the actors are involved. The latter, in turn, depend on the context. The motivation for using virtual reality as a communication tool is based on the premise that one's perception of context is proportional to the sensorial information available.
Line 92:
In a virtual reality communication setup, each of its participants is under sensorial immersion. This improves the perception of the context in which the actor is in, which in turn improves the communication experience itself.
Even though the concept is not recent, the technology only started to be significantly developed as of 2010.
[[AltspaceVR]] is an example of a virtual reality platform which was recently used as a communication tool. [https://www.wsj.com/articles/virtual-reality-takes-on-the-videoconference-1474250761]
Line 99:
====Instant Messaging====
[[Instant messaging]] (IM) allows the transmission of messages between two parties or more in case of a "chat room". It can be synchronous or asynchronous and it's considered to be the less intrusive communication type
[[WhatsApp]], [[Facebook Messenger]] and [[HipChat]] are examples for this type of tool.
Line 106:
=== Agile ===
Mixing [[Agile software development]] and Distributed Software Development brings a lot of challenges to the team communication
=== Extreme Programming ===
[[Extreme programming]] (XP) was designed for a environment where all developers were co-located
== References ==
Line 116:
== External links ==
* [https://drennings.github.io/MindTheGap/ Mind the Gap, list of tools for Global Software Engineering]
{{Uncategorized|date=June 2017}}
|