SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
Everything You Always Wanted to Know
About Software Architects* but Were
Afraid to Ask
© 2014, Prof. Dr. Michael Stal
Why do we need Architects?
„We use an agile process
where architecture is built
by community“
„Architecture is being
created in one small design
step“
„Our application is so
small; architecture design is
a waste of resources“
„We always use the same
reference architecture“

Get rid of the
architectural chains and
get rid of architects

Houdini
Because Architecture is the
Backbone of any System
Architecture design comprises
the whole lifecycle
Architects have many
responsibilities that are not
related to design
Almost all design-bycommunity efforts result in
bad products (see Frederick P.
Brooks‘ The Design of Design)
Architecting and
implementation need different
sets of skills
Architectural flaws cause
substantial costs and risks (i.e.,
accidental complexity as
opposed to inherent
complexity)
Becoming an Architect seems to be
incredibly easy
Just read the right books ...
and obtain some mathematical skills
Just shift your Shape

Some Miracle

Developer

Architect
Birth of Architects
In some organizations
architects are those
who have the label
„Architect“ (on
their business card)
Birth of Architects (cont‘d)
cont‘d)
Some other
organizations may
use sophisticated
questionaires
Birth of Architects (cont‘d)
cont‘d)
Advanced
organizations may
even have a job
profile ...
... that is insufficient
(e.g. RUP)
Design errors may cause expensive
and lethal failures
Architecture as the
backbone of all
systems:
Tacoma Narrows Bridge (1940)
collapsed due to neglecting
resonance forces

Radiation Therapy System
Therac-25: lack of quality and
software failure caused 3 deaths

Architectures with lack of
quality are doomed to fail
Architecture design should
happen in a planned and
systematic way, not ad-hoc
Skilled & experienced architects
needed across the whole
product lifecycle, not just in
one short project phase
Lousy Architects create lousy
Architectures ...

Tower of Pisa:
structural
engineering did not
work very well

Intempo Skyscaper, Spain:
Architects forgot elevators between
21st and 47th level – Maybe for
health reasons

Airport BER: No
compliance with
safety regulations led
to a

very large

delay
... and Lousy Architectures cause
Disasters

„Even God himself
could not sink this ship“
Challenger Disaster caused
by bad rocket booster design

Ariane 5 explosion
due to overflow
exception
And all of this reduces Customer
Happiness
How can we find good Architects?
Only with the help of
wizards?

Or by chasing this rare
species in its habitats? Architects in quest
for good design

Or by assigning the role to
some unfortunate
developers?
Architecture as the
Holy Grail
Architects Habitat - Theory
What we want:
Architects Habitat - Practice
What we often get:
Failure has many Roots
We can‘t forbid failure, but we can
enforce learning from failure!

Cemetery for past/passed projects
Real Architects need Skills,
Knowledge & Experience

Requirements
Engineering

Software
Architect
Responsibilities and Involvements of
Architects

(c) Siemens AG
Architecture & Design Skills
Architects need deep knowledge and skills
such as:
Development Processes
Architecture Design and Implementation incl.
Scoping, Modelling, Prototyping
Architecture Evolution & Improvement
Product Line & Platform Engineering
Architecture Assessment + CQM
Assessment of Internal Architecture Quality
System and Application Integration
Relevant Technologies, Methods and Tools
Relevant Best Practices (e.g., Design Tactics,
Patterns & Architecture Styles)
Usability & Habitability

Project management skills are optional but
very useful (e.g. for effort planning)
Knowledge of Business and Strategy
To help achieve business goals and
make projects succeed it is
necessary for architects to know:
Business Strategy of own organization
Product Roadmap
Technology Roadmaps
Vendor Management
Target Markets & Customers
Legal Issues, Patents, Licensing
Standards and Regulations (i.e., TÜV,
DIN, FDA, …)
Product Line & Platform Engineering

Otherwise, they cannot make
appropriate design decisions
Requirements Engineering Skills
Architects must know the
domain(s) (i.e. problem
domain and solution
domain)
They need to understand
requirements, assess their
quality, feasibility &
sufficiency, and give feedback
Prioritization is typically
conducted by business AND
architects
Testing & Quality Skills
Architects need in-breadth
knowledge about
Test Plans
Test Methods
Flavors of testing (integration
tests, system tests, component
tests, acceptance tests, load
tests, …)

… and in-depth knowledge
about
Design for Testability
TDD
Test Strategies
Soft Skills
… are essential for architects, e.g.:
Stakeholder-specific communication
(Giving and receiving) feedback,
Mentoring
Listening
Conflict resolution
Understanding different personalities
Leading and convincing others without
line function

