oop 2014 sw architekt v3

58
Everything You Always Wanted to Know Everything You Always Wanted to Know About About Software Architects* but Software Architects* but Were Were Afraid to Ask Afraid to Ask © 2014, Prof. Dr. Michael Stal

Upload: michael-stal

Post on 10-May-2015

354 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Oop 2014 sw architekt v3

Everything You Always Wanted to Know Everything You Always Wanted to Know About About Software Architects* but Software Architects* but Were Were Afraid to Ask Afraid to Ask

© 2014, Prof. Dr. Michael Stal

Page 2: Oop 2014 sw architekt v3

Why do we need Architects?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“

Houdini

Get rid of the architectural chains and

get rid of architects

Page 3: Oop 2014 sw architekt v3

Because Architecture is the Because Architecture is the Backbone of any SystemBackbone of any System

Architecture design comprises the whole lifecycleArchitects have many responsibilities that are not related to design Almost all design-by-community efforts result in bad products (see Frederick P. Brooks‘ The Design of Design)Architecting and implementation need different sets of skillsArchitectural flaws cause substantial costs and risks (i.e., accidental complexity as opposed to inherent complexity)

Page 4: Oop 2014 sw architekt v3

Becoming an Architect seems to be Becoming an Architect seems to be incredibly easyincredibly easy

Just read the right books ...and obtain some mathematical skills

Page 5: Oop 2014 sw architekt v3

Just shift your ShapeJust shift your Shape

Developer Architect

Some Miracle

Page 6: Oop 2014 sw architekt v3

BirthBirth ofof ArchitectsArchitects

In some organizations architects are those who have the label „Architect“ (on their business card)

Page 7: Oop 2014 sw architekt v3

BirthBirth ofof ArchitectsArchitects ((cont‘dcont‘d))

Some other organizations may use sophisticated questionaires

Page 8: Oop 2014 sw architekt v3

BirthBirth ofof ArchitectsArchitects ((cont‘dcont‘d))

Advanced organizations may even have a job profile ...

... that is insufficient (e.g. RUP)

Page 9: Oop 2014 sw architekt v3

Design Design errorserrors maymay causecause expensive expensive andand lethallethal failuresfailures

Architecture as the backbone of allsystems:

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

Tacoma Narrows Bridge (1940) collapsed due to neglectingresonance forces

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

Page 10: Oop 2014 sw architekt v3

Lousy Architects create lousy Lousy Architects create lousy Architectures ...Architectures ...

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

Tower of Pisa: structural engineering did not work very well

Airport BER: No compliance with safety regulations led to a

very large delay

Page 11: Oop 2014 sw architekt v3

... ... aand Lousy Architectures cause nd Lousy Architectures cause DisastersDisasters

„Even God himself could not sink this ship“

Challenger Disaster caused by bad rocket booster design

Ariane 5 explosion due to overflow exception

Page 12: Oop 2014 sw architekt v3

And all of this reduces Customer And all of this reduces Customer HappinessHappiness

Page 13: Oop 2014 sw architekt v3

HHow can we find good Architects?ow can we find good Architects?

Only with the help of wizards?

Or by chasing this rare species in its habitats?

Or by assigning the role to some unfortunate developers?

Architects in quest for good design

Architecture as the Holy Grail

Page 14: Oop 2014 sw architekt v3

Architects Habitat Architects Habitat -- TheoryTheory

What we want:

Page 15: Oop 2014 sw architekt v3

Architects Habitat Architects Habitat -- PracticePractice

What we often get:

Page 16: Oop 2014 sw architekt v3

Failure has many RootsFailure has many RootsWe can‘t forbid failure, but we can enforce learning from failure!

Cemetery for past/passed projects

Page 17: Oop 2014 sw architekt v3

Real Architects need Skills, Real Architects need Skills, Knowledge & ExperienceKnowledge & Experience

RequirementsEngineering

Software Architect

Page 18: Oop 2014 sw architekt v3

Responsibilities and Involvements of Responsibilities and Involvements of ArchitectsArchitects

(c) Siemens AG

Page 19: Oop 2014 sw architekt v3

ArchitectureArchitecture & Design Skills& Design SkillsArchitects 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)

Page 20: Oop 2014 sw architekt v3

Knowledge of Business and StrategyKnowledge of Business and StrategyTo help achieve business goals andmake projects succeed it isnecessary for architects to know:

Business Strategy of own organizationProduct RoadmapTechnology RoadmapsVendor ManagementTarget Markets & CustomersLegal Issues, Patents, Licensing Standards and Regulations (i.e., TÜV, DIN, FDA, …)Product Line & Platform Engineering

Otherwise, they cannot makeappropriate design decisions

Page 21: Oop 2014 sw architekt v3

