Global Software Development Riku Granat Vice President, Applications Software.

28
Global Software Development Riku Granat Vice President, Applications Software
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    219
  • download

    2

Transcript of Global Software Development Riku Granat Vice President, Applications Software.

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

Global development (own + 3rd party) Global markets

Across national, cultural and other boundaries Controlled – driven by

Common goals Common policies

Coordinated – orchestrated – managed 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

Typically suitable only for simple well-specified short term projects 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? 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

phone, video conf, net meeting, e-mail, chat, discussion forums, wiki pages, …

Make sure that also development tools work fluently Distributed SCM, sharing documents (wiki,

databases), … Encourage people to share and collaborate

Explain reasons, motivate, use common goals, …

Culture

Challenge Meaning of the org chart, not taking risks, collectivism,

long term vs short term, … Attitude to time, work itself, quality, … Race, religion, …

What to do about it? 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 How can you split the work between separate development sites

and still get the components integrated and maintain software integrity?

What to do about it? 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-of-the-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?