6
Interoperability Interoperability Software Patterns Test-Driven Development Reliability Test-Driven Development Software Patterns Software Patterns Engineering Engineering Requirements Design Design Software Patterns Software Patterns Coding Software Patterns Development Development Development Development Development Development Industry Standards Industry Standards Industry Standards Industry Standards Programming Interoperability Software Patterns Test-Driven Development Test-Driven Development Test-Driven Development Software Patterns Requirements Design Software Patterns Holistics Development Industry Standards Industry Standards Interoperability Software Patterns Open Source Test-Driven Development Test-Driven Development Requirements Design Education Development Industry Standards Interoperability Software Patterns Test-Driven Development Test-Driven Development Test-Driven Development Software Patterns Traininig Coding Software Patterns Software Patterns Software Patterns Software Patterns Development Development Development Industry Standards Agile Building the Community of Leading Software Practitioners Practitioner Tools Industry Standards Industry Standards Development Development Industry Standards Industry Standards Industry Standards Requirements Requirements Assessment Assessment Requirements Requirements Requirements Requirements Requirements Requirements Requirements Requirements Requirements Open Source Requirements Open Source Open Source Requirements Requirements Requirements Requirements Requirements Requirements Requirements www.computer.org/software Data Usability Technologies to Support Collaboration across Time Zones Rafael Prikladnicki, Sabrina Marczak, Erran Carmel, and Christof Ebert from the special issue on Software Engineering for Compliance Vol. 29, No. 3 May/June 2012 Disbanding the “Process Police” // 3 Managing Privacy-Enhancing Technologies // 45 WWW.COMPUTER.ORG/SOFTWARE MAY/JUNE 2012 Software IEEE

Building the Community of Leading Software Practitioners ... · Bugzilla, Jira, and Trac Build systems Sync, Scat, and Async Automate software release and deployment. Deliver fully

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Building the Community of Leading Software Practitioners ... · Bugzilla, Jira, and Trac Build systems Sync, Scat, and Async Automate software release and deployment. Deliver fully

Interoperability

InteroperabilitySoftware Patterns

Test-Driven DevelopmentReliabilityTest-Driven Development

Software Patterns

Software PatternsSoftware Patterns

Software Patterns

Software Patterns

Engineering

EngineeringEngineeringEngineeringEngineeringEngineeringEngineering

Engineering

Engineering

RequirementsDesign

Design

RequirementsSoftware PatternsSoftware Patterns

CodingSoftware Patterns

Software PatternsSoftware Patterns

Software Patterns

Development

DevelopmentDevelopmentDevelopment

DevelopmentDevelopmentDevelopmentDevelopmentDevelopmentDevelopmentArchitecture

Industry StandardsIndustry StandardsIndustry StandardsIndustry Standards

Agile

Programming

InteroperabilitySoftware Patterns

Test-Driven DevelopmentTest-Driven DevelopmentTest-Driven DevelopmentSoftware Patterns

Software Patterns

Software Patterns

Software PatternsEngineeringEngineeringEngineeringEngineeringEngineeringEngineering

Engineering

RequirementsDesign

RequirementsSoftware PatternsSoftware Patterns

HolisticsSoftware Patterns

Software PatternsSoftware PatternsDevelopment

DevelopmentDevelopmentDevelopment

DevelopmentDevelopmentDevelopmentDevelopmentArchitecture

Industry StandardsIndustry Standards

Industry StandardsAgile

InteroperabilitySoftware Patterns

Open SourceTest-Driven DevelopmentTest-Driven DevelopmentSoftware Patterns

Software PatternsSoftware PatternsEngineeringEngineeringEngineeringEngineeringEngineeringEngineering

RequirementsDesign

EducationSoftware Patterns

Software PatternsSoftware PatternsDevelopment

DevelopmentDevelopmentDevelopment

DevelopmentArchitecture

Industry StandardsAgile

