Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
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
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.
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
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.
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
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!