Building the Community of Leading Software Practitioners

Design Agile Practitioner Tools InteroperabilityProgramming Software Patterns RequirementsDevelopmentIndustryEngineering Requirements RequirementsStandards EngineeringIndustryRequirementsDevelopmentDevelopmentSoftware StandardsIndustry PatternsRequirements StandardsRequirements SoftwareDevelopmentIEEEIndustry Patterns StandardsRequirementsRequirements Open SourceDevelopmentSoftwareDevelopmentIndustryDevelopmentIndustryRequirements PatternsStandardsSoftwareIndustry StandardsEngineering StandardsRequirementsPatterns RequirementsSoftwareDevelopmentSoftwareArchitectureEngineering Patterns Patterns Data SoftwareIndustryEngineering PatternsEngineering StandardsReliability CodingSoftwareDevelopmentSoftwareDevelopmentDevelopmentRequirements Patterns SoftwarePatternsEngineering Patterns Test-DrivenSoftwareDevelopmentArchitectureEngineering Patterns DevelopmentRequirements HolisticsDevelopmentSoftwareTest-DrivenSoftwareSoftwareSoftwareSoftwareDevelopmentEngineering EngineeringPatterns EngineeringInteroperability PatternsEngineering PatternsPatterns Development SoftwareSoftwareTest-DrivenDevelopmentDevelopmentSoftwareIndustryArchitectureEngineering PatternsEngineering PatternsEngineering StandardsPatterns Development EducationSoftwareTest-DrivenDevelopmentDevelopmentSoftwareDevelopmentDevelopmentRequirements Patterns SoftwareEngineeringPatterns EngineeringDevelopment PatternsOpen Source Test-DrivenDevelopmentTest-DrivenSoftwareSoftwareSoftwareIndustryDevelopmentEngineering EngineeringInteroperability DevelopmentPatterns PatternsStandards PatternsDevelopmentAssessment SoftwareDevelopmentSoftwareSoftwareSoftwareAgileSoftwareDevelopment PatternsArchitectureEngineering EngineeringInteroperability Patterns Patterns Patterns Requirements Test-DrivenDesignTest-DrivenDevelopmentSoftwareSoftwareSoftwareSoftwareDevelopmentDevelopmentEngineering PatternsDevelopmentEngineering Patterns PatternsPatterns Development OpenTest-Driven SourceSoftwareAgileDevelopmentEngineering PatternsDevelopmentRequirements DevelopmentDesignSoftwareSoftwareIndustryEngineeringInteroperability Patterns PatternsRequirements Standards IndustryAgileSoftwareDevelopment Standards Patterns RequirementsRequirements DesignRequirementsIndustryIndustryDevelopment Standards StandardsAssessmentRequirements Requirements IndustryRequirementsRequirementsRequirementsRequirements Standards Test-DrivenIndustrySoftware Development Standards PatternsRequirements Usability IndustryDevelopment StandardsAssessmentAssessmentTraininig CodingSoftwareOpen Source Development Requirements

MAY/JUNE 2012 WWW.COMPUTER.ORG/SOFTWARE marcH/aprIL 2013 www.computer.org/software GroupTechnologies Awareness to Support in GlobalCollaboration Software across Engineering Time Zones

FilippoRafael Prikladnicki,Lanubile, Fabio Sabrina Calefato, Marczak, and Christof Ebert Erran Carmel, and Christof Ebert from the special issue on the TwinSoftware Peaks Engineering of Requirements for Compliance and Architecture from minecraft to minds // 11

LandingDisbanding a spacecraft the “Process on mars Police” // 83 // 3 DesignManaging patterns: Privacy-Enhancing magic or myth? // 87 Vol. 30,29, No. 23 Technologies // 45 March/AprilMay/June 2012 2013

www.computer.org/software Editor: Christof Ebert Software Vector Consulting Services Technology [email protected]

Group Awareness in Global Software Engineering

Filippo Lanubile, Fabio Calefato, and Christof Ebert

Insufficient team collaboration often challenges global software engineering projects. Group awareness can improve teams’ trust, relationships, and efficiency. In this column, Filippo Lanubile, Fabio Calefato, and I survey the key technologies and tools that support group awareness and collaboration. The insights on technologies derive from discussions and presentations at related conferences, including the IEEE-sponsored International Conference on Global Software Engineering (ICGSE). I look forward to hearing from both readers and prospective column authors about this column and the technologies you want to know more about. —Christof Ebert