InteroperabilitySoftware Patterns

Test-Driven Development

Test-Driven DevelopmentTest-Driven DevelopmentSoftware PatternsSoftware Patterns

Software Patterns

Software PatternsEngineeringEngineeringEngineeringEngineeringEngineeringEngineering

Engineering

TraininigCoding

RequirementsSoftware PatternsSoftware PatternsSoftware PatternsSoftware Patterns

Software PatternsSoftware PatternsDevelopment

DevelopmentDevelopment

Development

DevelopmentDevelopmentDevelopmentDevelopmentArchitecture

Industry Standards

Industry StandardsIndustry Standards

Agile

Building the Community of Leading Software Practitioners

Practitioner Tools

Industry StandardsIndustry StandardsDevelopmentDevelopment

Industry StandardsIndustry StandardsIndustry StandardsIndustry Standards

Requirements

Requirements

RequirementsRequirements

Requirements

Assessment

Assessment

AssessmentAssessment

Requirements

Requirements

RequirementsRequirementsRequirementsRequirements

Requirements RequirementsRequirements

Open Source

Requirements

Open Source

Open Source

RequirementsRequirementsRequirements

RequirementsRequirements

RequirementsRequirements

www.computer.org/software

Data

Usability

Technologies to Support Collaboration across Time ZonesRafael Prikladnicki, Sabrina Marczak, Erran Carmel, and Christof Ebert

from the special issue on Software Engineering for Compliance

Vol. 29, No. 3May/June 2012

Disbanding the “Process Police” // 3

Managing Privacy-Enhancing Technologies // 45

WWW.COMPUTER.ORG/SOFTWAREMAY/JUNE 2012

SoftwareIEEE

Page 2: Building the Community of Leading Software Practitioners ... · Bugzilla, Jira, and Trac Build systems Sync, Scat, and Async Automate software release and deployment. Deliver fully

10 IEEE SOFTWARE | PUBLISHED BY THE IEEE COMPUTER SOCIET Y 074 0 -74 5 9 /12 / $ 31. 0 0 © 2 012 I E E E

Technologies to Support Collaboration across Time ZonesRafael Prikladnicki, Sabrina Marczak, Erran Carmel, and Christof Ebert

Time zone differences are a challenge to global software engineering. This column surveys the key technologies and tools that support collaboration across time zones. The insights on technologies derive from a meta-analysis of the 2010 and 2011 IEEE International Conference on Global Software Engineering (ICGSE), among others. I look forward to hearing from both readers and prospective authors about this column and the technologies and tools you want to know more about. —Christof Ebert

COLLABORATION ACROSS TIME zones depends on technology for com-municating, coordinating, and stay-ing aware of what’s going on with the project. But even the fanciest video-conferencing or 3G holography can’t

overcome the fundamental time-zone problem—that it’s sleep time on the other side of the world. Consequently, no miracle technology will overcome

time-zone differences. However, better understanding and use of the available technologies will help mitigate the chal-lenges that time-zone separation incurs.

This column presents technolo-gies that support collaboration among

globally distributed software teams. It also goes beyond the dichotomy of synchronous versus asynchronous by classifying technology use in a new

work mode: scattertime. Scattertime emerged with the Internet and mobility, where knowledge workers spread their labor into scattered chunks of time, broken up by home and personal time.1 For instance, a developer on a far-� ung team might not share any overlapping hours with her colleagues, so she time-shifts her work schedule to call in to weekly group meetings late at night from home. Her � exibility lets her syn-chronously meet with the team. From this new perspective, collaboration can take place anywhere and at any time.

Supporting Time-Zone Collaboration Papers from the 2010 and 2011 IEEE International Conferences on Global Software Engineering (ICGSE) iden-ti� ed technologies that can support

Editor: Christof EbertVector Consulting [email protected]

SOFTWARE TECHNOLOGY

Better understanding and use of the available technologies will help mitigate the challenges.