Typically, Architects are leaders
without power. Their only means
is to convince with arguments
Cooperation, not Confrontation
Architecture design
requires many
contributors: testers,
customers, developers,
product managers, ...
Architecture is the
result of joint work
Joint work requires
close and effective
cooperation

The day, when the architect died
Domain Knowledge
It is important for
architects to understand
the relevant domains:
Solution Domain: important
concepts, technologies,
methods, tools, trends, ...
Problem Domain: Domainspecific concepts, standards,
regulations, markets,
products, competitors,
trends, ...

They should know
essential aspects in-depth,
other aspects in-breadth
Experiences in Software Engineering
Architects of small systems
should have
at least 3 years experience as
software engineer
experience as a key developer
or subsystem architect

For mission-critical Systems
at least 6 years experience as
software/systems engineer
3 years experience as
architect in small to medium
projects
Uncertainty Principle
Architects are facing the Uncertainty Principle in their
daily work. They must be able to deal with uncertainty.
Architecture Process
Not-iterative, nonincremental development
process models don‘t work
for strategic and tactical
design
We require a risk-driven
and test-driven feedback
loop to address uncertainty
Architecture must be built
using piecemeal growth even within more
„traditional“ processes
Activities of an Architect
Architecting does not only
involve creation of
architectures but also:
Monitoring the
development process by
CQM (Code quality
Management) tools
Reviewing architectures
Improving and extending
architectures
Conducting Architecture
Archeology

You need to foster
architectures as if they were
your children
Unchartered Territories
No technology is a panacea – you
can even loose all of the benefits
by bad design
We cannot predict how new and
innovative, sometimes disruptive
technologies will influence the
architecture (e.g. quality
attributes)
This is even worse for the
combination of technologies, and
is usually not addressed very well
Architects should leverage
feasibility prototypes, at least for
the most crucial qualities
Methods for Architecture
Assessment are applicable as well

Some Prototypes
Tip of the Iceberg
There are many forces
architects have to balance
E.g., architects are actually
facing additional nontechnical and nonarchitectural
responsibilities and
involvements

All the rest

Design
Decision Making
Architecting is about
decision making and risk
mitigation
Sometimes, architects are
anxious to make a wrong
decision or don‘t have the
courage to enforce a
decision
Experience tells us to be
courageous. In most cases
is almost always better to
go the wrong way than
being stuck

Power stealing in India
Essence of Good Collaboration
Software Development is a collaborative game [Alistair
Cockburn]
Thus, communication skills are probably the most
important skills in software/system engineering
Hence:

NO!

YES!
Network of Communication
Leadership, Communication and Interaction with other roles in software
development, are probably the most time-intensive and most important
Other
responsibilities
Roles

?

Product line
Manager

Head of
R&D

Requirements Engineer

Software Project Manager –
in a meeting with the CEO

Software
Developer

Test Manager
Software
Architect
Be aware of Conway‘s Law
One important
consideration is
Conway‘s law:
“organizations which design
systems ... are constrained to
produce designs which are
copies of the communication
structures of these
organizations”

Corperate Spam
Complex
decision processes

Meeting Overkill
Unclear or overlapping
Responsibilities
Systems Engineering
In systems engineering the
architect needs to closely
cooperate with the systems
architect
Software Architects must
understand
the contribution of different
disciplines (Electronics, Mechatronics,
Software, ...) and their
„orchestration“,
the additional development phases
such as commissioning,
the pitfalls and traps (developing
software when the rest is only
partially available, relation of unit
costs and software architecture, ...).

Electrial Engineering
Project Manager

Systems engineer
Software Architect
Stay Up-To-Date
Up-ToTechnologies & methods appear and evolve very
frequently
Consequently, architects need to stay in sync with
relevant technologies and methods
„Architect always implements“
Active Networking
Mutual Architecture Assessments
Attending events such as Conferences
Collecting & digesting news in (practioner) magazines, web sites
Clouds
Sustainability
Mobile Devices,
...
The other Side of the Coin Working as an Architect
... can be extremely
exhausting,
even dangerous.
Ten Reasons not to be an Architect*
1.

The gene pool that is your social life will not have a lot of diversity

2.

The pay and benefits are not as good as they could be

3.

The hours you work are long and under-valued

4.

Your ideals don’t really matter

5.

If your ideals are important to you, you will lose work

6.

Not all architects have fun jobs

7.

The systems you use will depress you

8.