RequirementsRequirements Engineering SkillsEngineering SkillsArchitects must know thedomain(s) (i.e. problemdomain and solutiondomain)They need to understand requirements, assess their quality, feasibility & sufficiency, and give feedbackPrioritization is typically conducted by business AND architects

Page 22: Oop 2014 sw architekt v3

Testing & Quality SkillsTesting & Quality SkillsArchitects need in-breadthknowledge about

Test PlansTest MethodsFlavors of testing (integrationtests, system tests, componenttests, acceptance tests, loadtests, …)

… and in-depth knowledgeabout

Design for TestabilityTDDTest Strategies

Page 23: Oop 2014 sw architekt v3

Soft SkillsSoft 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

Page 24: Oop 2014 sw architekt v3

Cooperation, not ConfrontationCooperation, not ConfrontationArchitecture design requires many contributors: testers, customers, developers, product managers, ...Architecture is the result of joint workJoint work requires close and effective cooperation

The day, when the architect died

Page 25: Oop 2014 sw architekt v3

Domain KnowledgeDomain KnowledgeIt is important for architects to understand the relevant domains:

Solution Domain: important concepts, technologies, methods, tools, trends, ...Problem Domain: Domain-specific concepts, standards, regulations, markets, products, competitors, trends, ...

They should know essential aspects in-depth, other aspects in-breadth

Page 26: Oop 2014 sw architekt v3

Experiences in Software EngineeringExperiences in Software EngineeringArchitects of small systems should have

at least 3 years experience as software engineer

experience as a key developer or subsystem architect

For mission-critical Systemsat least 6 years experience as software/systems engineer

3 years experience as architect in small to medium projects

Page 27: Oop 2014 sw architekt v3

Uncertainty PrincipleUncertainty PrincipleArchitects are facing the Uncertainty Principle in their daily work. They must be able to deal with uncertainty.

Page 28: Oop 2014 sw architekt v3

Architecture ProcessArchitecture ProcessNot-iterative, non-incremental development process models don‘t work for strategic and tactical designWe require a risk-driven and test-driven feedback loop to address uncertaintyArchitecture must be built using piecemeal growth -even within more „traditional“ processes

Page 29: Oop 2014 sw architekt v3

Activities of an ArchitectActivities of an ArchitectArchitecting does not only involve creation of architectures but also:

Monitoring the development process by CQM (Code quality Management) toolsReviewing architecturesImproving and extending architecturesConducting Architecture Archeology

You need to foster architectures as if they were your children

Page 30: Oop 2014 sw architekt v3

Unchartered TerritoriesUnchartered TerritoriesNo technology is a panacea – you can even loose all of the benefits by bad designWe 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 wellArchitects should leverage feasibility prototypes, at least for the most crucial qualitiesMethods for Architecture Assessment are applicable as well Some Prototypes

Page 31: Oop 2014 sw architekt v3

TipTip ofof thethe IcebergIcebergThere are many forces architects have to balanceE.g., architects are actually facing additional non-technical and non-architectural responsibilities and involvements

Design

All the rest

Page 32: Oop 2014 sw architekt v3

Decision MakingDecision MakingArchitecting is about decision making and risk mitigationSometimes, architects are anxious to make a wrong decision or don‘t have the courage to enforce a decisionExperience tells us to be courageous. In most cases is almost always better to go the wrong way than being stuck Power stealing in India

Page 33: Oop 2014 sw architekt v3

Essence of Good CollaborationEssence 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!

Page 34: Oop 2014 sw architekt v3

Network of CommunicationNetwork of CommunicationLeadership, Communication and Interaction with other roles in software development, are probably the most time-intensive and most important responsibilities

Software Project Manager –in a meeting with the CEO

SoftwareArchitect

Requirements Engineer

Test Manager

Software Developer

Other Roles ?

Product line Manager

Head of R&D

Page 35: Oop 2014 sw architekt v3

Be aware Be aware ofof Conway‘sConway‘s LawLawOne important consideration isConway‘s law:

“organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations”

Complex decision processes

Corperate Spam

Meeting Overkill

Unclear or overlapping Responsibilities

Page 36: Oop 2014 sw architekt v3

Systems EngineeringSystems EngineeringIn 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, ...).

Systems engineer

Software Architect

Electrial Engineering

Project Manager

Page 37: Oop 2014 sw architekt v3

Stay UpStay Up--ToTo--DateDateTechnologies & methods appear and evolve veryfrequentlyConsequently, architects need to stay in sync withrelevant technologies and methods

„Architect always implements“

Active Networking

Mutual Architecture Assessments

Attending events such as Conferences

Collecting & digesting news in (practioner) magazines, web sites

CloudsSustainabilityMobile Devices, ...

Page 38: Oop 2014 sw architekt v3

The The otherother Side Side ofof thethe CoinCoin --Working as an Working as an ArchitectArchitect

... can be extremely exhausting,even dangerous.

Page 39: Oop 2014 sw architekt v3