Page 3: Building the Community of Leading Software Practitioners ... · Bugzilla, Jira, and Trac Build systems Sync, Scat, and Async Automate software release and deployment. Deliver fully

MAY/JUNE 2012 | IEEE SOFTWARE 11

SOFTWARE TECHNOLOGYTA

BLE

1 Technologies and their uses.

Technology Collaboration typeTypical use in software engineering community

Emerging use by distributed software development teams Tools

Software engineering and project management tools

Project management tools

Synchronous (Sync), scattertime (Scat), and asynchronous (Async)

Share and assign task assignments and status, progress, schedule, calendar and members’ agendas

Management of the project is pushed into the hands of the entire team

ActiveCollab, Basecamp, Microsoft Project, and WorldView

Software version control systems

Sync, Scat, and Async

Concurrent work on the same source code in a controlled way; allows members to revert code version after a discussion

Distributed version control systems that clone the entire project repository on the developer’s machine (instead of portions, as in traditional centralized systems)

Bazaar, CVS, git, and SVN

Issue- and defect-tracking systems

Sync, Scat, and Async

Maintaining the list of issues, defects, changes, requests, and problems

Assigning people and dates for resolution of logged issues and defects

Bugzilla, Jira, and Trac

Build systems Sync, Scat, and Async

Automate software release and deployment.

Deliver fully tested code as quickly as possible and in small iterations.

Apache Ant and CMake

Continuous integration systems

Sync, Scat, and Async

Daily integration of code in single-source repository

Hourly integration to keep everyone in sync

CruiseControl, Hudson, Rational Team Concert, and Team Foundation Server

Web 2.0 tools

Virtual whiteboards

Scat Conduct creativity-based activities

Serve as task boards for distributed agile teams aiding project management

Dabbleboard, Scriblink, Scribblar, and Skrbl

Microblog Sync, Scat, and Async

Task status, announcement of project events, and problem resolution

Integrated into software development environments for intra- and interproject knowledge acquisition and learning

In-house tools and Twitter

Blog Scat and Async Post news and collaborate; share experiences

Share concepts and record team decisions; shared work diaries

Blogger and Wordpress

Wiki Scat and Async Concentrate quick contribution of colleagues; knowledge sharing

Allows numerous stakeholders to get involved in requirements engineering process

Confluence and Mediawiki

General-purpose tools

Telepresence Sync Formal meetings in large firms Simulate continuous colocation in real time

Cisco Telepresence Magic

Screen sharing Sync and Scat For meetings and discussions that involve documentation, graphical representations, and demonstrations

Distributed agile teams: paired programming and code reviews

Mikogo and Skype Screen Sharing

Videoconference Sync and Scat For group discussions, presentations, and document reviews

Team kick-off puts a face to each person; always-on video simulates proximity

Cisco WebEx, iVisit, Megameeting, and PalTalk

Voice over IP and voice conference

Sync and Scat Save money on landline and mobile calls

Time shifting to allow synchronous voice communication

Google phone feature, over the phone, and Skype

Instant messaging

Sync and Scat For informal situations such as availability notification, quick expert queries, brainstorming, and sharing unfinished ideas.

For convenient individual voice and video conversations

Cisco Unified Presence, IBM Lotus, Jabber XCP, Microsoft Live Messenger, and Sametime

Email Sync, Scat, and Async

Everything at any time Email integrated with awareness tools (for example, to view people available to chat and find the best available time to schedule meetings across time zones)

Gmail, Microsoft Exchange, and Thunderbird

Page 4: Building the Community of Leading Software Practitioners ... · Bugzilla, Jira, and Trac Build systems Sync, Scat, and Async Automate software release and deployment. Deliver fully

12 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE

SOFTWARE TECHNOLOGY