You will live with terrible decisions

9.

Architecture requires a lot of work and dedication

10.

You probably won’t be a designer

Interestingly this is what building architects think
* source: http://www.lifeofanarchitect.com/top-ten-reasons-not-to-be-an-architect/
Avoid Design Hell
How to create a bad architect
Ingredients:
Spaghetti Design
Design Erosion
Architecture Drift
Design Flaw
UML
Failure,
New Requirements
....
If you are still not terrified ...
How can you systematically achieve or
increase architecture skills?
Let us take the long & dangerous
Route to Architect‘s Paradise
Step 1: Profiling
Develop a set of skills,
knowledge and experience you
need as an architect (in your
organization)
Compare your current profile
with this target profile
Don‘t do this alone but ask
other colleagues and roles to
give you feedback about your
current profile and their
expectations
Step 2: Reflection
Elaborate and prioritize your
gaps
Or as they say in the London
Underground: Mind the gap!
Make a detailed and
prioritized plan how to
systematically fill these gaps,
e.g. by
certifications
seminars
books, web casts
coaches, mentors
opportunities to practice
...
Step 3: Doing
Perform the
aforementioned steps
In our fast moving
industry this process
should be repeated
regularly
In addition, active
networking with other
architects is highly
recommended
Piecemeal Growth
The gaps might be
terrifying, but don‘t
panic!
Be patient and improve
step by step, the same
way your architectures
should be created
Your education as an
architect will never end,
since methods and
technologies evolve
quickly
Mission Accomplished
Be relaxed: You‘ll eventually become a cool
architect, ... if you start early enough
Architects Certification
Development of company-internal
education program
Benefits:
customized for specific needs
continuous improvement
not limited to architecture (may also teach in
testing, business, …)
Liabilities:
requires large cost

Certification by 3rd party organisations
such as iSAQB, IASA, CMU Software
Engineering Institute
Benefits:
usually less expensive
Liabilities:
more „generic“ to suit all kinds of participants
Architecture & Design only
different trainings lead to education patchwork

Hybrid approach (Best-of-Breed)
use option 1, but fill gaps with option 2
(Best-of-Breed)
Example:
Example: Siemens Education
Programs for (Senior) Architects
Introduced in 2007
Main Constituents of Senior Architects
Program
Proposal of Candidates by Sector CEOs
Interviews with each Candidate =>
Acceptance
4 Workshops with 2-3 month breaks
Certification Gates after each workshop
Candidates work on topics (optional) and
homework (mandatory) within their actual
project (no toy projects!)
Education areas: Architecture, Business &
Strategy, Requirements/Product Line
Engineering, Testing & Quality, Soft Skills

Network of Siemens Architects who
meet regularly and work jointly on
important topics
So far, excellent feedback and high
acceptance in Top Management

Content not carved in
stone. Feedback of
participants helps improve
and evolve the material
continuously
Learning from Failure
Senior Architect Certification @
Siemens
Goal: share good practices, be aware of pitfalls and
eliminate the potential for failure in software
development at Siemens!

© SIEMENS AG
Workshop 1: Establish Architecture
Vision

© SIEMENS AG
Workshop 2: Realize Architecture

© SIEMENS AG
Workshop 3: Sustain Architecture

© SIEMENS AG
Don‘t ignore Work Life Balance
If you want to be
successful, balance work &
life
This aspect is commonly
underestimated
In my experience
architects with work
overload cause more
harm than good.
Exhausted, unfocused
architects are a common
root of design flaws
Summary
Becoming and being a good architect is
a continuous and sometimes hard
process, not a one-way street
Architects need expertise, skills and
knowledge - not only in Engineering
but also in Communication, Testing,
Requirements Engineering, Business &
Strategy, ...
Architecting is also about decision
making and learning from failure
If not reviewed regularly, design flaws
will erode the architecture. Thus,
Test/Risk-Driven-Design, Architecture
Assessments, Refactoring should
considered mandatory
Reflect continuously about the
capabilities you need and where you
should increase or improve your
knowledge

Stairway to Heaven (for
Software Architects)
The End

Source: starush, flickr.com
Just kidding
This is the real Happy End

Weitere ähnliche Inhalte

Was ist angesagt?

Distinguishing Analysis from Design
Distinguishing Analysis from DesignDistinguishing Analysis from Design
Distinguishing Analysis from DesignStephen Frezza
 
Concepts in engineering design
Concepts in engineering designConcepts in engineering design
Concepts in engineering designMITS Gwalior
 
