38
16th International System Design Languages Forum Model-driven dependability engineering June 26-28, 2013 - Montreal, Canada Bo Andrén, Ericsson The Art of Building Highly Complex Software Systems

The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

  • Upload
    lamthu

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

16th International System Design Languages ForumModel-driven dependability engineeringJune 26-28, 2013 - Montreal, Canada

Bo Andrén, Ericsson

The Art of Building Highly Complex Software Systems

Page 2: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 2

Me

SW Architecture and Design

Product LineManagement

TechnologyManagement

Page 3: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

Ericsson

Page 4: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 4

This is Ericsson

› We provide:> Communication networks > Services to network operators > Enablers to service providers

› Customers in more than 180 countries

› 40% of the world’s mobile calls pass through our networks

› 135 years in the telecoms market

Page 5: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 5

16,086

11,367

21,097

11,253

13,030

5,220

2,220

14,061

13,775

4,649

North America

Latin America

Northern Europe & Central Asia

Western & Central Europe

Mediterranean

Middle East

Sub-Saharan Africa

India

North East Asia

South East Asia & Oceania

112,758 employees

› 24,100 in R&D

› 60,000 in services

Who we are

2012

Page 6: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 6

Open StandardsKey for the Industry

› Innovation is an important element of our corporate culture

› Early involvement in creating new standards

› Largest contributor to open standards

› Often first to market with new solutions

› 5th largest software supplier in the world

Page 7: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Topic

Page 8: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 8

Page 9: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 9

Page 10: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 10

12 Times Mobile Data Traffic by End of 2018

Page 11: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 11

Network Complexity

Ac

CO CO

Ac

COCO

CO

Ac

CO

CORA

RA

Ac

Ag

DR DR

DR

DR

DR

LS

LS

DC

BB

NoC

CO

BB

BB

Ag

DC

Ag

DC

BB

BB

BBBB

BB

BB

BB

BB

DC

DR

Page 12: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 12

Business and Operations Support Complexity

An average Operator has 500-800 BSS/OSS systems

Page 13: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 13

Key figures

Source: www.ericsson.com/ericsson-mobility-report

Page 14: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

Lean & Agile

Page 15: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 15

The 1st and most important question

“What is the problem?”

Going agile and lean is not a goal, but a means to reach a goal!

A clear reason for change is key in successful Agile / Leantransformations.

The plan to address “How” depends on the answer on “What?” and will therefore be different.

Page 16: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 16

http://agilemanifesto.org/

Page 17: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 17

What is Lean?

1. Lean is about reducing waste.

Traditionally the paradigm has

been resource optimizations:

› Maximize the utilization of resources.

Lean is changing the paradigmto flow optimization:

› Maximize the value for theflow object.

2. Lean is also about continuous learning and improvement.

Page 18: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 18

Ericsson Product Development Principles

Need to understand:• The Agile manifesto is born in a

small scale context. • Lean originates from production.

Include corporate knowledge andadd the specifics of really large scale SW & system development to translate agile and lean to yourreality.

Page 19: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 19

We produce WORKING PRODUCTS in steps with short feedback loops

We ensure a continuously LEARNING ORGANIZATION

We promote empowered HIGH-PERFORMING TEAMS

We design flexible ARCHITECTURES and implement them in a sustainable way

We know and actively manage our RESOURCES, TOOLS, and PRODUCT ARTIFACTS

We always put BUSINESS VALUE in focus

Ericsson Product Development Principles

Page 20: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 20

Learning

In operation

Some learninghappens here

Most learning happenshere!

Development Study

The main learning period happenswhen the system/feature is beingused.

By utilizing every opportunity to askfor feedback we can maximize learning and quickly feed backall those insights.

Page 21: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 21

The Importance of Architecture

Any weakness in the architecture much more visible to all in agile WoWOur architecture is a key

enabler for large scale agile& lean!

We need:- Well defined and governed

interfaces and API’s- A vast library of re-usable components- A vibrant community- An advanced development and

test environment- Incentive models that foster reuse

