An Evaluation Model for Social Development Environments
Hani Bani-Salameh
1, Sanaa Alwidian
2, Maen Hammad
1and Fadi Wedyan
11
Department of Software Engineering, The Hashemite University, Jordan
2
Department of Computer Science,
The Hashemite University, Jordan
1
{hani,mhammad,fadi.wedyan}@hu.edu.jo,
2{sanaa}@hu.edu.jo
Abstract
Distributed software development is becoming a common practice among developers. Factors such as the development environments improvement, their extensibility, and the emergence of social networking software are leading factors. They lead the development process (both co-located and geographically distributed) to a practice that: 1) improves the team’s productivity, and 2) encourages and supports the social interaction among the teams’ members.
The above factors along with the distributed development emergence, Integrated Development Environments (IDEs) evolution, and the social media advances got the attention of the software development teams, and made them consider how to better assist the social nature of software developers, and the social aspects of software development, including activity awareness of team members’ progress, their presence, collaboration, communication, and coordination around shared artifacts.
IDEs are the most commonly used tools by developers and programmers. Integrating the most needed development tools inside the IDE, makes it a Collaborative Development Environment (CDE), and embedding a variety of social software features within a CDE helps support distributed development teams. It also creates a new genera of tools called Social Development Environments or “SDEs” as it is commonly called.
This article discusses the origins and development of “SDEs”. It reflects and presents the research into development environments, explaining their role in supporting the communication and coordination needs of development teams. Also, it presents the effect of embedding social network features in such environments. It presents some emerging SDEs and future work. Finally, it concludes by introducing a new model named 5-star that classifies, and helps to evaluate and compare the collaborative tools. 5-star presents a new way to compare and evaluate the SDE systems based on their supported features. It bases the comparison on five major categories including: Communication, Coordination, Collaboration, Awareness & Presence, and Social networking (SN) tools.
Keywords: Social Software; Social Networks (SNs); IDE; CDE; SDE
1. Introduction
Software engineering is a group effort. Software developers spend a majority of their time on programming activities using a development environment coupled with a variety of collaborative tools. To facilitate collaboration and coordination, developers always feel the need to maintain awareness of their peers’ activities, awareness of the project artifacts, and also social awareness of the interests and opinions of all stakeholders [1]. They use Integrated Development Environments (IDEs) in their everyday activities; in different editing and debugging activities while solving particular technical problems or developing different
software tools. These programming environments evolved from command-line tools, to text-based IDEs, graphical IDEs, and eventually to collaborative and social development environments.
There are many tools available for software developers and engineers to use (e. g., IDEs) that integrate many features to enhance communication, coordination, and collaboration. Such environments support features including project management, version control, bug tracking, and mailing lists. Also, they may provide other features, such as text and audio chat, and email to provide awareness (both formal and informal) of the developers’ activities.
Software developers work within a community and form teams. The existence of wikis, forums, emails, chat, user groups, and now social networks have always been an important factor of the way teams are formed, and developers and software engineers come together.
Software engineers frequently make use of social media to integrate tools, and adapt them in their development environments [1, 2]. They make use of a variety of social media tools to coordinate their work, communicate with their team members, maintain awareness of their activities, and be informed about new technologies and teams’ interests.
Social development environments (SDEs) cover several related disciplines of computer science and software engineering. To better understand the social development environment tools, knowledge of these fields is needed. These disciplines involve (1) Source code control which is a popular practice in almost all software development projects, where developers and programmers are able to check in/out their project artefacts of a shared repository; examples include sourceforge.net, Git, and Subversion; (2) CSCW (Computer Supported Collaborative Work) that studies the nature of the collaborative activities among groups and team members, and how it can be supported by means of development environments [3]; (3)Awareness and Presence which refers to the state or fact of feeling present or exist, and aware of the surrounding activities, project and artefact changes; (4) Social media and networking tools are media that supports interactions among people, and help them create virtual communities and networks; and (5) Integrated development environments. SDE forms an intersection of these overlapping fields (see Figure 1).
In this article, we propose a new model that classifies, and helps to evaluate and compare the collaborative tools. To our knowledge, no existing publication or model that evaluates and compares the so called social development environments the way presented in this article.
Figure 1. Disciplines Associated with Social Development Environments
The rest of this article is organized as follows. Section 2 identifies the research approach and research questions. Section 3 provides a description of the SDEs and presents a number of existing software systems that fall under the CSCW and social software umbrella. Section 4 provides a preliminary ranking model of these systems based on the features integration and support. Finally, this article sums up the current state of this work and discusses future directions in Section 5.
2. Identification of Research
The research and literature introduced here has been developed by following the guidelines presented in [4]. In this section, we give an overview of this process. In short, this process is conducted by three steps: (i) Defining the objectives, research questions, and planning; (ii) Conducting the search by defining and comparing the tools; (iii) Analysis and classification of the tools, and creating a novel evaluation model. These steps are explained in more details later in this article.
2.1. Goal
This study is undertaken to achieve some major goals. The main objectives of this study are as follows:
(i) To review and describe the mostly used communication and collaboration tools that integrate social awareness, and support the distributed software development teams. (ii) To classify the tools in order to allow members of the development community to
make use of such tools.
(iii) To produce an evaluation model that helps to evaluate and compare the SDE systems based on their supported features.
2.2. Definition of Research Question
This study was performed as a review through a search for existing investigating studies to answer the following research questions:
What social development tools and environments (SDEs) are available and mostly used to support the software development community?
What features are integrated in such tools?
The review study is expected to reveal the following information:
Which social tools are available and used by the distributed developers.
Which features are integrated in these tools, how the tools compare and are ranked to one another based on to their features support.
3. Social
DevelopmentEnvironments
While working individually or collaborating with their teams, software engineers need to coordinate with other members, to communicate and interact to learn from others, to be aware of others activities, and to become informed about new advances and technologies. To support such activities, software developers usually make use of a wide variety of tools ranging from code editors to development environments, project portals and forges, and social media tools (e.g., wikis, blogs, and SNs).
SDE is where developers find all these tools integrated in a single environment. Although having different objectives and diverse communities, SDE systems share a common set of tools. These tools were analyzed and classified according to our social-aware version of the 3C collaboration model. The new model updates the 3C collaboration model introduced by Fuks et al., [5]. The goal of this update is to show the importance of social media and SN tools in 1) coordinating, 2) easing the communication, and 3) supporting the collaboration between the developers (see Figure 2).
The proposed model bases the SDE features classification on five elements criteria: 1) Communication, 2) Coordination, 3) Collaboration, 4) Social networking (SN) tools, and 5) Awareness. The domain context of these tools is pinpointed as “social development environments (SDEs)”.
Figure 3 represents a “features analysis” of the major supported features depending on the 3C collaboration model. The features model not only shows the structure of the SDE environment, the components an SDE consist of, and the supported features and tools, but also it shows that an SDE consists of: (i) a CDE; (ii) Community building tools and features; and (iii) Social media and social networking tools.
Section 3 presents SDEs as they form the platform where social media features are integrated and put into use by developers [6].
3.1. Defining SDEs
An SDE is a real-time collaborative programming tool with integrated social networking features. This emerging technology is important for distributed software developers, eLearning and technical communities. SDEs advance the state of the art for collaboration, coordination, and project management in software development.
Social Development Environments provide a wide range of facilities for synchronous and asynchronous collaboration and information sharing between team members.
According to Treude [6], SDEs are tools that provide support for development activities, ranging from requirements engineering and development to validation/testing and through evolution, using a variety of integrated social media mechanisms.
Researchers provided several definitions for Social Software. This section present some of these definitions.
According to Coates [7], “Social software can be loosely defined as software which supports, extends, or derives added value from human social behaviour– message boards, music taste-sharing, photo-sharing, instant messaging, mailing lists, social networking”
In his book “Social Software in Libraries: Building Collaboration, Communication, and Community Online”, Farkas [8] defines social software as:
“a tool that must meet at least two of the three following conditions:
- It allows people to communicate, collaborate, and build community online. - It can be syndicated, shared, reused, or remixed, or it facilitates syndication.
- It lets people learn easily from and capitalize on the behavior or knowledge of others.”
Figure 3. A Features Model Classifying the Supported Tools According to the Social-aware 3C Collaboration Model
In this article the term social development refers to software development in collaborative online communities with social relationships. They are developers’ networks where developers do not usually interact merely to socialize, as in conventional social networks. In contrast, they interact and collaborate primarily through shared project artefacts [9].
3.2. Common Properties
SDEs are virtual spaces where developers of a project can meet, brainstorm, discuss, record, and go over ideas to solve design and coding problems, and create software products [9]. As same as CDEs, SDEs create a platform for environments that aims to reduce friction in collaborative processes, and improves both individual and teams’ productivity [12, 13].
As mentioned earlier, SDEs support both of the synchronous and asynchronous collaboration between team members. An SDE is not a single application, it is a harmony between many different development tools. Several applications support the primary collaborative infrastructures for complete SDEs in a single environment. SDEs include a spectrum of collaborative tools that can be of a big benefit to the development communities. Each one of these tools adds its own taste and value to the integrated environment, including eeb logs (blogs), mailing lists, walls, chat rooms, whiteboards, and wikis. This article provides an overview of SDEs and presents a comparison between the state of the art examples (see Section 3.4).
3.3. SDEs and Software Development Communities
Social networks build online communities of people loosely connected by their common interests or activities. Community is a vital aspect of software development, but software developers tend to focus their attention primarily on their programming environment tools. Software development projects usually include communities of users. Community members play vital roles that reflect the success of such projects, such as reporting bugs, helping other users, and analyzing problems. These observations lead to a new category of tools, the Social Development Environment (SDE).
Software development requires interaction between people involved in the development process. For this reason, social activities form a big part of their daily work. In software development, developer networks are an instance of object-centered sociality [10], where developers do not usually interact merely to socialize, as in conventional social networks. In contrast, they interact and collaborate primarily through shared project artifacts.
Communication is an important factor for software projects to succeed. There are many factors that make communication and collaboration among developers a difficult task. These factors involve: geographical, cultural, time-zone, or language barriers. As teams become more and more geographically distributed, collaboration becomes more critical and difficult to achieve. Team members usually use different tools to communicate and that may lead to difficulties to collaborate and finish their tasks.
There are hundreds of communication applications that are used by software development communities and these can be combined to support distributed development teams [10, 11]. SDEs integrate the development environment and the social network in a single environment, and support the interaction between the social networking features and the communication and collaboration tools. SDEs add value because they touch on the social and presence elements of software development. An SDE aims to help users maximize their productivity, and to help distributed team members maintain a level of social awareness regarding other team members’ roles, activity patterns and contributions to the project, as well as the resources of the project. In general, the purpose of the SDE is to provide a frictionless
environment for software development by eliminating the need to switch between different tools in order to perform their various solitary and collaborative tasks [9].
To summarize, SDEs add value to the development community by integrating features that help establish and support interaction among distributed developers, strengthen social communication and bonds, build trust, and have the ability to network. SDEs are a category of CDEs where the system provides a fully featured social network for distributed developer communities. In an SDE, developers can browse profiles, create development projects, and form professional teams. In addition, SDEs provide views for listing people and groups, project data, activities, etc. all from inside the environment. By using these views, users will be able to request help and assist others in their projects, and form strong social bonds among the community members. In general, an SDE is an environment that allows distributed developers to work hand in hand and also have the ability to network. It is a combination of social networking and collaborative software development [9].
3.4. SDE Systems
In this section we briefly examine a number of development environments, both commercial and research oriented, that have been the focus of attention in the CSCW and distributed development communities.
MydeveloperWorks: A professional network and unified set of community tools for connecting, sharing, and collaborating. It is introduced by IBM to facilitates a new way for software developers and students who are distributed all over the world to communicate, interact and connect with their fellow developers and to help them in developing skills, solving problems, collaborating with their peer and staying aware of the latest advances and trends in technology. It allows communicating and interacting with others using feeds, tags, bookmarks, blogs, groups, discussion forums, wikis, and other resources, all from their own profile [14].
Jazz the most widely- publicized social development environment that aims to foster collaboration within the group by adding a set of collaboration tools and features to the Eclipse IDE to support coordination, communication, and awareness among team members. [15-20].
SourceForge.net1: is an open-source SDE that focuses on development of open source software. It connected with Ohloh, a social network for open source software communities that collects data about software and developers from the source code. It allows developers create their own profiles, provides them with useful information about the software projects, and makes it easier for developers to find experts and request help [12, 21, 22]. SourceForge aims to unify disconnected teams and tools, and help foster collaboration while improving project efficiency and teams’ productivity [23].
GitHub2 is a web-based hosting environment for software projects that allows developers collaborate in their project artefacts. They share code, watch others activities, and search for others with common interests and expertise [24]. GitHub insludes social networking features such as: followers, feeds and blogs, and shows developers’ activities on the repository versions [22, 25, 26, 27, 28].
CollabVS [24] is an SDE based on Microsoft Visual Studio that allows developers to work together whether planned or ad-hoc. [22, 29, 30].
1
SF: http://sourceforge.net/
2
Zembly [31] is an online web-based development environment. It allows developers to edit, test, debug, and document their shared code and from within the browser. It is more than just an on-line editor, it is a development in a social context aimed at social tools, where users can do social programming, and develop applications with other people using social networkingtype features. Developers are able to invite team members and project partners for collaboration. Zembly supports the developers with different channels to communicate and be aware of others changes to their projects’ artifacts [32, 33].
SCI [9, 22, 34] is an SDE that supports developers’ collaboration, and interaction. It allows them to be aware of the actions of others in real time, aware of artifacts changes, avoiding coding errors, and potentially improves the collaboration during the software development process. It is an environment that combines: communication, collaboration, awareness, and social networking and online presence features from inside a single environment.
Codebook is a social networking systems that helps people to be “friends” not only with other people, but also with the work artifacts they share with them [35]. It helps software engineers to maintain communication, collaboration and connections with friends, and enables awareness, especially at a distance. Also, It helps to keep track of task dependencies, discover and maintain connections to other teams, and understand the history and rationale behind the code that they work on and use [36].
StackOverflow 3 is a community site where developers and programmers can ask and answer each others’ questions. Users can establish profiles and re-tag questions or voting to close a question.
The SDE tools presented previously in this section are categorized in Table 1.
4. A 5-Star Model
This section discusses SDEs focus, interests, and visions about such environments. It introduces a model named 5-Star, which describes the structure and components of the SDE tools. This model is designed to allow researchers, CSCW and groupware experts, and software engineers to evaluate, rate, and compare their collaborative tools.
The model reflects the categories and services nature of the SDEs environments. The services provided to developers are rated from one to five where each category represents a star. The name (5-Star) reflects our believe that SDEs are the environments where developers are looking for comfort, and it resembles their five stars hotel. Each edge of the star shows a
3
Stack Overflow: www.stackoverflow.com
category of the tools and features supported by the environment, and presents the developers’ expectations of such environment. These categories are: 1) Communication; 2) Coordination; 3) Collaboration; 4) Awareness & Presence; and 5) Social networking (SN) tools (See Figure 4).
The above categories combine a list of requirements for collaborative and group-supported environments suggested by some pioneers in this field, such as Booch and Brown [12], Fournier [37], Broday [38], and others. Also, it includes a list of awareness and presence types which researches believe that it is needed for a successful collaboration. Greenberg et al., [39] suggests that people work in teams and collaborate with their groups maintain the six types of awareness listed Table 1.
In this model, each category is given a particular rate relative to their importance to the development community, and their role in the environment. The final 5-star value of each tool is the sum of all weights times their category rates (see Equation 1). In this article, the category rates (α, β, δ, γ, σ) are assigned an equal value (0.2). The reason for this is because we believe that, in such a tool, all the categories complement each others, and they are with
Table 1. Categories and Features of Existing SDE systems. [×: Not Supported, ~: Supported & Not Integrated, √: Supported & Integrated]
the same value (significance) to the environment. This is relatively, and others might find that some categories are of more importance than the others, and assign them different category rates. Also, this depends on: 1) the targeted community; 2) the ways those tools are used and their purpose; and 3) what software development phases they support.
The universal model can be written as
(1)
For example a simple rating equation for a specific tool is as follows, where each category is multiplied with its associated weight (w1... w5).
(2)
Example:
Assume the tools A and B have the weights (4, 4, 6, 6, 3) and (3, 4, 2, 4, 4) respectively. By implementing the universal model the satr_value (A) =0.92 and star_value (B) =0.68, which means that A is a better collaborative tool than B.
From the above, someone could argue that awareness, social network tools, communication, and collaboration are interleaved, can’t be separated, and share common characteristics. Also, we can conclude the following facts:
The 3Cs (communication (α), coordination (β), and collaboration (δ)) foster awareness.
(3)
The awareness (γ), social network tools (σ), and communication (α) features support interactions between developers, enable better collaboration (δ∗) among them, and improve their productivity.
(4)
From the above we can conclude that any SDE can be represented using the following vector.
SDE = (3C, γ, σ) (5)
Where 3C is a term represents Communication, Coordination, and Collaboration.
5. Applying the Model
In this section, we selected the seven different tools discussed in Section 3.4. These tools are introduced in Table 1, and they represent the most popular and commonly used SDEs. These systems are both desktop (e.g., Jazz, DeveloperWorks, CollabVS, and SCI) and web-based applications (e.g., Zembly, CodeBook, and StackOverflow), and they are rated according to the suggested categories and their service support to the development community.
From Table 1, we conclude that a successful SDE (5-star environment)is the environment where:
(i) The IDE is fully integrated within the environment.
(ii) Major communication tools such as 1) Audio chat; 2) Email; and 3) Instant Messaging (IM) are supported and integrated.
(iii) Source code version and information management tools are integrated.
(iv) Social media and SN tools such as 1) Wikis; 2) Forums; and 3) Blogs are integrated. They help supporting the awareness of others, their activities, and encourage and supports the social side of their interactions.
(v) Users find it easy to collaborate in their coding problems using synchronous editors, compilers, and debuggers.
(vi) Integration within a virtual environment supports the online and social presence.
6. Discussion and Summary
The SDE’s discussed in this section illustrate just the beginnings of this genre of software tools. The cited and existing projects implement a subset of social networking. Few development environments aims to support the full social network features, but do not fully integrate social networking features within their IDE. The tools and literature in this article comes relate to the CSCW and CDE fields.
Distributed developers always feel the fact to interact, and require environments to ease, encourage, and support their collaboration. Conventional development environments inherent some limitations and are not able to provide the distributed development community of successful collaborative environment. On the other hand, SDEs support have the potential to raise the level of awareness, presence, social interaction, and communication between such developers [22].
There is great promise in exploring tool support for the social side of software development. Collaboration plays a crucial role in software development. For this reason, continuing to improve the collaborative development environments is of great potential benefit. Collaborative tools can be used alongside a non-collaborative IDE, but integration adds qualitative and quantitative awareness information and reduces the cost of collaboration during the development process, particularly for distributed teams, and reduces the friction that results from switching among different tools [9].
In addition to supporting distributed communities’ work effectively, we believe SDEs will add better benefit to the development communities, help them increase their productivity, and produce better software products.
There exist survey publications of existing tools in this area [48-50]. But, to our knowledge, the proposed evaluation model is the first and only proposal to evaluate, and compare the social development tools based on their fetures support to the development community. There are no existing related research the way introduced in this article. The model can be tailored and improved to fit all the tools that fall under that CSCW and groupware umbrella.
A future improvement direction will focus on updating the features and tools listed under the model five main categories, and use different category rates to each category depending on their importance to the compared tools.
References
[1] M.-A. Storey, C. Treude, A. van Deursen, and L.-T. Cheng, “The impact of social media on software
engineering practices and tools”, Proceedings of the Workshop on Future of Software Engineering Research,
Santa Fe, NM, USA, (2010) pp. 359-364.
[2] N. Ahmadi, M. Jazayeri, F. Lelli and S. Nesic, “A survey of social software engineering”, ASE
Workshops’08: 23rd IEEE/ACM Intl. Conf. on Automated Software Engineering, Washington, DC, (2008),
pp. 1-12.
[3] P. H. Carstensen and K. Schmidt, “Computer supported cooperative work: new challenges to systems
design”, (1999).
[4] K. Petersen, R. Feldt, S. Mujtaba and M. Mattsson, “Systematic mapping studies in software engineering”,
Proceedings of the 12th International Conference on Evaluation and Assessment in Software Engineering
(EASE), Bari, Italy, (2008).
[5] H. Fuks, A. B. Raposo, M. A. Gerosa and C. J. P. Lucena, “Applying the 3C Model to Groupware
Development”, International Journal of Cooperative Information Systems (IJCIS), World Scientific, ISSN
0218-8430, vol. 14, no. 2-3, (2005) June-September, pp. 299-328.
[6] C. Treude, “The Role of Social Media Artifacts in Collaborative Software Development”, PhD Dissertation,
University of Victoria, (2012).
[7] T. Coates, “An Addendum to a Definition of Social Software”, http://www. plasticbag.org/
archives/2005/01/an_addendum_to_a_definition_of_social_software, Accessed May 14, 2013, (2005)
January 5.
[8] M. G. Farkas, “Social Software in Libraries: building collaboration, communication and community online”,
Information Today, New Jersey, (2007).
[9] H. Bani-Salameh, C. Jeffery and I. Idoush, “Introducing Social Development Environments”, The 2nd
International Conference on Information and Communication Systems (ICICS 2011), Amman, Jordan,
(2011).
[10] P. Bouillon, J. Krinke and S. Lukosch, “Software Engineering Projects in Distant Teaching”, 18th
Conference on Software Engineering Education & Training (CSEET´05), (2005), pp. 147-154.
[11] H. Bani-Salameh, C. Jeffery, Z. Al-Sharif and I. Doush, “Integrating Collaborative Program Development
and Debugging within a Virtual Environment”, Proceedings of the 14th Collaboration Researchers’
International Workshop on Groupware (CRIWG 2008), Omaha, Nebraska, USA, (2008), pp. 107-120.
[12] G. Booch and A. Brown, “Collaborative Development Environments”, Advances in Computers, Academic
Press, vol. 59, (2003) August, pp. 2-29.
[13] F. Lanubile, “Collaboration in Distributed Software Development”, A. De Lucia and F. Ferrucci (Eds.):
Software Engi-neering, LNCS 5413, Springer-Verlag Berlin Heidelberg, (2009), pp. 174-193.
[14] R. Raman, “IBM’s Social Network for Software Developers”, Available at
http://mytechbox.wordpress.com/2009/04/30/ibm%E2%80% 99s-social-network-for-software-developers.
Accessed May 14, 2013, (2009).
[15] D. Rubinstein, “SPTechBlog”, The SharePoint Technology Blog, Bridging the SharePointIBM Divide,
Available at http://www.sptechblog.com/2009/05/ bridging-sharepoint-lotus-divide.html. Accessed May 14,
2013, (2009) May 26.
[16] L.-T. Cheng, “Jazz: a Collaborative Application Development Environment”, Demonstration at the 18th
annual ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications,
Anaheim, CA, USA, (2003), pp. 102-103.
[17] R. Frost, “Jazz and the Eclipse Way of Collaboration”, IEEE Software, doi:10.1109/MS.2007.170, vol. 24,
no. 6, (2007) November-December, pp. 114-117.
[18] L.-T. Cheng, S. Hupfer, S. Ross, J. Patterson, B. Clark and C. de Souza, “Jazzing up Eclipse with
Collaborative Tools”, Proceedings of the 2003 OOPSLA Workshop on Eclipse Technology eXchange,
Anaheim, California [doi¿10.1145/965660.965670], (2003) October 27-27, pp. 45-49.
[19] S. Hupfer, L. T. Cheng, S. Ross and J. Patterson, “Introducing Collaboration into an Application
Development Environment”, CSCW’04, Nov. 2004, Chicago, Illinois, ACM, vol. 6, no. 3, (2004), pp. 21-24.
[20] D. Cubranic and M.-A. Storey, “Collaboration Support for Novice Team Programming”, Proceedings of
ACM GROUP’05, (2005) November, pp. 136-139.
[21] R. Paul and R. SourceForge, “Wants to be Collaboration Powerhouse”, Buys Ohloh, Available at
http://arstechnica.com/open-source/news/2009/05/
sourceforge-acquires-foss-code-metric-web-site-ohloh.ars. Accessed May 14, 2013, (2009) May 29.
[22] H. Bani-Salameh, “A Social Collaborative Distributed Software Development Environment”, PhD
Dissertation, University of Idaho, Department of Computer Science, (2011) August 16.
[23] CollabNet, Optimize and Manage Distributed Development, Available at http://www.open.collab.
[24] Collaborative Development Environment using Visual Studio, Available at http://research.
microsoft.com/en-us/projects/collabvs/default.aspx. Accessed (2013) May 14.
[25] T. Fankhauser, “GitHub Social Coding”, Available at http://www.slideshare.
net/thomasfankhauser/github-social-coding-15572782. Accessed May 14, 2013, (2012) December 10.
[26] B. Forrest, “GitHub: Making Code More Social”, Available at http://radar.
oreilly.com.cn/blog/2009/brady/github-making-code-more-social. Accessed May 14, 2013, (2009) January
29.
[27] J. Catone, “GitHub: A Social Network for Programmers”, Available at http://
www.readwriteweb.com/archives/github_a_social_network_for_programmers.php. Accessed May 14, 2013,
(2008) April 11.
[28] L. Dabbish, S. Stuart, J. Tsay and J. Herbsleb, “Social coding in GitHub: Transparency and Collaboration in
an Open Software Repository”, CSCW 2012, pp. 1277-1286.
[29] L. Hattori and M. Lanza, “An Environment for Synchronous Software Development”, Proceedings of the
31st International Conference on Software Engineering (ICSE 2009), Vancouver, Canada, (2009) May
16-24.
[30] R. Hegde and P. Dewan, “Connecting Programming Environments to Support Ad-Hoc Collaboration”, ASE
(2008), pp. 178-187.
[31] G. Anderson, P. Anderson, T. Fast and C. Webster, “Assemble the Social Web with zembly”, Prentice Hall
PTR (1st Ed.), Available at http://www.asgteach.com/books/zemblyintro.pdf. Accessed May 14, 2013,
(2008) December.
[32] J. Heiss, “Zembly: An Extensible Development Environment in the Cloud, for the Cloud”, Available at
http://192.9.162.55/javaone/2009/articles/gen_zembly.jsp. Accessed (2013) May 14.
[33] T. Pellegrini, “Zembly: Niche applications help solve very specific problems”, Available at
http://www.semantic-web.at/news/ zembly-oniche-applications-help-solve-very-specific-problems-o.
Accessed December 24, 2012, (2008) August 04.
[34] H. Bani-Salameh, C. Jeffery and J. Al-Gharaibeh, “A Social Collaborative Virtual Environment for Software
Development”, Collaborative Technologies and Systems (CTS), International Conference, (2010).
[35] A. Begel and R. DeLine, “Codebook: Social networking over code”, ICSE Companion ’09: 31st Intl.
Conference on Software Engineering - Companion Volume, Washington, DC, (2009), pp. 263-266.
[36] A. Begel, K. Y. Phang and T. Zimmermann, “Codebook: Discovering and Exploiting Relationships in
Software Repositories”, Proceedings of the ACM/IEEE 32nd International Conference on Software
Engineering, Association for Computing Machinery, Inc., (2010) May 2.
[37] R. Fournier, “Teamwork is the key to remote development”, Available at http://
www.computerworld.com.au/article/32833/teamwork_key_remote_development/. Accessed May 14, 2013,
(2001) March 06.
[38] A. F. Broady, “Informal collaboration tools for global software development teams- Tools that can help
bridge geographical and cultural gaps”, Available at
http://www.ibm.com/developerworks/rational/library/09/informalcollaborationtoolsforglobalsoftwaredevelop
mentteams/. Accessed May 14, 2013, (2009) December 17.
[39] C. Gutwin and S. Greenberg, “Workspace Awareness for Groupware”, Proceedings of the Conference on
Human Factors in Computing Systems, Vancouver, Canada, ACM Press, New York, NY, (1996) April
13-18, pp. 208-209.
[40] C. A. Ellis, S. J. Gibbs and G. L. Rein, “Groupware: Some Issues and Experiences”, CACM, Reprinted in
Baecker, R.,M. Readings in Groupware and Computer-supported Cooperative Work: Facilitating
Human-Human Collaboration, Morgan Kaufmann, 1993, vol. 34, no. 1, (1991), pp. 38-58.
[41] R. M. Baecker, D. Nastos, I. R. Posner and K. L. Mawby, “The User-centred Iterative Design of
Collaborative Writing Software”, Proceedings of InterCHI’93, ACM, (1993), pp. 399-405.
[42] H. C. Liccardi, D. S. White and H. S. O. Southampton, “CAWS: Visualizing Awareness to Improve the
Effectiveness of Co-authoring Activities”, Special Issue of Collaborative Computing in IEEE Distributed
Systems Online, (2008).
[43] T. Gross, C. Stary and A. Totter, “User-Centered Awareness in Computer-Supported Cooperative
Work-Systems: Structured Embedding of Findings from Social Sciences”, International Journal of
Human-Computer Interaction, vol. 18, no. 3, (2005), pp. 323-360.
[44] C. Gutwin, “Workspace Awareness in Real-Time Distributed Groupware”, PhD Thesis, Department of
Computer Science, University of Calgary, (1997).
[45] K. Schmidt, “The problem with ‘Awareness’: Introductory Remarks on ‘Awareness in CSCW”, Computer
Supported Cooperative Work, an International Journal, vol. 11, no. 3-4, (2002), pp. 285-298.
[46] C. Gutwin and S. Greenberg, “A Descriptive Framework of Workspace Awareness for Real-Time
[47] D. Nutter and C. Boldyreff, “Historical awareness support and its evaluation in collaborative software engineering”, The 12th IEEE International Workshop on Enabling Technologies, IEEE CS, Washington,
(2003), pp. 171176.
[48] F. Lanubile, C. Ebert, C. Prikladnicki and A. Vizcano, “Collaboration tools for global software engineering”,
IEEE Software, vol. 27, no. 2, (2010), pp. 52-55.
[49] J. Portillo-Rodriguez, A. Vizcaino, C. Ebert and M. Piattini, “Tools to support global software development
processes: A survey”, International Conference on Global Software Engineering, IEEE, (2010).
[50] J. Portillo-Rodraguez, A. Vizcaano, M. Piattini and S. Beecham, “Tools used in global software engineering:
A systematic mapping review”, Information and Software Technology, Elsevier, (2012), pp. 663-685.
Authors
Hani Bani-Salameh is an Assistant Professor in the Software Engineering Department at The Hashemite University, Jordan. He holds a B.Sc. in Computer Science, a M.Sc. in Computer Science from New Mexico State University (NMSU), and a Ph.D. in Computer Science from the University of Idaho (UI). His research interests include software engineering, computer supported cooperative work (CSCW), software development environments, collaborative software development in virtual environments, and social networking and social media. He studies social interactions in social networks and online environments.
Sana’a Alwidian is a full time lecturer at The Hashemite University, Jordan. She received her B.Sc. degree in Computer Information Systems from Jordan University of Science and Technology, in 2007 and her M.Sc. degree in Computer Science from Jordan University of Science and Technology, in 2009. Her research interests include Computer Networks, Natural Language Processing, Distributed Systems, Software Engineering and Information Security.
Maen Hammad is an Assistant Professor in Software Engineering Department at The Hashemite University, Jordan. He completed his Ph.D. in computer science at Kent State University, USA in May 2010. He received his Master in computer science from Al-Yarmouk University, Jordan and his B.S. in computer science from The Hashemite University/Jordan. His research interest is Software Engineering with focus on software evolution and maintenance, program comprehension and mining software repositories.
Fadi Wedyan is an Assistant Professor in Software Engineering Department at The Hashemite University, Jordan. He completed his Ph.D. in computer science at Colorado State University (2011). He received his Master in computer science from Colorado State University (2008), and his B.S. in computer science from the Yarmouk University/Jordan. His research interest is software testing, aspect-oriented testing and development, and static analysis.