global software development 280308.ppt - aalto€¦ · global software development – why?...

32
SoberIT Software Business and Engineering Institute T-76.3601 Basics of Software Engineering - Spring 2008 Global Software Development 28.3.2008 Maria Paasivaara HELSINKI UNIVERSITY OF TECHNOLOGY

Upload: others

Post on 20-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

T-76.3601 Basics of Software Engineering - Spring 2008

Global Software Development

28.3.2008Maria Paasivaara

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 2: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

ContentsContents

Global software developmentWhat?Why?ChallengesTips for how to succeed

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 3: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Global Software Global Software Development – What?

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 4: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Global Software Development – What?Global Software Development What?

Global software developmentp

Distributed software development

( / l)

Oulu

(intra/inter-organizational)

Offshore / nearshore development TampereBoston

Software outsourcingBudapest

Software subcontractingp

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 5: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Global Software Global Software Development – Why?

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 6: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Global Software Development – Why?Global Software Development Why?

Concentration on core competencesConcentration on core competencesLack of own resourcesLack of own knowledgeLack of own knowledgeIncreasing the speed of developmentLower cost (offshore development, near shore development)Development closer to the marketFlexibilityFlexibilityAround-the-clock developmentMergers and acquisitionsg q

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 7: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

What is difficult in distributed software

d l t j t ?development projects?

Pair Discussion

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 8: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Challenges of DistributionChallenges of Distribution

The problem #1: Communication

Geographical distance Do we need to communicate?Time-zone differences

Motivational issuesl l d ff

communicate?How ?

Cultural differencesCompany border

Managing a distributed projectTakes more time and effort than expectedTakes more time and effort than expected

--> Distributed projects typically take longer than collocated

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 9: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Ti f H t S dTips for How to Succeed:

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 10: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Starting a Distributed ProjectStarting a Distributed Project

OrganizationChoose your partners carefullyLimit the number of partners and locations

Minimize the time-zone differenceWorking across time-zones reduces possibilities for g pcommunicationChoose sites and partners preferably within same time-zone if frequent communication is neededzone, if frequent communication is needed

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 11: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Starting a Distributed ProjectStarting a Distributed Project

Plan how to divide work effectively

Whom to contact?

Minimize the need for communication between sitesModular product structureModular product structureSub-project manager or team leader at every site

Arrange needed tools, e.g. version management, testing tools, bug repository…What kind of training is needed?What kind of training is needed?

Starting a distributed project requires a lot of effort!!

Allocate extra time

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 12: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Team Building and TrustTeam Building and TrustImportant to build trust between partners and team members already in the beginningalready in the beginning

Plan face-to-face meetings (kick-off, trainings, etc.)g ( , g , )Especially meetings in the beginning are importantGive faces to all sitesSeeing good quality work helps to build trust

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 13: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Informing Monitoring TransparencyInforming, Monitoring, Transparency“There is a lot of information at the corridors”

In a distributed project people get only the information you In a distributed project people get only the information you give themDo not expect anyone to know anything -> make sure they know

TTransparencyTeam members at all distributed sites need progress information

Subcontractors appreciate all feedback - also positive!

Regular meetings (weekly meetings, e.g. teleconference)Databases for managing changes and bugs

HELSINKI UNIVERSITY OF TECHNOLOGY

Databases for managing changes and bugs

Page 14: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Frequent Deliveries of CodeFrequent Deliveries of CodeFrom the subcontractor to the customerE g weekly deliveries of code & integration or continuous E.g., weekly deliveries of code & integration, or continuous integration

BenefitsCreates transparencyE d t di f i tEnsures understanding of requirementsBrings real check pointsGives instant feedbackGives instant feedbackAdds developer motivation

Subcontractor

HELSINKI UNIVERSITY OF TECHNOLOGY Customer

Page 15: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Communication between Customer and Communication between Customer and Subcontractor: Two Examples

Project managers Project managers

? ?

Team memberfrom company 1

Team memberfrom company 2

Team memberfrom company 1

Team memberfrom company 2

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 16: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Project Managers: Bottlenecks or Contact Creators?

Project managers Project managers

? ?

Team member Team member Team member Team member

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 17: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Establishment of Peer-to-Peer LinksEstablishment of Peer to Peer Links

Establishment of peer-to-peer links between companies at several l llevels is important

Communication improves

Links can be created between 3 levels

Management level: Management level: Subcontracting responsiblesProject level: Project managersTeam level: Experts in the Team level: Experts in the project teams

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 18: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Visiting EngineerVisiting Engineer

SubcontractorCustomer