The Ericsson Architecture Guide (EAG) is important to share knowledge, enable alignment and adherence and honor our corporate knowledge and lessons learned.

Page 22: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 22

Continuous Integration

Continuous Integration is fundamentalto master large scale lean SW development.

This also drives build- and test automation.

The CI environment must support the teams(fail fast – fix fast)!

CI is a necessary capability to achieve Continuous Deployment.

Page 23: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 23

SW Craftsmanship

Agile and lean will improve the process.However, not all problems are process related.

The importance of SW engineering practices and skills remain.

Product- and SW engineering guardians are, and will be needed to build necessary levels of knowledge, enhance the quality of our SW, secure system health and to manage technical debt.

Page 24: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

Architecture

Page 25: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 25

A Component Based Architecture

CloudCloud

Node 3

Well definedArchitectures

Flexible DeploymentOptions

High AbstractionWorkflow

Node 1

Special HW

NB

INode 2

Common HWor

NBI

NBI

NBI

Network Offerings

NB

I

Page 26: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 26

A Component Based Architecture

Cloudor

NBI

NBI

Network Offerings

InformationArchitecture

ImplementationArchitecture

NetworkArchitecture

THE Ericsson Architecture

A component based architecture is founded on:

• A vast library of re-usable components,

• A vibrant community

• Late and dynamic binding into products and solutions

To enable that the organization must create:

• Strict governance of architectures and technologies

• An advanced development and test environment,

• Incentive models that foster reuse

Page 27: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 27

Shared Component,e.g. Engine, etc.

V1.01

Decoupling: No Versions!

Provided interface(SOA style, maximaldecoupling)

Required interface

Configurationinterface

Ref: Jan Bosch

Syntactically and semantically equivalentuntil a deliberate subset is planned

Respect Independent Deployment:still usable in context where this interface can not be bound

Shared Component,e.g. Engine, etc.

V1.02

Frequent (4 week) releases ofproduction quality component

› Automated test suites for each interface.

› No offering of shared component may depend on the implementation

Page 28: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

Continuous Integration

Page 29: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 29

The Supply Chain

Release

Release QA

Solution

LatestSystemVersion

ComponentDevelopment

and Verification

Application Development

and Verification

Continuous Integration builds on a component based architecture where component integrity and version independence is always maintained.

New component versions are verified continuously in the design phase.

New components are continuously picked up by application design and verification.

In maintenance new released components can be integrated on system and solution level without pre-integration in previous steps.

Continuous Integration is a necessary capability to achieve Continuous Deployment.

Page 30: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

SW Technologies

Page 31: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 31

Reliability

Security

Increasing complexity

Decaying Legacy

Virtualization

Cloud

Network programming

Efficient frameworks

Shorter life-cycles

Shorter TTM

Change Drivers

Page 32: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 32

Industrialization level

Ad hoc Craftsman Industry

Page 33: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 33

SW design template

Design (Decreasing abstraction)

Verification (model mapping)

Trans. Trans. Trans. Trans.

Ad

d

Ad

d

Ad

d

Ad

d

Machine assisted

Manual

C++mov eax, 4 mov ebx, 1 mov ecx, strmov edx, stl int 80h mov eax, 1

100101110001000101110011101111100111001001001100000101

Page 34: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 34

C

Assembly, Fortran

Paradigm change

Efficiency

Time

C++

Java

Erlang

Model based design?DSL?

Page 35: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 35

• SW solutions become more and more complex.

• Agile and lean will improve the process. However, not all problems are process related.

• Without solid architectures andarchitecture governance, you will fail.

• Craftsmanship will always be vital.

• Old SW technologies never die, we just add new ones on top of them.

• The current SW paradigm isstruggling to keep up with demands

There is a way forward!

Remember

Page 36: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 36

Thank You!

Page 37: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 37

Q & A

Page 38: The Art of Building Highly Complex Software Systemsusers.encs.concordia.ca/~magic/sdl2013/assets/SDL2013-Keynote...Bo Andrén, Ericsson The Art of Building Highly Complex Software

The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 38