Global So(ware Development Rosalba Giuffrida Yvonne Di3rich IT- University in Copenhagen So(ware and System Sec>on GSD courses @ITU http://global-interaction.org/ Distributed Collaboration and Development Global Software Development Cluster Software Engineering & Software Quality Roadmap What is Global So9ware Development? Why Global So(ware Development? Kinds of Distribu>on Challenges Approaches Tools Processes GSD@ITU 1
What is Global So(ware Development? 1/2 Portland Copenhagen Addis Abeba New Delhi 5 domain experts/so(ware developers in Denmark 6 so(ware developers + 1 tester in India 1 team member in Portland Customers in Ethiopia @Dittrich and Giuffrida What is Global So(ware Development? 2/2 Global Software Development (GSD) Global Software Engineering (GSE) Distributed Software Development (DSD) Multi-site software development Offshoring ( ) (Distributed Software Engineering) [It] means splitting the development of the same product or service among globally distributed sites. [Lanubile, 2009] Software work undertaken at geographically separated locations across national boundaries in a coordinated fashion involving real time (synchronous) and asynchronous interaction [Sahay et al., 2003] Roadmap What is Global So(ware Development? Why Global So9ware Development? Kinds of Distribu>on Challenges Approaches Tools Processes GSD@ITU 2
Why Global So(ware Development? (benefits) Most talented developers Development costs Proximity to market Time to market @Carmel Follow-the-sun @Kroll et al. Different kinds of distribu>on (Globally) Distributed teams (Globally) Dispersed teams (Globally) Partially- dispersed teams @Giuffrida and Dittrich 2013 Roadmap What is Global So(ware Development? Why Global So(ware Development? Kinds of Distribu>on Challenges Approaches Tools Processes GSD@ITU 3
Kinds of Distance Geographical distance Temporal distance Sociocultural distance What is culture? A set of values and ideas that shape the behavior (Kroeber, Kluckhohn, 1952) that complex whole which includes knowledge, belief, art, morals, law, custom, and any other capabilities and habits acquired by man as a member of society (Tylor, 1871) the collective programming of the mind which distinguishes the members of one human group from another (Hofstede, 1980) national culture organizational culture functional culture @Dubè and Parè, 2001 Hofstede Dimensions @Hofstede Power Distance (PDI) Individualism versus collectivism (IDV) Masculinity versus femininity (MAS) Uncertainty avoidance (UAI) Long-term versus short-term orientation (LTO) Indulgence versus Restraint (IVR) What could be the impact of cultural differences on software development? 4
Nego>ated culture Cultural Adaptation need to adapt to different ways of working need to adapt to cultural norms of social behavior, attitudes toward authority, and language issues. @Krishna et el. Negotiated Culture form and develop cross-cultural teams so a compromise working culture is achieved in which both sides of the partnership modify their work behaviors to take account of the cultural norms of their partners not something that can be achieved easily, and normally occurs only over a significant time period E.g.: use of bridgehead teams that spend significant periods in remote sites, exchange of staff on a long-term basis between cross-cultural partners, training issues. @Brannen and Salk Impact of Distance in GSD Geographical distance Temporal distance Sociocultural distance Awareness is knowing what is going on. @Carmel and Agarwal Roadmap What is Global So(ware Development? Why Global So(ware Development? Kinds of Distribu>on Challenges Approaches Tools Processes GSD@ITU 5
Tac>cal Approaches for Allevia>ng Distance in GSD Tac>c 1: Reduce intensive collabora>on Tac>c 2: Reduce cultural distance Tac>c 3: Reduce temporal distance @Carmel and Agarwal, Tools So(ware Configura>on management. Bug and change tracking. Build and release management. Collabora>ve Development Environments (CDE). Communica>on tools. Communica>on tools @Lanubile 6
Process Approach: mi>gate distance with processes Tactic 1: Reduce intensive collaboration Tactic 2: Reduce cultural distance Tactic 3: Reduce temporal distance Formaliza>on vs Informali>es Waterfall vs Agile Formaliza>on in GSD Tactic 1: Reduce intensive collaboration Tactic 2: Reduce cultural distance Tactic 3: Reduce temporal distance Increase formal documenta>on Increase organiza>onal factors such as processes, structure and goal alignment. Waterfall approach @Herbsleb Agile in GSD? GSD Lack of informal communica>on due to geographical distance and >me- zone differences difficul>es with division of work, project and process management issues infrastructure problems. Agile close collabora>ons frequent informal face- to- face communica>on rather than lengthy documenta>on self- organising teams. Peripheral awareness Physical ar>facts 7
Agile GSD: dispersed agile team @Sharp et al. There were some overlapping working hours among team members, so synchronous communica-on and collabora>on was possible (IM, videoconference, phone) Team members adapted their working hours to those of remote colleagues They were recording the mee>ngs to share them asynchronously. Communica>on was mainly informal impromptu conversa>ons collabora>ng on a daily basis with some remote colleagues Agile GSD: Using Scrum in a Large Project A case study on agile prac>ces in a 40- person development organiza>on distributed between Norway and Malaysia. Scrum prac>ces were successfully applied: using teleconference and web cameras for daily scrum mee>ngs synchronized 4- week sprints and weekly scrum- of- scrums. Addi>onal agility suppor>ng prac>ces for distributed projects were iden>fied frequent visits unofficial distributed mee>ngs annual gatherings @Paasivaara et al. What about Outsourcing and Open Source? Global Software Development (GSD) Global Software Engineering (GSE) Distributed Software Development (DSD) Multi-site software development Offshoring Open Source Outsourcing 8
From Offshore Outsourcing to Offshore Insourcing @Moe et al. Tree Scandinavian medium-sized software companies that have terminated their offshore outsourcing relationships and changed to offshore insourcing arrangements. What are the reasons for terminating offshore outsourcing relationships? Disappointing low quality of the software delivered, being caused by insufficient domain knowledge, high turnover and a lack of motivation among the remote and external developers. What are the reasons for switching from offshore outsourcing to offshore insourcing? Offshore insourcing helped to address many challenges experienced in outsourcing, although some of them remained. Larger control over recruitment, motivation and leadership. Access to new technology and a new market. Roadmap What is Global So(ware Development? Why Global So(ware Development? Kinds of Distribu>on Challenges Approaches Tools Processes GSD@ITU GIRI 2.0 http://global-interaction.org/ 9
Master thesis? http://global-interaction.org/ References 1/2 Y. Dittrich and R. Giuffrida, Exploring the role of instant messaging in a global software development project, in Global Software Engineering (ICGSE), 2011 F. Lanubile, "Collaboration in Distributed Software Development", in A. De Lucia and F. Ferrucci (Eds.): Software Engineering, LNCS 5413, Springer-Verlag Berlin Heidelberg, pp. 174-193, 2009. S Sahay, B Nicholson, S Krishna, Global IT outsourcing: software development across borders Cambridge University Press 2003. N. B. Moe, G. K. Hanssen et al., From offshore outsourcing to offshore insourcing: Three stories, in Global Software Engineering (ICGSE), 2012 Carmel, E.: Global Software Teams. Prentice Hall, Upper Saddle River (1999) J Kroll, ER Hess, JLN Audy, R Prikladnicki, Researching into Follow-the-Sun Software Development: Challenges and Opportunities International Conference on Global Software Engineering 2011. R. Giuffrida and Y. Dittrich, You Can Not Ask What You Do Not Suspect An Argument for Observational Studies in GSD. ICGSE 2013. Submitted, under review. Dube, L., & Pare, G. (2001). Global Virtual Teams. Communications of the ACM. 44(12), 71-73. References 2/2 G Hofstede, Culture and organizations International Studies of Management & Organization, 1980 - JSTOR S Krishna, S Sahay, G Walsham Managing cross-cultural issues in global software outsourcing Communications of the ACM, 2004 Brannen, J.V. and Salk, J.E. Partnering across borders: Negotiating organizational culture in a German-Japan joint venture. Human Relations 53, 4 (2000), 451 487. Herbsleb, J.D., Moitra, D.: Global Software Development. IEEE Software. 18(2):16-20 (2001) Carmel, E., Agarwal, R.: Tactical Approaches for Alleviating Distance in Global Software Development. IEEE Software. 18(2), 22-29 (2001) Paasivaara, M., Durasiewicz, S., Lassenius, C.: Distributed Agile Development: Using Scrum in a Large Project. In: 3rd IEEE International Conference on Global Software Engineering, pp. 87-95. IEEE, Bangalore (2008) Sharp, Helen, Rosalba Giuffrida, and Grigori Melnik. Information flow within a dispersed agile team: a distributed cognition perspective. Agile Processes in Software Engineering and Extreme Programming (2012): 62-76. 10