Www.itu.dk Global Software Development Niels Hallenberg IT University of Copenhagen BAAAP – Spring 2009.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Global Software Development Main issue:  distance matters.
Alternate Software Development Methodologies
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
NAUG NAUG Knowledge Evening – th February 2007.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
Software Life Cycles ECE 417/617: Elements of Software Engineering
Ian Bui SYSM 6309 UTD - Spring Brave New World of R.E.  Multiple teams spread across the globe  Management separated from Development  Marketing.
Agile
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Global Software Teams. Sources – Handout Readings  Carmel “Global Software Teams”  Alexander “Virtual Teams Going Global”  Geber “Virtual Teams” 
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Managing Offshore Software Development Projects Presented by Orlando Moreno Phone: web:
Issues and Strategy for Agile Global Software Development Adoption FLORIN DUMITRIU DUMITRU OPREA GABRIELA MESNITA.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
Does Distributed Development Affect Software Quality???? An Empirical Case Study of Windows Vista Christian Bird, Premkumar Devanbu, Harald Gall, Brendan.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Software Engineering Modern Approaches
Chapter 3 Agile Software Development (2/2) Yonsei University 2 nd Semester, 2013 Sanghyun Park.
Resource Systems.  The need for agility  History of Product Development  Delivery of EPCOT  Future Challenges & Recommendations  Reflection  Questions?
CIS 9002 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Industry SDLCs and Business Climate. Justin Kalicharan Credentials Director and Senior Technology Officer Over 14 years of coding experience in various.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Agile: Lessons Learned (a retrospective) Tony
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
CS3100 Software Project Management Agile Approaches.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Chapter © 2012 Pearson Education, Inc. Publishing as Prentice Hall.
Advanced Project Management Project Planning Phase Ghazala Amin.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS223: Software Engineering Lecture 16: The Agile Methodology.
Global Software Development Main issue:  distance matters ©2008 John Wiley & Sons Ltd. vliet.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Building a SW Architecture Group Tomer Peretz Chief Software Architect.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
CS 389 Software Engineering MultiLib 2008 Final Presentation Adam Pitzer -Team Leader Paul Dumoulin - Quality Manager Miguel Vega - Wiki Master Steve Malko.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Software Engineering cosc 4359 Spring 2017.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
CS223: Software Engineering
Software Development.
Continuous Delivery- Complete Guide
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Lecture # 3 Software Development Project Management
Project Management Process Groups
Chapter 3: Agile Software Processes
Presentation transcript:

Global Software Development Niels Hallenberg IT University of Copenhagen BAAAP – Spring 2009

Outline Global Software Development at Siemens: Experience from Nine Projects Splitting the Organization and Integrating the Code: Conway’s Law Revisited Agile Practices reduce Distance in Global Software

Nine Projects at Siemens Methodology: –18 interviews, three Siemens sites –Project management, technical leadership, middle management positions and executive or senior management roles –Locations: Europe, India, US, Japan –Interview topics Role and responsibilities Development divided among sites How work was managed Cross-site relationships Processes and tools Problems, issues and best practices

Nine Projects at Siemens Management and Control –Incentives may differ among the sites –There may be “hidden” tensions: job cuts, competition, same functionalities goes in different products. –Decision-making having a negative impact on product, eg., when decisions are made of personal or political reasons and not for rational or technical reasons - this also happens on single sited projects. Project planning and tracking is a discipline and differences will cause problems. Informal communication is very difficult

Nine Projects at Siemens Formal communication is slow and time consuming and not always precise –Examples of formal contra informal communication? Skills – are we satisfied with the other sites programmers? Project insight at the other site – no information often means that they are behind schedule. Projects involving integration relied heavily on tracking information Late deliverables or deliverables of poor quality at one site leave the other site with no work.

Nine Projects at Siemens Process compatibility: –Translating formal documents –Confusion about roles – what is exactly the role of a project manager – does he make decisions or is she basically an information gathering function. Engineering style: do you use lot of time on design or do you make design and implementation simultaneously. Process maturity: Poor process quality infer late deliverables of poor quality. If you cant provide a status for your project, then you are probably performing poorly.

Nine Projects at Siemens Decision making: are staff at the lowest technical level allowed to make decisions not affecting functionality and schedule negatively? This is highly cultural dependent. Development environment: –Build capabilities at all sites – maybe even a central build capability. –Connection Speed! Collaboration technology – “is there really a person over there”: –Photo gallery –Photo-annotated organization chart

