You are on page 1of 6

Incorporating Social Software into Distributed Agile Development

Environments

Fabio Abbattista, Fabio Calefato, Domenico Gendarmi, Filippo Lanubile


Università degli Studi di Bari, Dipartimento di Informatica
{fabio, calefato, gendarmi, lanubile}@di.uniba.it

Abstract software development. However, distributed


development seems opposed to agile as it goes against
The use of social software applications, such as wikis the notion of physical proximity, being developers
and blogs, has emerged as a practical and economical geographically dispersed by definition, while one of
option to consider as global teams may use them to the fundamental tenets of agile is that the most
organize, track, publish their work, and then, share efficient and effective method of conveying
knowledge. We intend to push further the application information is face-to-face conversation, which must
of social software principles and technologies into be emphasized in a single open development space
collaborative development environments for agile and where the team can work closely together [5].
distributed projects. As a first step, in this paper we In fact, blending agility and distribution together is
first present a survey of social software, as well as not as easy as just relaxing the collocation constraint of
tools and environments for collaborative development. agile development. Previous research on distributed
Then, we present some opportunities and challenges of agile development has already acknowledged that
incorporating social software aspects in agile conventional agile methods need to be adjusted in
distributed development. globally distributed environments to address the
challenges coming up when agility is introduced in a
1. Introduction distributed setting. Recent studies in literature have
provided recommendations for achieving both agility
Distributed software teams are characterized by and distribution, focusing either on how to improve
geographical, temporal, and sociocultural distance, informal communication and agreement in agile
each having an impact on all the forms of cooperation distributed development scenario [19],[18], or on
within teams, that is, communication, collaboration strategies and practices to enhance both flexibility and
and coordination [1],[7]. While distance exacerbates rigor, thus finding the right balance between agile and
the importance of human-centered aspects related to distributed approaches [20],[26]. Recently, besides
collaboration in distributed development, even further classic groupware tools (e.g., email, shared calendars),
challenges arise when teams apply agile development other collaborative applications, known as social
methods. software (e.g., blog, wiki), have shown an appealing
Agile is an iterative and incremental approach to ability to overcome typical issues of remote group
software development, which is performed in a highly interaction, by making easier to communicate,
collaborative manner since its methods are based upon collaborate, and share knowledge. With this paper we
intense interactions among individuals and thus, they begin to investigate how incorporating social software
emphasize the need for frequent informal principles and technologies into collaborative
communication and collocated teams [2],[17]. In the development environments can also improve
last years, while many organizations have adopted the communication and knowledge sharing for distributed
agile methodology to tackle the challenges of teams applying agile methods.
requirements volatility and shorter time to market, The remainder of this paper is structured as follows.
many others have gone distributed to reduce costs by Section 2 presents the challenges of Distributed Agile
moving to offshore development, where much of the Development. Section 3 introduces fundamental
software is implemented in lower-paid countries [21]. principles and characteristic functionality of the most
Distributed Agile Development [25] aims at getting popular social software applications. Section 4
together the benefits of both agile and distributed presents an overview of software engineering tools for
flexible and distributed development. Finally, Section

978-1-4244-2776-5 © 2008 IEEE 46


5 ends up with a discussion on opportunities and shared artifacts. Thus, although agile development
challenges of integrating social software aspects in usually means less documentation, the price to pay for
agile and distributed development environments. applying agility and distribution together is to write
more documents to communicate enough.
2. Challenges of Distributed Agile
Development 3. Social software

