Upload
lamthu
View
217
Download
0
Embed Size (px)
Citation preview
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
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
Ericsson
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
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
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
The Topic
The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 8
The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 9
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
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
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
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
Lean & Agile
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.
The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 16
http://agilemanifesto.org/
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.
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.
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
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.
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.
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.
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.
Architecture
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
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
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
Continuous Integration
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.
SW Technologies
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
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
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
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?
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
The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 36
Thank You!
The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 37
Q & A
The Art of Building Highly Complex Software Systems | Public | EAB-13:038703 Uen, Rev A | 2013-06-25 | Page 38