Building the Community of Leading Software Practitioners
Total Page:16
File Type:pdf, Size:1020Kb
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, Trac 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