The Emergence Of Cscw

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

This study was developed to fulfil a master’s dissertation, and focuses on improving communication and collaboration among distributed software development teams through IDEs that utilize the cloud architecture. These improvements are facilitated through the power of collaborative software development environments, the emerging trend behind cloud computing and Web 2.0 technologies. This study is conducted to describe developers’ experiences of working with cloud IDEs and how such tools influence their collaborative teamwork for software development. However, this study assumes a prior understanding of the cloud computing concepts and underlying infrastructure and cloud services such as IaaS, PaaS and SaaS offered to individuals and organizations accordingly.

Research Motivation and Purpose

Collaborative teamwork is an integral part of software development and has become the norm in the development of software systems (Sarma et al., 2007). Virtually all software development requires collaboration among developers within and outside their project teams, to achieve a common objective. Vessey and Sravanapudi (1995) showed in their research that a software engineer spends 70% of his time on collaborative activities, trying to gain information on what others are doing.

Software development is a very knowledge-intensive and social process. It lets the developers to exchange information and code fragments, connect with others who share technical interests, post messages in the team or community weblogs, answer questions and discuss issues in mailing lists (Robillard, 1999). A team of developers working on the same project must deal with parallel development. They work in collaboration with each other to refine their codes, keep them bug-free, meet all the boundary conditions, and run under all the system conditions without failing. Such collaboration has proven to improve the quality of the code. A number of tools have been helping developers to coordinate parallel development, with Software Configuration Management (SCM) systems occupying a key position. With the increasing need for more effective solutions for parallel development, SCM systems have evolved from preventing concurrent versioning on the same file (Tichy, 1985) to allowing concurrent editions and offering support for merging them later (Estublier et al., 2005). Therefore, in order to work effectively, these developers need to be aware of their peers’ operations, design decisions or tacit knowledge regarding the project.

Over the last two decades, the Internet has made distances irrelevant and has made remote collaboration more practical among development teams. The growth of global software development, in which teams of developers are spread over different locations, affects collaboration issues, such as awareness, communication and synchronization (Herbsleb et al., 2000; Sangwan et al.,2006). This has a direct impact on parallel development, since an uncoordinated team – with lack of communication – tends to lose the notion of who is changing which parts of the system. Thus, awareness extinguishes in the propagation of changes which is a main drawback of the mainstream software development environments and SVN systems. Consequently, the number of concurrent changes to the same code artefact tends to increase, resulting in merge conflicts and duplicated work. This study argues that the key to promote coordination among de-located teams is increasing the level of awareness.

Recently, there has been an increased interest in addressing such collaboration issues using the development tools on cloud. This resulted in full-fledged cloud-based collaborative software development environments available today, such as IBM’s Jazz (Cheng et al., 2003; Frost, 2007) or Cloud9 IDE or eXo cloud IDE or Microsoft’s CollabVS (Hegde and Dewan, 2008). These industrial IDEs are especially suited for distributed and collaborative software development over the internet. Individual developers, industrial teams, open source communities are making the maximum use of such IDEs (Storey et al., 2010). It has multiple benefits. Web applications are available globally and can be accessed using any up-to-date web browser. They are also easy and inexpensive to maintain. Updates are distributed automatically just by updating the application on the server.

In the context of cloud-based collaborative development environments (CDEs), awareness is promoted by visually enriching a developer’s Integrated Development Environment (IDE) with information of who is changing what in the system in real-time. Indeed, current IDEs have surpassed the notion of being convoluted text editors, and have become environments in which developer assistance appears in many forms, such as refactorings (Fowler, 1999), code completion, version controlling, etc. If the development tool has an integrated access to the collaborative tools inbuilt into it, much of the developers time will be saved that is wasted when context switching between tools to collaborate with co-developers, which will inherently increase the productivity (Lei et al., 2004).

With lightweight, community-centered collaborative widgets built into the cloud IDEs, much of the overhead to collaborate with co-developers and share artefacts and knowledge regarding a software product is saved. It contributes in increasing developer’s awareness, and helps him to coordinate his activities with his team members. Real-time contextual information gathered from the collaborative features of the IDE helps to collaborate and share knowledge regarding the developing activities in the team.

However, this does not come without a series of challenges which are investigated by this empirical research. The distributed nature of software development presents a number of challenges faced by the developers relating to project coordination, peripheral awareness and collaborative coding. When face-to-face communication is lost, the willingness of developers to help others and the ability to spot specialists drops dramatically (Herbsleb et al., 2000), negatively impacting awareness. These problems needs to be addressed by those cloud IDEs without compelling the main goal of developers: writing programs.

Many researchers have tried to design a solution to address all those issues by making different cloud-based IDE architectures that support collaborative tools to enhance the communication between geographically distributed team of developers. They tried to incorporate one feature or the other to support this collaboration. But there is still a gap seen in all those researches to focus on the live experiences of the developers who are actually working on these IDEs. Without knowing the real-time experiences of the actual users of those tools, one cannot tell about how well they are adopted by the developers, considering the challenges posed.

Research Aims and Objectives

This dissertation aims to understand the collaboration dimension of software development provided by cloud IDEs from the perspective of the developers, and its performance in distributed multi-developer projects. The objective of this study is to determine that the collaborative features integrated into the cloud IDE can facilitate collaboration among de-located developers to improve the productivity of the distributed projects. It does so by capturing the experiences of the developers working collaboratively in the distributed teams on such IDEs.

The study starts with drawing concepts from existing literature. Previous researches are reviewed to draw knowledge on the intersection of three key concepts, those of, collaboration tools, software development and cloud computing (Figure 1).

Figure : Intersection of three key concepts