TenTen ReasonsReasons notnot to be an Architect*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

* source: http://www.lifeofanarchitect.com/top-ten-reasons-not-to-be-an-architect/

Interestingly this is what building architects think

Page 40: Oop 2014 sw architekt v3

Avoid Design HellAvoid Design Hell

How to create a bad architect

Ingredients:Spaghetti DesignDesign Erosion

Architecture DriftDesign Flaw

UMLFailure,

New Requirements....

Page 41: Oop 2014 sw architekt v3

If you are still not terrified ...If you are still not terrified ...

How can you systematically achieve or increase architecture skills?

Page 42: Oop 2014 sw architekt v3

Let us take the long & dangerous Let us take the long & dangerous Route to Architect‘s ParadiseRoute to Architect‘s Paradise

Page 43: Oop 2014 sw architekt v3

Step 1: ProfilingStep 1: ProfilingDevelop 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

Page 44: Oop 2014 sw architekt v3

Step 2: ReflectionStep 2: ReflectionElaborate 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

...

Page 45: Oop 2014 sw architekt v3

Step 3: DoingStep 3: DoingPerform the aforementioned stepsIn our fast moving industry this process should be repeated regularlyIn addition, active networking with other architects is highly recommended

Page 46: Oop 2014 sw architekt v3

Piecemeal GrowthPiecemeal GrowthThe gaps might be terrifying, but don‘tpanic!Be patient and improve step by step, the same way your architectures should be createdYour education as an architect will never end, since methods andtechnologies evolvequickly

Page 47: Oop 2014 sw architekt v3

Mission Accomplished Mission Accomplished

Be relaxed: You‘ll eventually become a cool architect, ... if you start early enough

Page 48: Oop 2014 sw architekt v3

ArchitectsArchitects CertificationCertificationDevelopment of company-internal education programBenefits:

customized for specific needscontinuous improvementnot limited to architecture (may also teach in testing, business, …)

Liabilities:requires large cost

Certification by 3rd party organisationssuch as iSAQB, IASA, CMU Software Engineering InstituteBenefits:

usually less expensiveLiabilities:

more „generic“ to suit all kinds of participantsArchitecture & Design onlydifferent trainings lead to education patchwork

Hybrid approach (Best-of-Breed)use option 1, but fill gaps with option 2 (Best-of-Breed)

Page 49: Oop 2014 sw architekt v3

ExampleExample: Siemens Education : Siemens Education Programs Programs forfor (Senior) (Senior) ArchitectsArchitects

Introduced in 2007Main Constituents of Senior ArchitectsProgram

Proposal of Candidates by Sector CEOs Interviews with each Candidate => Acceptance4 Workshops with 2-3 month breaksCertification Gates after each workshopCandidates work on topics (optional) andhomework (mandatory) within their actualproject (no toy projects!)Education areas: Architecture, Business & Strategy, Requirements/Product Line Engineering, Testing & Quality, Soft Skills

Network of Siemens Architects whomeet regularly and work jointly on important topicsSo far, excellent feedback and highacceptance in Top Management

Content not carved in stone. Feedback ofparticipants helps improveand evolve the material continuously

Page 50: Oop 2014 sw architekt v3

Learning Learning fromfrom FailureFailure

Page 51: Oop 2014 sw architekt v3

Senior Senior ArchitectArchitect CertificationCertification @ @ SiemensSiemens

Goal: share good practices, be aware of pitfalls and eliminate the potential for failure in software development at Siemens!

© SIEMENS AG

Page 52: Oop 2014 sw architekt v3

Workshop 1: Workshop 1: EstablishEstablish ArchitectureArchitectureVisionVision

© SIEMENS AG

Page 53: Oop 2014 sw architekt v3

Workshop 2: Workshop 2: RealizeRealize ArchitectureArchitecture

© SIEMENS AG

Page 54: Oop 2014 sw architekt v3

Workshop 3: Workshop 3: SustainSustain ArchitectureArchitecture

© SIEMENS AG

Page 55: Oop 2014 sw architekt v3

Don‘tDon‘t ignoreignore Work Life BalanceWork Life BalanceIf you want to be successful, balance work & lifeThis aspect is commonly underestimatedIn my experience architects with work overload cause more harm than good. Exhausted, unfocused architects are a common root of design flaws

Page 56: Oop 2014 sw architekt v3

SummarySummaryBecoming 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 failureIf not reviewed regularly, design flaws will erode the architecture. Thus, Test/Risk-Driven-Design, Architecture Assessments, Refactoring should considered mandatoryReflect continuously about the capabilities you need and where you should increase or improve your knowledge

Stairway to Heaven (for Software Architects)

Page 57: Oop 2014 sw architekt v3

The EndThe End

Source: starush, flickr.com

Page 58: Oop 2014 sw architekt v3

Just kiddingJust kidding

This is the real Happy End