The fundamental question on whether agile Social Software is a general term encompassing a
techniques can be used in a distributed setting is still set of tools and applications that enable group
open to debate. In fact, agile and distributed interaction and computer-mediated communication.
development practices are so different that, if applied Thus, because it has a focus on the creation of online
together, the key characteristics of the former would communities, but not only business-oriented as for
exacerbate the challenges intrinsic to the latter. For Groupware, Social Software includes everything from
instance, the need for regular communication, flexible classic email to 3D virtual worlds The same concept is
requirements, and informal agreement of agile sometimes expressed as Web 2.0 [24], as it captures
development contrasts with the large intrinsic distinctive features and key principles that can be
reduction of communication, as well as the need for reduced to:
stable requirements and controlled processes typical of - Participation, content is created and organized by
distributed software development. common users rather than organizations;
We have surveyed the proceedings of the most - Interaction, applications available from the Web
recent conferences for which the topic of distributed provide rich user interfaces as desktop applications;
agile development is relevant, namely, XP 2008, Agile - Community/collaboration, the more people use
2008, and ICGSE 2008. While none of XP 2008 such tools, the better they get, and social network
papers focused on distributed agile development, the effects emerge.
Agile 2008 proceedings included a number of However, considering Web 2.0 as a synonym with
experience reports from practitioners about the Social Software can be misleading because the former
challenges encountered, though with no or limited definition comprises only the latest form of Social
effort to generalize lessons learned. Software, excluding old Web 1.0 collaborative
More interestingly, the ICGSE 2008 proceedings applications, such as chat, forum, and mailing list,
included one case study and two experience report which are social in the sense that they do help building
from Industry (see [9], [25], and [30]), for which Table online communities as well. Nevertheless, these classic
1 provides a detailed comparison. It is worth noting social tools have long found their way in supporting
that all these three papers report SCRUM practices dispersed teams. Hence, here we intend to focus on
[28] rather than XP [4] as the agile methodology new generation Social Software, for which we report
followed. As Cristal et al. point out [9] while XP some key applications in the following.
mostly focuses on programming practices, like Test Blogs. They represent the simplest way for common
Driven Development, refactoring, and simple design, users to create a website where content is added in
SCRUM is focused on planning, thus helping teams form of posts displayed in a reverse chronological
especially during the transition from plan-driven order [24]. Compared to traditional personal websites,
methodology. the novelty stands in the opportunity for readers to
In addition, like in distributed software studies, most of interactively leave comments that interconnect
the challenges and lessons learned concern different blogs to each other, generating a particular
communication issues due to the reduced opportunity community or social network of bloggers, called
of direct communication between stakeholders. blogosphere. Among the very many existing uses,
However Fowler raises an interesting point when multi-author blogs can be adopted within a software
describing his experience with distributed agile team for fostering communication among developers
development at ThoughtWorks [12]. Since distance and customers, as a process document, and as a
impairs direct communication, then, to cope with such stepwise history of project evolution.
reduction, teams applying Distributed Agile
Development must supplement it through indirect
communication, that is, through the exchange of

47
Table 1. A comparison of papers on Distributed Agile Development from ICGSE 2008 proceedings.
Study Projects Agile
Challenges Lessons learned
description measurements Methodology
- Videoconference
Distributed issues, both technical
Paasivaara et

- 1 project
Industrial SCRUM w/ (low bandwidth) and
al. [25]

- 2 sites (Norway, Multiple communication mode


case study SCRUM of conversational
Malaysia) are needed
(interviews) SCRUMS (slowness and silence)
- 1,5 year
meetings - Rqmts often
misunderstood
- Dedicated videoconferencing
Sureshandra

equipment
et al. [30]

Industrial - 90 projects
Distributed - Photo-chart of team members at
experience - ? sites (India, …) N.A.
SCRUM each site
report - 3 years
- Transition to distributed agile
should be stepwise
- Communication
Cristal et al. [9]

Distributed issues - Document and share SCRUM


- 2 projects
Industrial SCRUM w/ - Inappropriate team meetings minutes
- 2/3 sites (US,
experience SCRUM of organization and task - Less documentation does not
S.America, Asia)
report SCRUMS assignment mean less valuable docs
- 1+ year
meetings - Lack of rqmts - Adopt global taskboards
documentation

Wikis. They can be regarded as a simple web-based such as MySpace. The creation and maintenance of a
collaborative authoring system. Unlike blogs, a wiki personal publicly accessible profile plays a crucial role
may not distinguish among reader and writer, and let as it serves as a testimonial of digital self-presentation,
anyone create and edit content in form of wiki pages. not only for your existing friends, but also for making
Main wiki features include versioning and document new ones. This is an important incentive for users to
history, which let users track changes applied to keep their profiles up to date and enlarge their
documents. As shown in [22], a wiki can be networks.
successfully used in the software development process, Other Social Software. There are other numerous
because it results as an excellent mean to collect applications that can be regarded as social software.
asynchronous contributions from a group of distributed Mashup services, for example, combine data and
people in a centralized repository of textual artifacts. services from different sites into a single access point,
Collaborative tagging and folksonomies. The providing new functionality. By opening up data and
activity of labeling resources of interest is called quickly combining different information in new
tagging, as it consists of attaching one or more tags interesting ways, mashups can effectively exploit the
(i.e., free keywords) to the resource. While large amount of user-generated content available
individually using a tagging system, everyone can see through social software applications.
who else is participating by observing others’ tagging
behaviors. This tight feedback loop makes these 4. Tool support for collaborative software
systems social and the result is a collection of development
annotations, also called a folksonomy [15]. Nowadays,
different kind of systems have introduced folksonomy- Tools provide a considerable help to software
based approaches for information organization, engineering activities. In the case of global software
however social bookmarking systems like del.icio.us engineering, adequate tool support is paramount to
were the pioneers and made tags so popular, letting enable distributed teamwork. Other classifications of
users store, organize (through tags), and share software engineering tools exist in literature. For
bookmarks to digital artifacts. instance, Whitehead [32] has recently proposed to
Social networking. Social networking sites support classify tools into four broad categories: 1) model
users in the shaping of a digital identity through the based – tools that allow the collaborative authoring of
creation of profiles and networks of contacts [8]. software diagrams; 2) process support – tools
Popular examples include both professional networks, developed to enable collaboration during the
like Facebook or Linkedin, and unprofessional ones,