Visits the collaboration partner (customer, subcontractor or subsidiary)St d k th f l i d f ti (f Stays and works there for a longer period of time (from one week to several months)

Especially in the project initial and final phasesp y p j pIn a larger project a small group can visit instead

One major task is facilitation of communicationPasses information, creates contacts, solves problems, is present for face-to-face discussions

HELSINKI UNIVERSITY OF TECHNOLOGY

present for face to face discussions

Page 19: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Problem SolvingProblem Solving

I hava a problem butI hava a problem, but whom to contact?

Subcontractor Customer

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 20: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Problem Solving CommunicationProblem Solving CommunicationOften neglected in the project planning phase!Time-consumingTime-consumingImportant in distributed projects

The lack of answers delays the projectBarrier to ask / motivation to answer

?

Subcontractor Customer

Practices:Problem solving responsible

?Problem solving responsibleDiscussion forumsDirect contacts between developers (e.g., chat)

P bl l ip ( g , )

Face-to-face problem solvingProblem solvingresponsible

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 21: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

?Questions? ?

Contact information:Email: [email protected]

Tel: +358 50 30 16 847 URL b i h fiURL: www.soberit.hut.fi

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 22: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Example: Using Agile P ti i Di t ib t d Practices in a Distributed

ProjectProject

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 23: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Wh t A A il M th d ?What Are Agile Methods?

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 24: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Agile Methods: “Embrace change”Agile Methods: Embrace change

Agile methods are a subset of iterative methods( )E.g. Scrum, extreme programming (XP)

Timeboxed iterative and evolutionary development Timeboxed iterative and evolutionary development, adaptive planning, evolutionary delivery, rapid and flexible response to change

l h f l h lDeliver something useful to the client

Simplicity lightness communication self-directed teams Simplicity, lightness, communication, self directed teams, programming over documenting

Focus on delivery, not process-compliance activities

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 25: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

ScrumScrum

Self-directed and self-organizing team T f 7 bTeams of max 7 membersDuring an iteration the team has the authority and resources to plan their own work and solve their own resources to plan their own work and solve their own problems

Daily stand-up meeting with special questions (scrum)15 i t15 minutes

Usually 30-calendar day iterations (sprint)Each iteration, client-driven adaptive planningEach iteration, client driven adaptive planningNo external addition of work to an iteration, once chosen

D t t l t k h ld t th d f h it tiDemo to external stakeholders at the end of each iteration

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 26: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Scrum

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 27: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Combining Agility and Combining Agility and Distribution: Why? Why Not?

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 28: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Distributed Agile Development (DAD)Distributed Agile Development (DAD)

Cons:A il ti b d ll ti d ti Agile practices based on collocation and continuous communicationThe biggest problem of distribution: communication

DAD?gg p

Limited experiences in companiesDAD?

Pros:Agile practices are build on communication: they require everyone to communicateeveryone to communicateFrequent iterations: fast feedback, response to customer requirements, visibilitySome successful experiences: It is possible to succeed!

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 29: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Successful Practices for DAD (1/3)Successful Practices for DAD (1/3)

Daily Scrum meetings of distributed teams ( d f l f h )(videoconference, teleconference, chat)

Requires everyone to communicate – encourage!P t di i ft dPeer-to-peer discussions afterwardsScrum-of-scrums

Continuous communication, e.g. chatTeam roomsTeam roomsVideoconference – seeing the faces

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 30: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Successful Practices for DAD (2/3)Successful Practices for DAD (2/3)

Common tools Repository, version management (continuous or daily check-in, nightly builds)B kl t l ( Wiki Ji )Backlog tool (e.g. Wiki, Jira)

Synchronous iterations (2 4 weeks) Synchronous iterations (2-4 weeks) Rotating people between teams and sites

Product owner for each teamParticipates actively even if distributed!Participates actively even if distributed!

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 31: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

Successful Practices for DAD (3/3)Successful Practices for DAD (3/3)

Frequent visits – travel enough!Team building: everyone should meetHands-on training, collocated working, pair

i tprogramming etc.Sprint planning together (collocated or distributed)Demo (videoconference application sharing)Demo (videoconference, application sharing)Reflection meeting

HELSINKI UNIVERSITY OF TECHNOLOGY

Page 32: Global Software Development 280308.ppt - Aalto€¦ · Global Software Development – Why? Concentration on core competences Lack of own resources Lack of own knowledge Increasing

SoberITSoftware Business and Engineering Institute

?Questions? ?

Contact information:Email: [email protected]

Tel: +358 50 30 16 847 URL b i h fiURL: www.soberit.hut.fi

HELSINKI UNIVERSITY OF TECHNOLOGY