Bob and Alice are working in down their team’s agile style. What’s munication and trust.1 Awareness is a distributed team that is develop- going on? Both have a different work- necessary to coordinate group activi- ing a mobile app. Whereas Bob likes ing style and neither adjusts to the ties and ensure that individual con- to frequently check his code changes other. They’re unaware of each other’s tributions are relevant to the whole and thus ensure growing functional- strengths, behaviors, and communica- group. Paul Dourish and Victoria Bel- ity, Alice tries to see the bigger pic- tion needs. Worse, they’re unaware of lotti described group awareness as ture of usability and wants to first the growing tensions, thus endanger- “an understanding of the activities of implement a consistent handling of all ing the project, although both are in- others, which provides a context for functions. In working with Bob, she’s dividually trying to make it a success. your own activity.”2 There are four frustrated that he seemingly doesn’t Group awareness has received con- types of group awareness:3 care about the overall performance— siderable attention lately in distrib- Bob doesn’t reply to comments she uted projects and global software en- • informal awareness, also called inserts. Bob, on the other hand, sees gineering (GSE). From our research presence awareness, provides infor- no progress on her side and perceives with GSE, we found that more than mation about who is around and the flood of comments without con- half of all distributed projects fail, their availability through IM and crete change proposals as slowing most often owing to insufficient com- VoIP tools;

18 IEEE Software | published by the IEEE computer society 0740-7459/13/$31.00 © 2013 IEEE Software Technology

• group-structural awareness pro- vides knowledge about team mem- SocialTFS bers’ roles and teams’ internal structures; Application Life-cycle Management (ALM) platforms either lack social awareness • workspace awareness provides in- support altogether or, in the case of Jazz and GitHub, provide support that isn’t as formation about team members’ adequate as that for the other forms of group awareness. To fill this gap, Microsoft interactions with shared artifacts Research Software Engineering has recently funded the development of a commu- within a workspace; and nity add-on for Visual Studio called SocialTFS (Team Foundation Server), under the • social awareness refers to the in- Microsoft Innovation Foundation Award. SocialTFS aggregates teammates’ content formation that team members from popular social networks, such as Facebook, LinkedIn, and Twitter, into the maintain about others in a con- developer’s workspace. It doesn’t require any explicit following action because fol- versational context and the under- lowings are automatically added and removed, depending on what work items and standing that they have about social artifacts are under change.1 connections within a group. Reference 1. F. Calefato and F. Lanubile, “Augmenting Social Awareness in a Collaborative Development Environ- Obviously, no technology can mi- ment,” 5th Int’l Workshop Cooperative and Human Aspects of Software Eng. (CHASE 12), IEEE, 2012, raculously overcome culture challenges pp. 12–14. and poor management. However, a bet- ter awareness of what’s going on in the group and better use of available tech- nologies can help managers and their and a front-end interface to a Subver- Assembla teams mitigate challenges with distrib- sion source code management system, Assembla is a Web-based ALM plat- uted projects. with plug-ins providing other features. form that hosts both open source and Through email messages and RSS commercial software. Assembla im- Group Awareness Support feeds, group-awareness features sup- proves on other Web-based environ- in Application Life-Cycle port workspace awareness by provid- ments in a few notable aspects. First, Management Platforms ing notifications of project events and with respect to group-structural Application Life-cycle Management changes. Regarding group-structural awareness, Assembla supports teams (ALM) is a continuous process of man- awareness, in line with its minimalis- adopting agile development processes aging an application’s life cycle through tic approach philosophy, only al- for running Scrum meetings. In addi- platforms that provide a project work- lows project administrators to manage tion, it provides a more sophisticated space with an integrated tool set en- developers’ privileges to view, create, team-management feature, which lets compassing all software development modify, and delete artifacts. To our project managers define teams and activities including requirements man- knowledge, no plug-ins are currently roles. Second, as for workspace aware- agement, design, coding, testing, track- available for adding either informal or ness, notifications of changes within ing, and release management.1 social awareness to the environment. a workspace are available via Twitter, Table 1 summarizes how the most (For more on social awareness support, in addition to email and RSS feeds. popular ALM platforms support the see the “SocialTFS” sidebar.) Third, Assembla supports synchronous four types of group awareness. All the communication via instant messag- listed platforms are native Web appli- Google Code ing over the Extensible Messaging and cations (except IBM Jazz and Micro- Google Code offers a project-hosting Presence Protocol (XMPP)/Jabber pro- soft Team Foundation Server, although service similar to Trac. However, un- tocol. However, Assembla doesn’t sup- these also come with rich desktop inte- like Trac, Google Code is a hosted port social awareness. grated development environments). service and as such can’t be extended through plug-ins. It supports both Jazz Trac workspace awareness, by email and IBM Rational developed Jazz as an Trac is an ALM platform that takes a RSS notifications, and group-structural extensible platform that’s part of a minimalistic approach to project life- awareness, by managing permissions to development suite of tools called Col- cycle management. It combines an in- edit artifacts. Google Code doesn’t sup- laborative ALM. Jazz has two clients: tegrated wiki, an issue tracking system, port social or informal awareness. one is a Web application for project