48
development process; 3) awareness – tools that inform more general collaboration activities which lack the
about yours and others’ ongoing tasks; 4) collaborative focus on using the models to create shared meanings.
infrastructure – tools developed to ease the integration Knowledge center. This function is mostly
of various collaborative tools and their data. Here, document-driven and web-enabled, and allows team
instead, we use a simpler categorization, grouping members to share explicit knowledge across a work
tools by their main function. Consequently, the most unit. A knowledge center includes technical references,
prominent software engineering tools available to standards, frequently asked questions (FAQs) and best
assist distributed projects may fall into the following practices.
categories: Communication tools. Software engineers have
Software Configuration management. A software adopted a wide range of synchronous and
configuration management (SCM) tool includes the asynchronous communication technologies for project
ability to manage change in a controlled manner, by use in addition or replacement of communicating face-
checking components in and out of a repository, and to-face by speech. Email is the most-widely used and
the evolution of software products, by storing multiple successful collaborative application. Thanks to its
versions of components, and producing specified flexibility and ease of use, email can support
versions on command. SCM tools also provide a good conversations, but also operate as a task/contact
way for programmers to share software, making sure manager. However, one of the drawbacks of email is
that interdependent files are changed together and that, due to its success, people tend to use email for a
controlling who is allowed to. Further SCM tools make variety of purposes and often in a quasi-synchronous
it possible to save messages about what changed and manner. In addition, email is ‘socially blind’ [11],
why. Open-source SCM tools, such as SVN and its because it does not enable users to signal their
predecessor CVS, have become indispensable tools for availability. Recently, chat and IM have been
coordinating the interaction of distributed developers. spreading more and more in the workplace because,
Bug and issue tracking. This function is centered on unlike email, they are ‘socially translucent’, providing
a database, accessible by all team members through a a lightweight means to ascertain availability of remote
web-based interface. Other than an identifier and a team members and contact them in a timely manner.
description, a recorded bug includes information about Collaborative development environments (CDE).
who found it, the steps to reproduce it, who has been Sarma describes a pyramidal classification framework
assigned on it, which releases the bug exists in and it to classify collaboration tools according to the amount
has been fixed in. Trackers are a generalization of bug of automated support provided and effort required to
tracking systems to include the management of other use them [27]. On top of the framework are
issues, such as feature requests, support requests, or Collaborative Development Environments (CDEs),
patches. envisioned by Booch and Brown, who first
Build and release management. It allows projects to acknowledged the need for ‘frictionless surface’ in
create and schedule, typically through a web interface, development environments [6]. They were motivated
workflows that execute build scripts, compile binaries, by the observation that much of the developers’ effort
invoke test frameworks, deploy to production systems, is wasted in switching back and forth between different
and send email notifications to developers. The larger applications to communicate and work together.
the project, the greater the need for automating the According to this vision, collaborative features
build and release functions. Build tools, such as should be available as components that extend core
CruiseControl and its ancestor, the UNIX make utility, applications (e.g., the IDE), thus increasing the users’
are essential tools to perform continuous integration, comfort and productivity. Therefore, a CDE provides a
an agile development practice that allows developers to project workspace with a standardized toolset to be
integrate daily, thus reducing integration problems. used by the global software team. Earliest CDE were
Product and process modeling. This function developed within open source software (OSS) projects
encompasses the core features of Computer Aided because OSS projects, from the beginning, have been
Software Engineering (CASE) tools, from composed of dispersed individuals. Today a number of
requirements management to visual modeling of both CDEs are also available as commercial products or
software artifacts and processes. Collaboration in research prototypes to enable distributed software
software development tends to be around the creation development.
of formal or semiformal software artifacts. According SourceForge, from CollabNet, is the most popular
to [32], model-based collaboration is what CDE with over 170.000 hosted projects and over
distinguishes software engineering collaboration from 1.800.000 registered users. Its original mission was to
enrich the open source community by providing a