Through a study of popular architectures and infrastructures, this study highlights the benefits surrounding the collaborative cloud-based IDEs and the impact this has on the communication and collaboration needs of the developers working in a team or community. Such an environment looks to provide a paradigm shift towards future software development practices and in doing so solves a number of communication and collaboration problems.

Guided by the literature background, the research questions framed for this study aims in capturing the lived experiences of developers currently involved in developing software codes collaboratively on those IDEs in their distributed teams. Qualitative methodology was selected to do the empirical study. The study aims to understand how these IDEs serve as an awareness system to let the developers know about what is going around them and about the latest activity of their co-developers. This study also gathers information about the challenges surrounding the adoption of those cloud IDEs, particularly focusing on the technical issues. In doing this study, the researcher aims to consider the implications on the next-generation of software development tools. The two main research questions guides the study:

How does the collaborative dimension of cloud IDEs support and change collaborative software development? How developers take advantage of the cloud-based architectures to communicate and collaborate with their peers in a distributed fashion, using Web 2.0 features in these IDEs?

What is the likelihood of adoption of cloud-based IDEs into the work culture? What are the opportunities and technical challenges induced with its adoption?

This study can help the software start-up firms and small and medium-sized enterprises (SMEs) to recognize the benefits that the cloud IDEs brings to the developers in a distributed team. It can serve as a source in knowing the facts about the cloud IDEs in light of the lived experiences of the developers working on those IDEs for the future implementation of those IDEs in the SMEs or open source communities.

Chapter Outline Summary

The paper is organized in the form of six main chapters as follows. Chapter 2 discusses the most relevant related work. It discusses previous work done on cloud-based collaborative development environments from the workspace awareness and configuration management point of view. Chapter 3 elaborates on the research methodology used for this study. Chapter 4 discusses the results of the methodology used and in Chapter 5, the discussion continues with all the inferences developed using the results of the study for future implementations. Finally, in Chapter 6 the paper draws some concluding remarks and discusses possibilities for future work.

Chapter 2: Literature Review

This chapter reviews the current state of the art in collaborative development systems that establish the context for this dissertation.

Software Development in Context

Software development is a highly collaborative effort especially when the developers are in distributed teams. The developers collaborate for a specific purpose. In software development that purpose is the agreement on the goals of the collaborative effort, an understanding of how the goals will be attained, and an awareness of the state of the collaborative effort (Pollice, 2008). Since the 1980s, collaboration in software development has been studied by researchers in the fields of Software Engineering and Computer-Supported Cooperative Work (CSCW) (Grudin, 1994; Ellis et al., 1991) and has produced a wide range of collaborative tools to help the developers.

The Emergence of CSCW

The roots of CSCW came from when Bush (1945) called on a meeting of scientists to show how "machines" can be used for storing and sharing information. Since the 1980's, CSCW systems had emerged as a key component in supporting business activities (Roddin, 1991). Greif (1988) published Computer-Supported Cooperative Work: A book of readings, where he defined CSCW as a distinct and identifiable research field focused on the role of the computer in support of group work. According to Grudin (1994), the goal of CSCW was to assist groups in communicating, in collaborating, and in coordinating their activities. Past researches have shown that CSCW had led to many developments worked on and enhanced socially (Grudin and Poltrock, 2012).

Research by Monplaisir (1999) had shown that the functions of CSCW were to support communication. Firstly, the system should be able to define participants and their tasks in the process, and support three level of communication, that is, individual, group, and project. Therefore, task and process dependency can automatically promote interactions among participants. Secondly, the system should be able to define data dependency based on a combination of the reference, documentation, project management, and communication system, thus design information can be generated, stored, and shared. Thirdly, the system should be able to trace the status or progress of project by visualization to detect possible communication pitfalls. Lastly, the system should support team awareness by enhancing the personal identity and team awareness in the process by demonstrating participants' presence.

Ellis et al. (1991) proposed a time and space taxonomy for CSCW tools as depicted in Figure 2. For e.g., face-to-face interaction can be meeting room technology; a real-time document editor can be a synchronous distributed interaction; a bulletin board can be a asynchronous interaction; and an electronic mail system can be an example of asynchronous distributed interaction. The aim of CSCW was to build a groupware system to let people cooperate by overcoming barriers of space and time that are imposed on people. The tools also indicate the status of each individual involved in the process.

Figure : Time space taxonomy (Ellis et al., 1991)

Schuster (2007) provided some examples of the collaboration software used in accomplishing basic activities of collaboration, i.e., communication, cooperation and coordination (Teufel et al., 1995) as in Table 1.

Table : Categorization of examples of collaboration software (Schuster, 2007)

Chiu (2002) proposed a theme-oriented interface that combines collaboration technologies with a rich and meaningful representation. Figure 3  shows a framework that design information can be shared in the modelling and the communication modules. The modelling module can be maintained in the individual workspace, while the coordination of task and design information can be maintained in the group workspace.

Figure : A framework of CSCW (Chiu, 2010)

CSCW achieved in Software Development Tools

With the evolution of the technology and materialization of Internet, the collaboration and coordination processes and all the years of CSCW research led to development of collaborative tools. These tools were capable of the networked exchange of information and ideas from the users based at geographically distant places, even overcoming time differences. This led to the concept of groupware (Baecker, 1993), that is computer-based systems that support groups of people engaged in a common task (or goal) and that provide an interface to a shared environment (Engelbart, 1992). Years later, Malone and Crowston (1994) devised a "coordination theory" on the basis of research in several different disciplines like organization theory, computer science, management science, economics, psychology and linguistics. They defined coordination as a way of managing dependencies between activities. By characterizing the different types of possible dependencies between task activities, Malone and Crowston (1994) were able to identify and manage the so-called coordination processes and problems with resources allocation.

Three main aspects of CSCW achieved in software development tools, were reviewed from past researches.



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now