Infographic - Pragmatic Technical Debt Management
Infographic - Pragmatic Technical Debt ManagementInfographic - Pragmatic Technical Debt Management
Infographic - Pragmatic Technical Debt ManagementTushar Sharma
 
Introduction to Engineering Design
Introduction to Engineering DesignIntroduction to Engineering Design
Introduction to Engineering DesignMANJUNATH N
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st CenturyHenry Jacob
 
What is a chief technology officer(cto)
What is a chief technology officer(cto)What is a chief technology officer(cto)
What is a chief technology officer(cto)Metricoid Technology
 
Technical Debt
Technical DebtTechnical Debt
Technical DebtGary Short
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 1 Introduction
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 1 IntroductionArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 1 Introduction
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 1 IntroductionGalala University
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013lokori
 
Architecture fundamentals
Architecture fundamentalsArchitecture fundamentals
Architecture fundamentalsReda Hmeid MBCS
 
Post mortem report
Post mortem reportPost mortem report
Post mortem reportKuaci Pedas
 
Ch 4 CED (Concept in Engineering Design)
Ch 4 CED (Concept in Engineering Design)Ch 4 CED (Concept in Engineering Design)
Ch 4 CED (Concept in Engineering Design)Prem Kumar Soni
 
Agile Architecture (MAE slides with speaker notes)
Agile Architecture (MAE slides with speaker notes)Agile Architecture (MAE slides with speaker notes)
Agile Architecture (MAE slides with speaker notes)Richard Green
 
Contextually-Driven System Architecture Reviews
Contextually-Driven System Architecture ReviewsContextually-Driven System Architecture Reviews
Contextually-Driven System Architecture ReviewsTechWell
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design HeuristicsRebecca Wirfs-Brock
 

Was ist angesagt? (20)

Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Distinguishing Analysis from Design
Distinguishing Analysis from DesignDistinguishing Analysis from Design
Distinguishing Analysis from Design
 
Concepts in engineering design
Concepts in engineering designConcepts in engineering design
Concepts in engineering design
 
Infographic - Pragmatic Technical Debt Management
Infographic - Pragmatic Technical Debt ManagementInfographic - Pragmatic Technical Debt Management
Infographic - Pragmatic Technical Debt Management
 
Introduction to Engineering Design
Introduction to Engineering DesignIntroduction to Engineering Design
Introduction to Engineering Design
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
What is a chief technology officer(cto)
What is a chief technology officer(cto)What is a chief technology officer(cto)
What is a chief technology officer(cto)
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 1 Introduction
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 1 IntroductionArchitectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 1 Introduction
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 1 Introduction
 
Jeffrey's career presentation
Jeffrey's career presentationJeffrey's career presentation
Jeffrey's career presentation
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013
 
Architecture fundamentals
Architecture fundamentalsArchitecture fundamentals
Architecture fundamentals
 
Post mortem report
Post mortem reportPost mortem report
Post mortem report
 
Engineering design process
Engineering design processEngineering design process
Engineering design process
 
Ch 4 CED (Concept in Engineering Design)
Ch 4 CED (Concept in Engineering Design)Ch 4 CED (Concept in Engineering Design)
Ch 4 CED (Concept in Engineering Design)
 
Agile Architecture (MAE slides with speaker notes)
Agile Architecture (MAE slides with speaker notes)Agile Architecture (MAE slides with speaker notes)
Agile Architecture (MAE slides with speaker notes)
 
Contextually-Driven System Architecture Reviews
Contextually-Driven System Architecture ReviewsContextually-Driven System Architecture Reviews
Contextually-Driven System Architecture Reviews
 
CESESA2016_BDelicado
CESESA2016_BDelicadoCESESA2016_BDelicado
CESESA2016_BDelicado
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design Heuristics
 
Engineering design Process
Engineering design ProcessEngineering design Process
Engineering design Process
 

Ähnlich wie Oop 2014 sw architekt v3

27 people roles_and_teams
27 people roles_and_teams27 people roles_and_teams
27 people roles_and_teamsMajong DevJfu
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?Òscar Vilaplana
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
Solution architecture
Solution architectureSolution architecture
Solution architectureiasaglobal
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Developing High Performing Architecture Teams
Developing High Performing Architecture Teams Developing High Performing Architecture Teams
Developing High Performing Architecture Teams sallybean
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
Architectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleArchitectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleDaljit Banger
 
Wanna Be An Architect?
Wanna Be An  Architect?Wanna Be An  Architect?
Wanna Be An Architect?Henry Jacob
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex ProjectsBorys Lebeda
 
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
76 May  2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx76 May  2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docxevonnehoggarth79783
 