49
centralized place for developers to control and manage publishing applications has become quite common,
OSS projects development. SourceForge offers a especially for OSS software projects. Blogs, in the case
variety of free services: web interface for project of distributed agile development, represent a valuable
administration, trackers, mailing lists and discussion means to increase the amount of informal
forums, download notification of new releases, shell communication exchanged between team members.
functions and compile farm, and CVS- and SVN-based Facilitate knowledge sharing. Any common
configuration management. The commercial versions information that needs to be tracked and organized by
for corporate use add features for tracking, measuring teams, such as story cards, design guidelines, and build
and reporting on software project activities. GForge is instructions, can be put on a Wiki. Wikis work well to
a fork of SourceForge ver. 2.61. It has been hold and share knowledge because they are simple to
downloaded and configured as in-house server by use, can be worked with any browser, and are simple
many industrial and academic organizations. Like to set up. Wikis are by nature unstructured and this
SourceForge, it also offers a commercial version, lack of structure is part of the benefit since teams can
called GForge Advanced Server. Finally, other two usually evolve their own structure [12],[22].
large indexes of free open source software are TagSEA [27] is a research effort that has explored
Freshmeat [13] and Google Code [16]. the usefulness of letting developers annotate pieces of
Trac [31] provides an integrated wiki, an issue source code with free tags. In agile distributed settings
tracking system and a front-end interface to SCM the maintenance of the whole process and product
tools, usually SVN. Project overview and progress repositories can benefit from the existence of tags used
tracking is allowed by setting a roadmap of milestones, to annotate also artifacts other than pieces of source
which include a set of so-called “tickets” (i.e., tasks, code, bringing in personal and collective rewards.
feature requests, bug reports and support issues), and Build team trust and culture. The necessity to
by viewing the timeline of changes. Trac also allows reduce project costs often makes unfeasible to organize
team members to be notified about project events and frequent visits by distributed partners, in order to build
ticket changes through email messages and RSS feeds. team trust and culture. Traditional global software
MASE is a CDE developed at University of Calgary development already involves dynamic and evolving
[23]. MASE puts a great emphasis on knowledge communication-based social networks, often mined for
sharing as it integrates both informal and formal investigating collaboration and awareness patterns
knowledge representations into a wiki-based [10]. Agile distributed teams could also exploit social
experience repository. network profiles as a mechanism to develop digital
Jazz is an extensible platform, which leverages the identities, establish connections, and thus, build trust
Eclipse’s notion of plug-ins to build CDE products and common culture among people working on same
[14]. The present version has a wide-ranging scope, projects.
but in the former version of Jazz the goal was to Nevertheless, although the use of social software
integrate synchronous communication and reciprocal can be beneficial for agile distributed software
awareness of coding tasks into the Eclipse IDE, development, new challenges raise from the
following Booch and Brown’s vision [6]. observation that successful examples of social software
adoption rely on both large and non-compulsory users
5. Discussion participation. Whether agile and distributed
development environments could meet the same
Agile and distributed development practices are so condition is a research question that needs further
different that, when blended together, the key investigation.
characteristics of the former exacerbate the challenges Fun factor. Making the use of social software
intrinsic to the latter. Although previous studies mandatory for agile teams may take away from
already suggested balancing practices for tackling developers the fun of using such tools, a factor that
these new dichotomous challenges [26], social usually fosters their adoption in general purpose
software is now emerging as a practical and scenarios [3].
economical option to consider for applying the Critical mass. Social software has proven useful
following practices: only after building a large base of thousands users or
Improve communication. Blogs and Wikis are more. Instead, in the context of distributed software
particularly valuable in distributed projects as global development, the overall number of developers
teams may use them to publish their work [22]. scattered over the remote sites is notable lower.
Recently, the use of these collaborative web- Collaboration as side effect. The social side of
popular social software applications usually does not

