Sviluppo Distribuito del Software Software development as an intense collaborative process Success depends on the ability to create, share and integrate information Types of collaboration within a team Communication information exchange between team members Coordination act of orchestrating each task and organizational unit, so that they all contribute to the overall objective Control process of adhering to goals, policies, standards or quality levels formal (e.g., formal reviews, plans, guidelines) informal (e.g., team culture, peer pressure) 1
Terminology Distributed Software Development (DSD) Collaborative development of software across different sites Also known as Global Software Development (GSD) Global Software Engineering (GSE) DSD across organizational models Multinational companies Multiple sites owned by the same company Outsourcing Client company and external companies as suppliers Consortia Multiple independent organizations Open source projects Extreme distributed development: independent developers in arbitrary locations Increased decentralization 2
DSD across companies and countries Country same different same internal onshoring internal offshoring Company different onshore outsourcing offshore outsourcing (also nearshore outsourcing) DSD across remoteness degree Single-site team Multi-site Team Satellite workers Remote-first team 3
DSD across project setups From D. Smite, M. Kuhrmann, P. Keil. Focus: Guest Editors Introduction on Virtual Teams. IEEE Software 31(6), Nov/Dec 2014, pp.41-46 Opportunities driving DSD Reduce development costs low-cost programmers from emerging countries Attract / retain skilled developers regardless of their location Reduce time to market round-the-clock or follow-the-sun development Mergers and acquisitions Proximity to target market / customer 4
Distance matters Gary M. Olson and Judith S. Olson. 2000. Distance matters. Hum.-Comput. Interact. 15, 2 (September 2000), 139-178. Impact of distance on collaboration within a team From Carmel E., and Agarwal, R.Tactical Approaches for Alleviating Distance in Global Software Development, IEEE Software, 18(2), 2001 5
Dimensions of distance Geographical distance a measure of the spatial dispersion, occurring when team members are scattered across sites the cost or effort required to exchange visits from one site to another Temporal distance a measure of the temporal dispersion, occurring when team members wishing to interact can be caused by time-zone differences or just time shifting work patterns Cultural distance a measure of the effort required by team members to understand the organizational and national cultures in remote sites It includes linguistic (and accent) differences Geographic distance Qualitative measure Value Same region (two hour drive) Low (1) Less than three hour flight Medium low (2) Transcontinental flight Medium high (3) Intercontinental flight High (4) 6
Temporal distance Qualitative measure Value Transcontinental (five hour overlap) Low (1) Intercontinental (three or more hour overlap) Medium low (2) Global (less than three hour overlap) Medium high (3) No overlap High (4) Cultural distance Qualitative measure Value Different organizational culture Low (1) Different national culture Medium low (2) High versus Low context cultures Medium high (3) East/West divide in culture Medium high (3) Uneven language skills Medium high (3) Lack of a common language High (4) 7
DSD challenges across distance dimensions and collaboration types Geographical Distance Temporal Distance Cultural Distance Communication Coordination Control Decreased frequency of communication Lack of informal exchange Providing right technical infrastructure Reduced trust Lack of awareness /team spirit Push for heavyweight processes Delay in responses Reduced hours for same time collaboration Management of project artifacts subject to delays Language differences and misunderstandings Doubtful of others capabilities Jobs perceived as under threat Different perceptions of authority Adapted from: Ågerfalk, P.J., and Fitzgerald, B. Flexible and Distributed Software Processes: Old Petunias in New Bowls?, CACM, 49(10), 2006 Aspects to consider From I. Smirnova, J. Münch, M. Stupperich. A Canvas for Establishing Global Software Development Collaborations. in Proc. 20th Int. Conf. on Information and Software Technologies (ICIST 2014), Springer, pp 73-93, 2014 8
Some best practices Organize a co-located kickoff meeting (minimum 1-day workshop) Let key team members meet (possibly F2F) at regular intervals Use collaboration tools With a multi-site team, divide the work by fully autonomous components Do not divide by layer nor by activity Only experienced staff in remote-first teams Only experienced staff as satellite workers Interventions that reduces geographic distance Intervention Cost Impact Face-to-face meetings 25,000 High (4) Exchange program 125,000 High (4) Synchronous communication possibilities Support for video conference at all sites (depending on the project size) Suitable selection of communication tools (multiple communication modes) 5,000 Med high (3) 5,000 Med low (2) 5,000 Med low (2) 9
Interventions that reduces temporal distance Intervention Cost Impact Relocate to adjacent time zone 500,000 High (4) Adopt Follow the Sun development 125,000 High (4) Create bridging team 500,000 Med high (3) Interventions that reduces cultural distance Intervention Cost Impact Face-to-face meetings 25,000 High (4) Cultural Training 25,000 Med high (3) Cultural Liaison/Ambassador 125,000 Med high (3) Adopt low-context communication style 5,000 Med low (2) Reduce interaction between teams from different cultures 5,000 Low (1) 10
GSD Sim http://proisis.lero.ie/gsd-sim/ http://lero.ie/lerolaunch2015/assets/gsd-sim.pdf 11