March/April 2013 | IEEE Software 19 Software Technology

Group awareness in Application Life-cycle Management platforms.

Informal Group-structural Workspace Social awareness awareness awareness awareness

able 1 able Trac Yes Yes (email, RSS)

T URL: http://trac.edgewall.org License: BSD (open source) Service: owned Client: Web Pluggable: server-side

Google Code Yes Yes (email, RSS) URL: http://code.google.com License: free to use Service: hosted Client: Web Pluggable: no

Assembla Yes (XMPP) Yes Yes (email, RSS, URL: www.assembla.com Twitter) License: commercial Service: hosted Client: Web Pluggable: no

Jazz Yes (XMPP, Yes Yes (email, RSS) Partial URL: http://jazz.net/projects/rational-team-concert Skype) (IBM Connections) License: commercial (free ≤ 10 members) Service: owned Client: Web, Rational Team Concert Pluggable: client-side, server-side

TFS Yes (SIP/SIM- Yes Yes (email, RSS) URL: http://microsoft.com/visualstudio/alm PLE, Skype) License: commercial (free ≤ 5 members) Service: owned Client: Web, Visual Studio Pluggable: client-side

CodePlex Yes Yes (email, RSS) URL: www..com License: free to use Service: hosted Client: Web, Visual Studio Pluggable: no

GitHub Yes Yes (email, RSS) Partial URL: http://gituhub.com (@mentions) License: free to use Service: hosted Client: Web Pluggable: no

management tasks and the other is port, Jazz provides workspace aware- awareness among the reviewed envi- a full-featured desktop application ness through email notification and an ronments. It also supports informal called Rational Team Concert (RTC) RSS reader natively built in RTC. In awareness by integrating with Lotus that’s built on the Eclipse Rich Client addition, Jazz provides the most com- Sametime, Google Talk, and Skype Platform (RCP) and oriented to devel- plete process- and team-management instant-messaging networks. Finally, opers. As for group-awareness sup- features to support group-structural Jazz provides partial support of so-

20 IEEE Software | www.computer.org/software Software Technology

cial awareness, thanks to its integra- GitHub and interpersonal connections with tion with the IBM Connections suite, GitHub is a platform built on as distant colleagues. because it creates a project commu- the source code management system nity to which all project members are for both open source and commercial Lack of Group Awareness: added as soon as they join the project. software projects. Like the other Web- A Typical GSE Scenario However, there’s a risk of information based ALM platforms, GitHub of- Consider the following typical GSE sce- overload because the team members’ fers lightweight group-structural and nario in which global software team activity streams can’t be limited to the workspace awareness. GitHub, which members face challenges due to a lack awareness network—that is, the set of describes itself as a “social network of social awareness: Bob is a member colleagues whose actions one moni- tors and to whom one’s actions are displayed.4 This awareness network is highly dynamic because the set of col- leagues continually changes over time More than half of all distributed depending on task assignments or projects fail, most often owing to software development phases. insufficient communication and trust. Team Foundation Server Team Foundation Server (TFS) is Mi- crosoft’s ALM platform. Its character- istics and features are similar to those for programmers,” aims to foster de- of a team developing a mobile app for of IBM Jazz; in fact, they both come velopers’ collaboration by letting them a home-automation project. He’s also with a lightweight Web client for man- fork projects and monitor development taking the responsibility of develop- agement tasks and a rich client desktop through a Twitter-like approach, giv- ing the app component that handles for more development-oriented tasks. ing them the chance to follow (watch) the home-security system settings. The This desktop is called Team Explorer projects. Finally, GitHub partially sup- distributed team is using an ALM plat- and is an extension of the Visual Studio ports social awareness by allowing de- form to coordinate project develop- integrated development environment. velopers to interact (via “@mentions”) ment. After reviewing the first incre- TFS provides support levels similar to with others. mental release of the app, the customer Jazz with respect to group-structural raised some concerns about the current and workspace awareness. It also sup- Social Awareness solution’s usability—for example, re- ports informal awareness, thanks to and Global Software Teams garding the user interface. Therefore, a couple of community-contributed Social awareness would be most help- Tim, the project manager, decides to plug-ins that enable connections to Mi- ful to global software teams if they involve Alice, one of the company’s us- crosoft Messenger, Lync, and Skype have collaborative development tools ability experts; he assigns to her all the networks. TFS lacks any support for that support sharing personal and work items related to usability issues, social awareness. contextual information to increase including those Bob is already han- the likelihood of successful interac- dling. Tim also requires that Alice ap- CodePlex tions in global projects. Typically, prove all the commits with changes ap- CodePlex is a customized public TFS team members connect through close plied to the user interface. installation that Microsoft provides interaction and face-to-face communi- to host open source projects. It’s cation; such activity is largely reduced Without social awareness support. similar to the other Web-based ALM on global teams owing to distance. With the milestone integration dead- platforms, supporting both work- Therefore, collaborative development line approaching, Bob performs an space and group-structural aware- tools could be realized as plug-ins of update of his local repository. He no- ness, but not social and informal extensible ALM platforms, such as tices that Alice has committed some awareness. Compared to other Web- TFS and Jazz, to provide global teams change sets to resolve the work items based platforms, CodePlex’s only pe- with “socially augmented” environ- previously assigned to him. Looking culiar feature is its ability to connect ments that simultaneously facilitate at the comments in the change sets, to Visual Studio. both development-related activities he notices that she frequently pointed

March/April 2013 | IEEE Software 21 Software Technology

repository, he notices that Alice has committed some change sets to resolve the work items previously assigned to him. Looking at the comments in the change sets, he notices that she has frequently pointed out that previous versions made an inconsistent use of slider widgets and drop-down boxes. Therefore, when Bob looks at some of the user-interface views that Alice modified, he realizes that she is right and that her reputation as a usability expert is well deserved. Therefore, he decides also to apply the same solution to the new view before committing. Figure 1. TFS and Visual Studio augmented with a social awareness plug-in. Alice then reviews and approves the change set committed by Bob.

changed and commit. With this be- havior, Alice and Bob now face the evelopers in distributed teams same tensions as were prevalent a de- need to maintain both a gen- cade ago, when agile techniques were D eral awareness of their en- used ad hoc without awareness of tire teams and a more detailed knowl- other team members’ reasoning. edge of the people that they work with. Here are few hints for better group With social awareness support. The awareness: social awareness plug-in installed in the ALM platform regularly updates • Informal awareness. Check regu- developers’ awareness networks to in- larly on who is around and com- corporate the posts from the people municate directly. Use instant mes- who are involved in the same work saging and VoIP tools for instant items (for example, those who have question resolution; don’t rely on reported or commented on the same submitting comments via a change issue). So, Alice’s posts begin to ap- tool or emails. pear in Bob’s workspace (see Figure • Group-structural awareness. En- 1). Other than Twitter, Alice has con- sure a clear understanding about nected her LinkedIn account to the team members’ roles and teams’ in- Figure 2. A user’s profile with connected plug-in, so Bob can also see from her ternal structures. Use responsibility services, education, and work-related profile that Alice is very well known matrixes to visualize team respon- experience. in the human-computer interaction sibilities and track commitments. community (see Figure 2). When Al- Avoid ad hoc assignments to sim- ice tweets that she’s happy to have a ply get work done faster—this frus- out that previous versions made an chance to work with the team on the trates those who follow the process. inconsistent use of slider widgets and new mobile platform; Bob decides to • Workspace awareness. Make clear drop-down boxes. Bob looks at some reply to her tweet with a “welcome who’s working on which shared of the user interface views that Alice aboard” message. As they commu- artifacts within a workspace. Use modified and sees no big difference nicate more, Bob learns from Alice’s Scrum-like processes to get vis- compared to the ones he created in posts that she has been busy fixing ibility on the current tasks and the first place. So, he decides to leave the user-interface views that Bob had interfaces. the new view he has been coding un- coded. When Bob updates his local • Social awareness. Stimulate social

22 IEEE Software | www.computer.org/software Software Technology

connections within the group—this isn’t solely the manager’s responsi- IEEE International Conference on bility. As a group member, you can Global Software Engineering do a lot to connect and collaborate on personal levels. Even if socializ- The annual IEEE International Conference on Global Software Engineering (ICGSE) ing only happens remotely, it can be brings together industry and research from around the world, providing the leading quite beneficial. forum for addressing topics such as how to make distributed teams more effective and efficient and how to cope with challenges created by such distributed teams, As Table 1 shows, ALM platforms such as different methods and tools. The 2012 conference had participants from still lack the necessary social aware- more than 20 countries with a third of the papers from industry. ness support. A socially augmented ICGSE 2013 will take place 26–29 August in Bari, Italy. Join the conference and ALM platform would counteract such learn how to overcome challenges in distributed software projects. For more infor- challenges by facilitating interpersonal mation, visit www.icgse.org. connections and strengthening ties be- tween distant colleagues—for instance, by securely sharing personal and con- textual information within the work- space. Such technology for software de- Filippo Lanubile is an associate professor of Christof Ebert is managing director at Vector velopment teams is still in its infancy. computer science at the University of Bari. He is the Consulting Services. He’s a senior member of IEEE General Chair of ICGSE 2013. Contact him at filippo. The current ad hoc use of social media and the editor of the Software Technology depart- [email protected]. ment of IEEE Software. Contact him at christof. in companies highlights that more con- [email protected]. crete guidance and empirical research Fabio Calefato is a postdoc at the University of are necessary to both drive effective use Bari where he received a PhD in computer science. and mitigate obvious risks related to se- Contact him at [email protected]. curity and inefficiency.

ARE JULY/AUGUST ARE 2012 WWW.COMPUTER.ORG/SOFTW 2012 .COMPUTER.ORG/SOFTWNOVEMBER/DECEMBER WWW WWW.COMPUTER.ORG/SOFTW ARE

2012 OBER JANUARY/FEBRUARY 2013 WWW.COMPUTER.ORG/SOFTWARE References SEPTEMBER/OCT 1. C. Ebert, Global Software and IT: A Guide to Distrib- uted Development, Projects

// 9 CherishingA mbiguity Plan // 70 and Outsourcing, Wiley, The 10-MinuteT est 2012.

11 y // behind are Discover SOA: Myth 2. P. Dourish and V. Bellotti, oftw 96 or Reality? S Boson // y // 46 The Higgs Social the Theor and the Community s Engineering? Intelligence are // Where’ 88 Softw “Awareness and Coordina- for tion in Shared Workspaces,” Proc. Int’l Conf. Com- puter Supported Cooperative Work (CSCW 92), ACM, Now Available 1992, pp. 107–114. 3. C. Gutwin, S. Greenberg, in Enhanced Digital Format and M. Roseman, “Work- space Awareness in Real- More value,Cyber Dumpstermore Diving // 9 content, more resources Time Distributed Group- The Airbus A380’s Cabin Software // 21 ware: Framework, Widgets, The new multi-faceted IEEE SoftwareProgramming offers with Ghosts // 74 Searchable Engaging and Evaluation,” Proc. HCI exclusive video and web extras that you can on People and Computers XI (HCI 96), Springer, 1996, access only through this enhanced digital Linked Mobile pp. 281–298. version. Dive deeper into the latest technical 4. C.R.B. de Souza and D.F. developments with a magazine that is: Redmiles “The Awareness Network: To Whom Should computer.org/software I Display My Actions? And, Whose Actions Should I Monitor?,” IEEE Trans. Software Eng, vol. 37, no. 3, 2011, pp. 325–340.

March/April 2013 | IEEE Software 23 marcH/aprIL 2013

www.computer.org/software

www.computer.org/software

may/June 2013 January/february 2013

www.computer.org/software

www.computer.org/software

November/December 2012

septemBer/octo Ber 2012

www.computer.org/software

the software behind from m the Higgs Boson Discovery // 11 inecraft to minds // 11 cyber Dumpster Diving // 9 storytelling for s where’s the software // 21 theory cabin oftware for software airbus a380’s professionals // 9 engineering? // the Landing a s cherishing96 a mbiguity // 9 hosts // 74 pacecraft on m ars // 83 test plan // 70 programming with g In Defense of Boring // the 10-minute Design 16 patterns: magic or m Two Specialyth? // 87 ICGSEBeyond Data m 2013 offers! ining // 92

A professional peer-reviewed Recent and upcoming themes include magazine featuring • Twin Peaks of Requirements and Engineering • Broad coverage of technologies, processes, • Safety Critical Software and management issues • Technical Debt • Practical advice • Lean Software Development • Experiences with the latest innovations • Bridging Software Communities through • Clear take-away messages Social Networking Check out our special offers— now available in print and digital!

Check out To subscribe to 6 issues FREE an entire free issue: of the digital edition: US$19.95 SAMPLE! www.qmags.com/ISW/ /year www.qmags.com/ISW/ free-icgse13 ICGSE13