You're the Engineer! Think Big!
You're the Engineer! Think Big!You're the Engineer! Think Big!
You're the Engineer! Think Big!Fatih Karatana
 
1996 Enterprise Architecture Praxis Presenation @ ZIFA
1996 Enterprise Architecture Praxis Presenation @ ZIFA1996 Enterprise Architecture Praxis Presenation @ ZIFA
1996 Enterprise Architecture Praxis Presenation @ ZIFABrian K. Seitz
 
EAC2013 presentation: A Cookbook for Smart EA Practices
EAC2013 presentation: A Cookbook for Smart EA PracticesEAC2013 presentation: A Cookbook for Smart EA Practices
EAC2013 presentation: A Cookbook for Smart EA PracticesRik Farenhorst
 

Ähnlich wie Oop 2014 sw architekt v3 (20)

27 people roles_and_teams
27 people roles_and_teams27 people roles_and_teams
27 people roles_and_teams
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?
 
01 the big_idea
01 the big_idea01 the big_idea
01 the big_idea
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
Solution architecture
Solution architectureSolution architecture
Solution architecture
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Developing High Performing Architecture Teams
Developing High Performing Architecture Teams Developing High Performing Architecture Teams
Developing High Performing Architecture Teams
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Architectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project LifecycleArchitectural Engagement Through the Project Lifecycle
Architectural Engagement Through the Project Lifecycle
 
Wanna Be An Architect?
Wanna Be An  Architect?Wanna Be An  Architect?
Wanna Be An Architect?
 
L22 Architecture and Agile
L22 Architecture and AgileL22 Architecture and Agile
L22 Architecture and Agile
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex Projects
 
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
76 May  2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx76 May  2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
 
You're the Engineer! Think Big!
You're the Engineer! Think Big!You're the Engineer! Think Big!
You're the Engineer! Think Big!
 
1996 Enterprise Architecture Praxis Presenation @ ZIFA
1996 Enterprise Architecture Praxis Presenation @ ZIFA1996 Enterprise Architecture Praxis Presenation @ ZIFA
1996 Enterprise Architecture Praxis Presenation @ ZIFA
 
EAC2013 presentation: A Cookbook for Smart EA Practices
EAC2013 presentation: A Cookbook for Smart EA PracticesEAC2013 presentation: A Cookbook for Smart EA Practices
EAC2013 presentation: A Cookbook for Smart EA Practices
 

Mehr von Michael Stal

Oop2018 tutorial-stal-mo2-io t-arduino-en
Oop2018 tutorial-stal-mo2-io t-arduino-enOop2018 tutorial-stal-mo2-io t-arduino-en
Oop2018 tutorial-stal-mo2-io t-arduino-enMichael Stal
 
Oop 2014 embedded systems with open source hardware v2
Oop 2014 embedded systems with open source hardware v2Oop 2014 embedded systems with open source hardware v2
Oop 2014 embedded systems with open source hardware v2Michael Stal
 
Qcon2011 functions rockpresentation_f_sharp
Qcon2011 functions rockpresentation_f_sharpQcon2011 functions rockpresentation_f_sharp
Qcon2011 functions rockpresentation_f_sharpMichael Stal
 
Qcon2011 functions rockpresentation_f_sharp
Qcon2011 functions rockpresentation_f_sharpQcon2011 functions rockpresentation_f_sharp
Qcon2011 functions rockpresentation_f_sharpMichael Stal
 
Qcon2011 functions rockpresentation_scala
Qcon2011 functions rockpresentation_scalaQcon2011 functions rockpresentation_scala
Qcon2011 functions rockpresentation_scalaMichael Stal
 
Oop2011 actor presentation_stal
Oop2011 actor presentation_stalOop2011 actor presentation_stal
Oop2011 actor presentation_stalMichael Stal
 
Accu2010 archrefactoring
Accu2010 archrefactoringAccu2010 archrefactoring
Accu2010 archrefactoringMichael Stal
 
Oop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalOop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalMichael Stal
 

Mehr von Michael Stal (8)

Oop2018 tutorial-stal-mo2-io t-arduino-en
Oop2018 tutorial-stal-mo2-io t-arduino-enOop2018 tutorial-stal-mo2-io t-arduino-en
Oop2018 tutorial-stal-mo2-io t-arduino-en
 
Oop 2014 embedded systems with open source hardware v2
Oop 2014 embedded systems with open source hardware v2Oop 2014 embedded systems with open source hardware v2
Oop 2014 embedded systems with open source hardware v2
 