collaboration across time zones (see the ICGSE sidebar). In Global Software and IT: A Guide to Distributed De-velopment, Projects, and Outsourcing, Christof Ebert provided a basic frame-work for such collaboration technolo-gies.2 For this article, we also examined data on Web 2.0 tools in the literature by reviewing studies published at the Workshop on Web 2.0 for Software En-gineering (Web2SE) in conjunction with the International Conference on Soft-ware Engineering (ICSE; see https://sites.google.com/site/web2se2011 and https://sites.google.com/site/web2se), and interviewed globally distributed team members of large multinational IT companies.3 Most of the technolo-gies we identi� ed are familiar, so we’ll focus on their usage among global soft-ware engineers and opportunities for deeper use.

Table 1 presents the landscape of technologies along with their current and emerging usage and some examples of tools.

Reported Technology AdoptionDespite the advances of Web 2.0 tech-nologies, reports list email and instant messaging as the most effective and adopted communication tools.2,3 Dis-tributed team members � nd it useful to adopt project-wide mailing lists to share important issues with the entire

team. Another bene� t of using mailing lists is that team members can easily retrieve information from their mail-boxes. Instant messaging is a good re-source when you need a quick reply to something and you know your col-league is available. Projects use audio conferencing for weekly team meet-ings to coordinate work (for example, to report progress, discuss challenges, present new ideas, and share aware-ness). Videoconferencing is less useful because it demands some tuning and availability can be reduced in areas with limited bandwidth.

Surprisingly, the use of Web 2.0 technology still isn’t that widespread among global software engineering teams. Wikis play some role for collab-orative requirements elicitation among distributed stakeholders but often result in a growing, incomprehensive heap of information. Modeling tools still lack features to support coordination and synchronization of artifacts among sev-eral distributed team members working together in the same modeling-task-related activity.

A variety of tools support col-laboration among distrib-uted team members. How-

ever, some organizations still claim that these tools don’t deliver suf� cient

value. The reasons often stem from a lack of tools strategy in the companies, where tools just organically evolve. Thus, the tools don’t support teams and don’t address the three major con-cerns of distributed teams—namely, performance, integrity, and security. Previous generations of collaboration tools were focused on asynchronous communication, traditional client-server applications, and proprietary systems. The current generation of col-laboration tools have integrated voice, video, and visual communication, along with a combination of Web-based and traditional client-server ar-chitecture that allow synchronous and asynchronous communication to sup-port scattertime.

Mere application life-cycle manage-ment and product life-cycle manage-ment certainly aren’t the answer, but they will help in � nding an overall in-formation architecture. The federa-tion of engineering tools will continue to grow. Eclipse will help initially, but ensuring performance, integrity, and information security across multiple tools, teams, and companies requires a sustainable collaboration strategy. Figure 1 provides an example for com-bining requirements engineering, proj-ect management, programming, and communication tools together in a single environment, letting developers collaborate by using integrated plan-ning, source control, work items, build, dashboards, reports, and process sup-port. Rational Team Concert (RTC) is an example of a collaborative applica-tion life-cycle management where soft-ware development teams can manage all aspects of their work, such as plans, tasks, source control, build manage-ment, and reports. RTC provides a sin-gle, integrated environment for several aspects of the software development process, where users can share team information, post detailed informa-tion, and con� gure which information is visible.

IEEE INTERNATIONAL CONFERENCE ON GLOBAL SOFTWARE ENGINEERING

The annual IEEE International Conference on Global Software Engineering (ICGSE) brings together industry and research from around the world, providing the leading forum for addressing topics such as how to make distributed teams more effective and effi cient and how to cope with challenges along different methods, tools, dis-tance, time zones, and culture. The most recent 2011 conference had participants from 24 countries, with 30 percent of the papers from industry.

ICGSE 2012 will take place in Porto Alegre, Brazil, from 27-30 August. Join the conference and learn how to overcome challenges in distributed software projects.

For more information, visit www.icgse.org.

Page 5: Building the Community of Leading Software Practitioners ... · Bugzilla, Jira, and Trac Build systems Sync, Scat, and Async Automate software release and deployment. Deliver fully

MAY/JUNE 2012 | IEEE SOFTWARE 13

SOFTWARE TECHNOLOGY

When integration isn’t possible, us-ing a set of tools might be the alterna-tive. For example, the combined use of a whiteboard with a video camera can support a collaborative software design session by live streaming what’s being drawn on the board and using a shared document (such as Google Docs) to collaboratively take notes during the meeting. Web 2.0 technologies have facilitated such synchronous collabo-ration. In addition, mobile and cloud tools enable scattertime work—people can work when commuting, watching TV, from home, and so on.

No current tool supports all the ac-tivities necessary for global software engineering. Users must therefore pri-oritize their collaboration needs and the tools to support them. Introducing collaboration technology should be a stepwise process, starting with a col-laboration platform to share applica-tions. A consistent life-cycle manage-ment strategy that connects processes, tools, and information-sharing needs is indispensable when working in ex-ternal networks with participants from different organizations.

References 1. E. Carmel and A. Espinosa, I’m Working

While They’re Sleeping: Time Zone Separa-tion Challenges and Solutions, Nedder Stream Press, 2011.

2. C. Ebert, Global Software and IT: A Guide to Distributed Development, Projects, and Outsourcing, Wiley–IEEE CS Press, 2011.

3. E. Carmel and A. Prikladnicki, “Does Time Zone Proximity Matter for Brazil? A Study of the Brazilian IT Industry,” Social Science Research Network, Aug. 2010; http://ssrn.com/abstract=1647305.

4. F. Lanubile et. al. “Collaboration Tools for Global Software Engineering,” IEEE Soft-ware, vol. 27, no. 2, 2010, pp. 52–55.

RAFAEL PRIKLADNICKI is an associate professor in the Computer Science School and director of the Technology Management Agency (AGT) at Pontifícia Universidade do Rio Grande do Sul (PUCRS) in Porto Alegre, Brazil. Contact him at [email protected] or visit his website at www.inf.pucrs.br/~rafael.

SABRINA MARCZAK an is associate professor in the Computer Science School at Pontifícia Univer-

sidade Católica do Rio Grande do Sul (PUCRS) in Porto Alegre, Brazil. Contact her [email protected].

ERRAN CARMEL is a professor in the Information Technology Department, Kogod School of Business at the American University in Washington, DC, where he is also an international business research professor. Contact him at [email protected].

CHRISTOF EBERT is managing director at Vector Consulting Services. He is a senior member of IEEE

and the editor of this department for IEEE Software magazine. Contact him at [email protected].

Selected CS articles and columns are also available for free at http://ComputingNow.computer.org.

FIGURE 1. Rational Team Concert as an integrated environment for collaboration across

time zones.4

NEXT ISSUE:

Mobile Software Developent

Page 6: Building the Community of Leading Software Practitioners ... · Bugzilla, Jira, and Trac Build systems Sync, Scat, and Async Automate software release and deployment. Deliver fully

M A R C H | A P R I L 2 0 1 0

Agility and Architecture

www.compute r. o rg / so f twa re

90 | Creative Requirements Conversations

52 | Global Collaboration Tools

56 | Architecture as Language

Two Special ICGSE 2012 offers!

A professional peer-reviewed magazine featuring• Broad coverage of technologies, processes,

and management issues• Practical advice• Experiences with the latest innovations• Clear take-away messages

Recent and upcoming themes include• The Software Business• Cloud Computing• Multicore Programming for the Desktop• Software Protection• Algorithms for Today’s Practitioner• Software Engineering for Climate Change

Check out our special offers— now available in print and digital!

Check out an entire free issue:

www.qmags.com/ISW/free-icgse12

To subscribe to 6 issues of the digital edition:

www.qmags.com/ISW/ICGSE12

US$19.95

/yearFREE

SAMPLE!