50
represent the main incentive to individual participation [19] Layman, L., Williams, L., Damian D., and Bures, H.,
but it is rather an emerging side effect. People "Essential communication practices for Extreme
contribute mostly for a private motivation, although Programming in a global software development team",
the global scale of the Web, at the end, brings Information and Software Tech, 48, 9, pp. 781-794, 2006.
[20] Lee, G., DeLone, W., and Espinosa, J. A.,
additional collective benefits. Does the same principle “Ambidextrous coping strategies in globally distributed
hold for different contexts, such as agile distributed software development projects”, CACM, 49, 10, pp. 35-40,
software teams? 2006.
[21] Lings, B., Lundell, B., Agerfalk, P.J. and Fitzgerald, B.
References (2007) A reference model for successful Distributed
Development of Software Systems, Int’l Conf. on Global
[1] Ågerfalk, P.J., and Fitzgerald, B., “Flexible and Software Engineering (ICGSE’07), Munich, Germany
Distributed Software Processes: Old Petunias in New August 27-30, 2007.
Bowls?”, CACM, 49, 10, pp. 27-34, 2006. [22] Louridas, P., “Using Wikis in Software Development”,
[2] Ambler, S., Agile Modeling: Effective Practices for IEEE Software, 23, 2, pp. 88-91, 2006.
Extreme Programming and Unified Process. John Wiley & [23] Maurer, F., “Supporting Distributed Extreme
Sons, 2002. Programming”, XP Agile Universe, Extreme Programming
[3] Avram, G., “At the crossroads of knowledge and Agile Methods, LNCS Vol. 2418, pp. 13-23, 2002.
management and social software”, Electronic Journal of [24] Murugesan, S., “Understanding Web 2.0”, IT
Knowledge Management, 4, 1, pp. 1-10, 2006. Professional, 9, 4, pp. 34-41, 2007.
[4] Beck, K., Extreme Programming Explained: Embrace [25] Paasivaara, M., Durasiewicz, S., and Lassenius, C.,
Change. Addison-Wesley, 2005. “Distributed Agile Development: Using Scrum in a Large
[5] Beedle M., et al. “Manifesto for Agile Software Project”, ICGSE, Bangalore, India, 17-20 Aug. 2008.
Development”, 2001, http://agilemanifesto.org/ [26] Ramesh, B., Cao, L., Mohan, K., and Xu, P., “Can
[6] Booch, G. and Brown, A.W., “Collaborative distributed software development be agile?”, CACM, 49, 10,
Development Environments”, Advances in Computers, 59, pp. 41-46, 2006.
2003. [27] Sarma, A., “A survey of collaborative tools in software
[7] Carmel E., Global Software Teams: Collaborating development. Institute for software research”, Donald Bren
Across Borders and Time Zones, Prentice Hall PTR, San School of Information and Computer Science, University of
Francisco, CA, 1999. California, Irvine, 2005.
[8] Churchill, E.F. and Halverson, C.A. “Guest Editors' [28] Schwaber, K., Agile Project Management with Scrum.
Introduction: Social Networks and Social Networking”, Microsoft Press, 2004.
IEEE Internet Computing, 9, 5, pp.14-19, 2005. [29] Storey, M.-A., Cheng, L.-T., Bull, I. and Rigby, P.
[9] Cristal, M., Wildt, D., and Prikladnicki, R., “Usage of “Shared Waypoints and Social Tagging to Support
SCRUM Practices within a Global Company”, ICGSE, Collaboration in Software Development”, CSCW, 2006.
Bangalore, India, 17-20 Aug. 2008. [30] Sureshandra, K., and Shrinivasavadhani, J., “Adopting
[10] Damian, D., Izquierdo, L., Singer, J., and Kwan, I., Agile in Distributed Development”, ICGSE, Bangalore,
"Awareness in the Wild: Why Communication Breakdowns India, 17-20 Aug. 2008.
Occur", ICGSE, Munich, Germany, Aug./Sept, 2007. [31] Trac Project, http://trac.edgewall.org/
[11] Erickson, T., and Kellogg, W.A., “Social Translucence: [32] Whitehead, J., “Collaboration in Software Engineering:
An Approach to Designing Systems that Support Social A Roadmap”, FOSE, Minneapolis, US, 23-25 May, 2007.
Processes”, ACM Transactions on Computer-Human
Interaction, 7, 1, pp. 59-83, 2000.
[12] Fowler, M., “Using an Agile Software Process with
Offshore Development”, 2008,
http://www.martinfowler.com/articles/agileOffshore.html
[13] Freshmeat, http://freshmeat.net/
[14] Frost, R., “Jazz and the Eclipse Way of Collaboration”,
IEEE Software, 24, 6, pp. 114-117, 2007.
[15] Golder, S., and Huberman, B., “Usage patterns of
collaborative tagging systems”, Journal of Information
Science, 32, 2, 2006.
[16] Google Code, http://code.google.com
[17] Highsmith, J., and Cockburn, A., “Agile Software
Development: The Business of Innovation”, Computer, 34, 9,
pp. 120-122, 2001.
[18] Korkala, M., and Abrahamsson, P., “Communication in
Distributed Agile Development: A Case Study”,
EUROMICRO SEAA Conference, 2007.

51

You might also like