Slide 1

advertisement
Global Software
Development
Riku Granat
Vice President, Applications Software
In this episode …







Where do I come from?
What is GSD?
Why GSD?
Why not GSD?
Challenges and what to
do with them?
Summary
Q&A
What is GSD?
What is GSD?
What is Global Software Development?


Software development
Geographically distributed to multiple countries




Across national, cultural and other boundaries
Controlled – driven by



Common goals
Common policies
Coordinated – orchestrated – managed




Global development (own + 3rd party)
Global markets
Teams
Tasks
Deliverables
Communication between the distributed teams

Information sharing
Why GSD?
Why GSD?
– the most common answers

Cost savings

“Up to -80%”
Lack of local software
developers
 Focus on core competencies
…
 I.e. the usual management
story

Why GSD? – “the right answer”





Access to the world wide talent pool
Cost structure and savings
Risk management
Focus on where you get the best ROI
Market presence


understanding local needs
being close to the customer
Mergers and acquisitions
 Improved quality
 Follow-the-sun / -seasons development
Gaining competitive advantage

The bottom line is …
Regardless of what your reasons are you need to
understand them, you need to understand “why” …
… build your GSD strategy to support it
... because there are a lot of issues as well
i.e. there is a price to pay!
Why not GSD? – some issues









Strategic choices – timing, partners, …
Management / comms overhead –
complexity
Cultural issues
Communication issues
Technical issues – does your software
architecture support distributed development
model?
…
Your own management and leadership
skills!
…
You name it!
Challenges











Site strategy
Cost level
Communication
Culture
Work split
Software architecture
Processes
Methods
Open source
Internet
Leadership
Challenges – What to do about
them?
Everyone needs to and almost
everyone can change!
Site strategy

Challenge



Understand why you do it
Understand what you want to achieve
It is all about strategic choices



When, where, with whom, …
The bottom line: how to maintain and gain competitive
advantage?
What to do about it?





Create a strategy
Create an implementation plan
Execute it
Make frequent but not too frequent updates
Continuously review whether your “whys” and your strategy /
plans match
Costs

Challenge



Savings and how to measure them?
How can you control costs in a dynamic environment without losing
productivity?
What to do about it?


Develop unambiguous metrics / “accounting system” and follow-up
Flexibility from tactical, typically black box, subcontracting


For long term business more sustainable solutions are needed





Build on the site strategy – have a portfolio of sites – distribute risks
Have real options, based on own staff and partners
Have critical mass per site
Do not move responsibilities “every day”
Can cost saving ever be your only goal?


Typically suitable only for simple well-specified short term projects
Costs will always go up, if there is success
“Went for cost, stayed for quality, building future on innovation”
Communication
# of “tribes”
Communication

Challenge




Frequency of comms decreases with distance, more
comms with local than remote staff
Formal comms: how to keep the mill running (normal
reporting, specifications, reviews, meetings, …)
Informal comms: changes, legacy knowledge,
background, informal requirements
What to do about it?

Keep your comms tools in extremely good shape


Make sure that also development tools work fluently


phone, video conf, net meeting, e-mail, chat,
discussion forums, wiki pages, …
Distributed SCM, sharing documents (wiki,
databases), …
Encourage people to share and collaborate

Explain reasons, motivate, use common goals, …
Culture

Challenge




What to do about it?






Meaning of the org chart, not taking risks,
collectivism, long term vs short term, …
Attitude to time, work itself, quality, …
Race, religion, …
Be very sensitive to the cultural differences
Pay attention to the work split
Pay attention to the management structure
Bridge cultures
 site visits, local people on- site, common
processes, expatriates, …
Trainings
See also work split
Work split 1/2

Challenge


How to split the work in an optimal way?
What to do about it?


Understand what you are trying to do! What is driving your business?
Define clearly your work split approach based on your business drivers





Distributing software assets (for special competences)
Distributing development phases e.g. testing (for cost savings)
Distributing product or product families e.g. customization for certain regions
Distributing localization e.g. Chinese variants to China
Examples of candidates for remote development



Driven by cost – maintenance or further development of old versions or
specific components
Driven by local requirements – localization / tailoring specific components /
products
Driven by scale and access to global talent pool – whatever your
architecture supports
Work split 2/2
What to do about it?




“One size does not fit all” – different goals require different set-ups
Distribute only big enough and isolated enough projects
 Otherwise the management overhead will eat your gains quickly
Ultimately aim at self contained local teams
 Remote extensions are ok as starting points but are not sustainable solutions
Remember that is the evening it is still team work


and things must come together
Software architecture

Challenge


What to do about it?





How can you split the work between separate development sites
and still get the components integrated and maintain software
integrity?
Ideally do only things that your software architecture supports!
Respect the interfaces in the architecture (existing specs, change
control, …)
Develop the architecture to support independent development
and ultimately also independent deployment
Distribute only architecturally isolated development efforts
What if your architecture is not ready for all this?


Build on strict SCM code line policy
Inner source model – Use controlled parallel development
practices – have one “master” and as many “slaves” as you need
Software architecture special topics


Vertical
integration
User
experiences
Processes

Challenge




Global business and strategy driven optimization vs local optimization
Even in a distributed development environment people need to communicate,
software has to be integrated, project status has to be made visible, …
Doing all that with totally different processes will result into misunderstandings,
invisibility, delays, additional cost, frustration, …, and ultimately to failure
What to do about it?


Always start from the business imperatives and globally optimize for those
Have a common project model


Sufficient level of common processes (key milestones, key phase results, key
deliverables, …)
But leave some room for local fine-tuning




keeping people motivated
getting the best out of the team
accommodating some local differences
acknowledging that “one size does not fit all”
Methods

Challenge



Some methods are more local by their nature than
some others
e.g. some agile methods have some implicit and even
explicit needs for proximity of people
What to do about it?




Apply the theory / processes, you rarely find an out-ofthe-box solution from the school books
Use common methods across the sites
Look at the development methods from work split
perspectives and the other way round
Understand the constraints of your software
architecture e.g. in terms of where can you use Scrum
teams
Open source

Challenge





You are not in charge anymore!
You need to learn to collaborate with/in the communities
Potential mismatch between OSS drivers and your business drivers
Mismatch between your processes and tools and those of open source
What to do about it?


Again, start from your business drivers
Understand where you can use OSS and still meet your business goals





Licenses e.g. GPL vs protecting your IPR
Development drivers – differentiation vs commoditization, …
Adapt to the community (externally)!
Communicate with the community!
Give, not only take – be a good citizen in the OSS communities
Internet

Challenge





You are not in control anymore, neither is your company, nor your
government
Things happen where the experts are / where they want to go
Things can be more easily move from place A to B
Blogs, information leaks, …
What to do about it?



Just accept it and adapt, take it as an opportunity
Be a good citizen in the Internet
Communicate, communicate and communicate
Leadership

Challenge


Need for fuzzy management
 More unknowns
 More dependencies
 Can’t control everything
What to do about it?


Train your leaders and staff to cope with it
 Global project management and working in a global project is a
totally different ball game than local small projects
Recruit “modern leaders” with strong collaboration skills
Summary
Summary
Summary
GSD is a must in any big software business
 It comes with a lot of challenges and issues …
… most of which have solutions or workarounds
… if you know what you want to achieve
… and if you manage those challenges properly!


Remember to drive GSD from your business and strategy
perspectives, don’t let it become an engineering exercise
Every GSD case is unique in terms of culture, work split, drivers etc
… you need to treat them uniquely and learn as you go!
 Mr Brooks is still right – there is no silver bullet!

Thanks!
Any questions?
Download