global software development 280308.ppt - aalto€¦ · global software development – why?...
TRANSCRIPT
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
SoberITSoftware Business and Engineering Institute
ContentsContents
Global software developmentWhat?Why?ChallengesTips for how to succeed
HELSINKI UNIVERSITY OF TECHNOLOGY
SoberITSoftware Business and Engineering Institute
Global Software Global Software Development – What?
HELSINKI UNIVERSITY OF TECHNOLOGY
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
SoberITSoftware Business and Engineering Institute
Global Software Global Software Development – Why?
HELSINKI UNIVERSITY OF TECHNOLOGY
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
SoberITSoftware Business and Engineering Institute
What is difficult in distributed software
d l t j t ?development projects?
Pair Discussion
HELSINKI UNIVERSITY OF TECHNOLOGY
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
SoberITSoftware Business and Engineering Institute
Ti f H t S dTips for How to Succeed:
HELSINKI UNIVERSITY OF TECHNOLOGY
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
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
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
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
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
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
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
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
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
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
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
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
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
SoberITSoftware Business and Engineering Institute
Wh t A A il M th d ?What Are Agile Methods?
HELSINKI UNIVERSITY OF TECHNOLOGY
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
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
SoberITSoftware Business and Engineering Institute
Scrum
HELSINKI UNIVERSITY OF TECHNOLOGY
SoberITSoftware Business and Engineering Institute
Combining Agility and Combining Agility and Distribution: Why? Why Not?
HELSINKI UNIVERSITY OF TECHNOLOGY
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
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
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
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
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