Nine Projects at Siemens Communication –You really needs to know who you ara talking to – getting to know each other. –Are you communicating through a project manager (centralized) or directly between the involved persons (decentralized) –Do you understand the format that is communicated – eg. UML or a home made class diagram notation. The domain knowledge is very important – an external contractor may have more need for education than a newly hired employee at your local site.

Nine Projects at Siemens Workshops are very effective – and all important decisions should be made the last day. We want to meet people and spend time – also on non professional matters Drink a few beers together – it makes a big difference when problems occur. The way agreement and disagreement is expressed differs among cultures! Some cultures are good at asking questions and very precisely express their agreement and disagreement. But other cultures may give the impressions of agreement but actually it is just to be polite.

Nine Projects at Siemens Time zones make it harder to have over lapping working hours. YOU MUST DEVELOP TRUST ALWAYS SPEND YOUR TRAVELING BUDGET AT THE START OF THE PROJECT

Integrating the Code Case study of integrating a geographically distributed project. Project dimensions: –Project structure: what is to be developed –Development process: how is the project developed –Milestones: when is the milestones achieved –Ressources: who is working on the project. Brooks law: if a project is late then adding more people will slow the project even more. Capability Maturity Model (CMM – 5 levels)

Integrating the Code It is impossible to avoid the unpredictable and “outside-the-plan” actions. Informal communication is very important – you do not know what you don’t know – and informal communication often leads to make the unkown known. The functionality of an Interface Specification is hard to make precise: –Two sites building simulators for the other sites deliverables. Different assumptions got into the simulators and the programmers didn’t realize before integration started.

Integrating the Code Change Control Board (CCB) –They must cover the entire project and still be able to make decisions. Informal Communication: –Who to contact. –It is difficult to get an informal contact right away – time zone etc. –Language barriers –Lack of trust for an openly communication Unplanned contacts are very important! You must communicate even though there is no reason for it – why? Many problems are unknown.

Integrating the Code Efficient communication: –Do communicate cross site even though its expensive and troublesome. –Publish your calendar openly – else people will ware time trying to get in contact with you –Agree on communication slots if you are working long distances. –Reduces responsiveness is hard to avoid when working across sites. –Consequences are high if you don’t communicate –Communication is hard when you can’t see what the other site is talking about, eg. a detail on a GUI. –Use communication different communication technologies: , chat, wiki, skype, etc. –YOU MUST PUSH THE COMMUNICATION

Lessons Learned Reduce the need for cross-site communication: –Modular and independent modules –Products must have well understood boundaries Overcome barriers to informal communication: –Travel at the beginning of the project. –Build relationships –Use appropriate tools

Agile Practices Agile Development Methodologies in Global Software Development (GSD) –XP –Scrum Agile methods are characterized by short, iterative cycles of development driven by product features, periods of reflection, collaborative decision making, incorporation of rapid feedback and continuously integration of code. Agile in GSD is difficult because communication is difficult.

Agile Practices Distributed eXreme Programming – practices that are independent of location: –Small releases, simple design, testing, refactoring and coding standards Practices that is highly dependent on location: –Planning game, pair programming, continuous integration and on-site customers This study asks: can agile methods be used to reduce the negative influence of distance on communication, coordination, and control in a GSD context?

Agile Practices Locations: US, Ireland, India, Poland, China and Malaysia Challenges with Temporal Distance: –Time zones –You get behind a discussion – happended while you were at sleep. –Slow responsiveness Challenges with Geographical Distance: –Hard to build trust – we are two separate teams –Also people at the technical level should meet physically –Plan when people should meet face-to-face, fx while integration

Agile Practices Challenges with Sociocultural Distance, that is company culture, national culture and language. –Language limitations – it is harder to socialize in a foreign language than talking technicalities. –In some cultures it is impolite to say no – can you deliver on Monday – yes – and still three month later there had been no delivery. –Different interpretation

Agile Practices Conclusions – GSD benefits: –XP and Scrum improve communication, coordination and control –XP pair programming -> collective ownership, higher and coherent code quality –XP simple design -> design documents evolve while coorporating –XP refactoring -> bugs are eliminated –Scrum planning game -> project activities are shared openly

Agile Practices Conclusions – GSD benefits: –XP Pair programming -> increase time overlap and reduce temporal distance –Scrum planning game -> increase “teamness” and reduce geographical distance –XP pair programming and Scrum pre-game phase -> increase mutual understanding and reduce sociocultural distance.