Qcon2011 functions rockpresentation_f_sharp
Qcon2011 functions rockpresentation_f_sharpQcon2011 functions rockpresentation_f_sharp
Qcon2011 functions rockpresentation_f_sharp
 
Qcon2011 functions rockpresentation_f_sharp
Qcon2011 functions rockpresentation_f_sharpQcon2011 functions rockpresentation_f_sharp
Qcon2011 functions rockpresentation_f_sharp
 
Qcon2011 functions rockpresentation_scala
Qcon2011 functions rockpresentation_scalaQcon2011 functions rockpresentation_scala
Qcon2011 functions rockpresentation_scala
 
Oop2011 actor presentation_stal
Oop2011 actor presentation_stalOop2011 actor presentation_stal
Oop2011 actor presentation_stal
 
Accu2010 archrefactoring
Accu2010 archrefactoringAccu2010 archrefactoring
Accu2010 archrefactoring
 
Oop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalOop2010 Scala Presentation Stal
Oop2010 Scala Presentation Stal
 

Oop 2014 sw architekt v3

  • 1. Everything You Always Wanted to Know About Software Architects* but Were Afraid to Ask © 2014, Prof. Dr. Michael Stal
  • 2. Why do we need Architects? „We use an agile process where architecture is built by community“ „Architecture is being created in one small design step“ „Our application is so small; architecture design is a waste of resources“ „We always use the same reference architecture“ Get rid of the architectural chains and get rid of architects Houdini
  • 3. Because Architecture is the Backbone of any System Architecture design comprises the whole lifecycle Architects have many responsibilities that are not related to design Almost all design-bycommunity efforts result in bad products (see Frederick P. Brooks‘ The Design of Design) Architecting and implementation need different sets of skills Architectural flaws cause substantial costs and risks (i.e., accidental complexity as opposed to inherent complexity)
  • 4. Becoming an Architect seems to be incredibly easy Just read the right books ... and obtain some mathematical skills
  • 5. Just shift your Shape Some Miracle Developer Architect
  • 6. Birth of Architects In some organizations architects are those who have the label „Architect“ (on their business card)
  • 7. Birth of Architects (cont‘d) cont‘d) Some other organizations may use sophisticated questionaires
  • 8. Birth of Architects (cont‘d) cont‘d) Advanced organizations may even have a job profile ... ... that is insufficient (e.g. RUP)
  • 9. Design errors may cause expensive and lethal failures Architecture as the backbone of all systems: Tacoma Narrows Bridge (1940) collapsed due to neglecting resonance forces Radiation Therapy System Therac-25: lack of quality and software failure caused 3 deaths Architectures with lack of quality are doomed to fail Architecture design should happen in a planned and systematic way, not ad-hoc Skilled & experienced architects needed across the whole product lifecycle, not just in one short project phase
  • 10. Lousy Architects create lousy Architectures ... Tower of Pisa: structural engineering did not work very well Intempo Skyscaper, Spain: Architects forgot elevators between 21st and 47th level – Maybe for health reasons Airport BER: No compliance with safety regulations led to a very large delay
  • 11. ... and Lousy Architectures cause Disasters „Even God himself could not sink this ship“ Challenger Disaster caused by bad rocket booster design Ariane 5 explosion due to overflow exception
  • 12. And all of this reduces Customer Happiness
  • 13. How can we find good Architects? Only with the help of wizards? Or by chasing this rare species in its habitats? Architects in quest for good design Or by assigning the role to some unfortunate developers? Architecture as the Holy Grail
  • 14. Architects Habitat - Theory What we want:
  • 15. Architects Habitat - Practice What we often get:
  • 16. Failure has many Roots We can‘t forbid failure, but we can enforce learning from failure! Cemetery for past/passed projects
  • 17. Real Architects need Skills, Knowledge & Experience Requirements Engineering Software Architect
  • 18. Responsibilities and Involvements of Architects (c) Siemens AG
  • 19. Architecture & Design Skills Architects need deep knowledge and skills such as: Development Processes Architecture Design and Implementation incl. Scoping, Modelling, Prototyping Architecture Evolution & Improvement Product Line & Platform Engineering Architecture Assessment + CQM Assessment of Internal Architecture Quality System and Application Integration Relevant Technologies, Methods and Tools Relevant Best Practices (e.g., Design Tactics, Patterns & Architecture Styles) Usability & Habitability Project management skills are optional but very useful (e.g. for effort planning)
  • 20. Knowledge of Business and Strategy To help achieve business goals and make projects succeed it is necessary for architects to know: Business Strategy of own organization Product Roadmap Technology Roadmaps Vendor Management Target Markets & Customers Legal Issues, Patents, Licensing Standards and Regulations (i.e., TÜV, DIN, FDA, …) Product Line & Platform Engineering Otherwise, they cannot make appropriate design decisions
  • 21. Requirements Engineering Skills Architects must know the domain(s) (i.e. problem domain and solution domain) They need to understand requirements, assess their quality, feasibility & sufficiency, and give feedback Prioritization is typically conducted by business AND architects
  • 22. Testing & Quality Skills Architects need in-breadth knowledge about Test Plans Test Methods Flavors of testing (integration tests, system tests, component tests, acceptance tests, load tests, …) … and in-depth knowledge about Design for Testability TDD Test Strategies
  • 23. Soft Skills … are essential for architects, e.g.: Stakeholder-specific communication (Giving and receiving) feedback, Mentoring Listening Conflict resolution Understanding different personalities Leading and convincing others without line function Typically, Architects are leaders without power. Their only means is to convince with arguments
  • 24. Cooperation, not Confrontation Architecture design requires many contributors: testers, customers, developers, product managers, ... Architecture is the result of joint work Joint work requires close and effective cooperation The day, when the architect died
  • 25. Domain Knowledge It is important for architects to understand the relevant domains: Solution Domain: important concepts, technologies, methods, tools, trends, ... Problem Domain: Domainspecific concepts, standards, regulations, markets, products, competitors, trends, ... They should know essential aspects in-depth, other aspects in-breadth
  • 26. Experiences in Software Engineering Architects of small systems should have at least 3 years experience as software engineer experience as a key developer or subsystem architect For mission-critical Systems at least 6 years experience as software/systems engineer 3 years experience as architect in small to medium projects
  • 27. Uncertainty Principle Architects are facing the Uncertainty Principle in their daily work. They must be able to deal with uncertainty.
  • 28. Architecture Process Not-iterative, nonincremental development process models don‘t work for strategic and tactical design We require a risk-driven and test-driven feedback loop to address uncertainty Architecture must be built using piecemeal growth even within more „traditional“ processes
  • 29. Activities of an Architect Architecting does not only involve creation of architectures but also: Monitoring the development process by CQM (Code quality Management) tools Reviewing architectures Improving and extending architectures Conducting Architecture Archeology You need to foster architectures as if they were your children
  • 30. Unchartered Territories No technology is a panacea – you can even loose all of the benefits by bad design We cannot predict how new and innovative, sometimes disruptive technologies will influence the architecture (e.g. quality attributes) This is even worse for the combination of technologies, and is usually not addressed very well Architects should leverage feasibility prototypes, at least for the most crucial qualities Methods for Architecture Assessment are applicable as well Some Prototypes
  • 31. Tip of the Iceberg There are many forces architects have to balance E.g., architects are actually facing additional nontechnical and nonarchitectural responsibilities and involvements All the rest Design
  • 32. Decision Making Architecting is about decision making and risk mitigation Sometimes, architects are anxious to make a wrong decision or don‘t have the courage to enforce a decision Experience tells us to be courageous. In most cases is almost always better to go the wrong way than being stuck Power stealing in India
  • 33. Essence of Good Collaboration Software Development is a collaborative game [Alistair Cockburn] Thus, communication skills are probably the most important skills in software/system engineering Hence: NO! YES!
  • 34. Network of Communication Leadership, Communication and Interaction with other roles in software development, are probably the most time-intensive and most important Other responsibilities Roles ? Product line Manager Head of R&D Requirements Engineer Software Project Manager – in a meeting with the CEO Software Developer Test Manager Software Architect
  • 35. Be aware of Conway‘s Law One important consideration is Conway‘s law: “organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” Corperate Spam Complex decision processes Meeting Overkill Unclear or overlapping Responsibilities
  • 36. Systems Engineering In systems engineering the architect needs to closely cooperate with the systems architect Software Architects must understand the contribution of different disciplines (Electronics, Mechatronics, Software, ...) and their „orchestration“, the additional development phases such as commissioning, the pitfalls and traps (developing software when the rest is only partially available, relation of unit costs and software architecture, ...). Electrial Engineering Project Manager Systems engineer Software Architect
  • 37. Stay Up-To-Date Up-ToTechnologies & methods appear and evolve very frequently Consequently, architects need to stay in sync with relevant technologies and methods „Architect always implements“ Active Networking Mutual Architecture Assessments Attending events such as Conferences Collecting & digesting news in (practioner) magazines, web sites Clouds Sustainability Mobile Devices, ...
  • 38. The other Side of the Coin Working as an Architect ... can be extremely exhausting, even dangerous.
  • 39. Ten Reasons not to be an Architect* 1. The gene pool that is your social life will not have a lot of diversity 2. The pay and benefits are not as good as they could be 3. The hours you work are long and under-valued 4. Your ideals don’t really matter 5. If your ideals are important to you, you will lose work 6. Not all architects have fun jobs 7. The systems you use will depress you 8. You will live with terrible decisions 9. Architecture requires a lot of work and dedication 10. You probably won’t be a designer Interestingly this is what building architects think * source: http://www.lifeofanarchitect.com/top-ten-reasons-not-to-be-an-architect/
  • 40. Avoid Design Hell How to create a bad architect Ingredients: Spaghetti Design Design Erosion Architecture Drift Design Flaw UML Failure, New Requirements ....
  • 41. If you are still not terrified ... How can you systematically achieve or increase architecture skills?
  • 42. Let us take the long & dangerous Route to Architect‘s Paradise
  • 43. Step 1: Profiling Develop a set of skills, knowledge and experience you need as an architect (in your organization) Compare your current profile with this target profile Don‘t do this alone but ask other colleagues and roles to give you feedback about your current profile and their expectations
  • 44. Step 2: Reflection Elaborate and prioritize your gaps Or as they say in the London Underground: Mind the gap! Make a detailed and prioritized plan how to systematically fill these gaps, e.g. by certifications seminars books, web casts coaches, mentors opportunities to practice ...
  • 45. Step 3: Doing Perform the aforementioned steps In our fast moving industry this process should be repeated regularly In addition, active networking with other architects is highly recommended
  • 46. Piecemeal Growth The gaps might be terrifying, but don‘t panic! Be patient and improve step by step, the same way your architectures should be created Your education as an architect will never end, since methods and technologies evolve quickly
  • 47. Mission Accomplished Be relaxed: You‘ll eventually become a cool architect, ... if you start early enough
  • 48. Architects Certification Development of company-internal education program Benefits: customized for specific needs continuous improvement not limited to architecture (may also teach in testing, business, …) Liabilities: requires large cost Certification by 3rd party organisations such as iSAQB, IASA, CMU Software Engineering Institute Benefits: usually less expensive Liabilities: more „generic“ to suit all kinds of participants Architecture & Design only different trainings lead to education patchwork Hybrid approach (Best-of-Breed) use option 1, but fill gaps with option 2 (Best-of-Breed)
  • 49. Example: Example: Siemens Education Programs for (Senior) Architects Introduced in 2007 Main Constituents of Senior Architects Program Proposal of Candidates by Sector CEOs Interviews with each Candidate => Acceptance 4 Workshops with 2-3 month breaks Certification Gates after each workshop Candidates work on topics (optional) and homework (mandatory) within their actual project (no toy projects!) Education areas: Architecture, Business & Strategy, Requirements/Product Line Engineering, Testing & Quality, Soft Skills Network of Siemens Architects who meet regularly and work jointly on important topics So far, excellent feedback and high acceptance in Top Management Content not carved in stone. Feedback of participants helps improve and evolve the material continuously
  • 51. Senior Architect Certification @ Siemens Goal: share good practices, be aware of pitfalls and eliminate the potential for failure in software development at Siemens! © SIEMENS AG
  • 52. Workshop 1: Establish Architecture Vision © SIEMENS AG
  • 53. Workshop 2: Realize Architecture © SIEMENS AG
  • 54. Workshop 3: Sustain Architecture © SIEMENS AG
  • 55. Don‘t ignore Work Life Balance If you want to be successful, balance work & life This aspect is commonly underestimated In my experience architects with work overload cause more harm than good. Exhausted, unfocused architects are a common root of design flaws
  • 56. Summary Becoming and being a good architect is a continuous and sometimes hard process, not a one-way street Architects need expertise, skills and knowledge - not only in Engineering but also in Communication, Testing, Requirements Engineering, Business & Strategy, ... Architecting is also about decision making and learning from failure If not reviewed regularly, design flaws will erode the architecture. Thus, Test/Risk-Driven-Design, Architecture Assessments, Refactoring should considered mandatory Reflect continuously about the capabilities you need and where you should increase or improve your knowledge Stairway to Heaven (for Software Architects)
  • 58. Just kidding This is the real Happy End