SlideShare a Scribd company logo
1 of 40
Download to read offline
Was tut ein guter Software Architekt?
     Eberhard Wolff

     Architecture and Technology Manager
     adesso AG




29.03.12
About Me
►    Eberhard Wolff
►    Architecture & Technology Manager at adesso
►    adesso is a leading IT consultancy in the German speaking region
►    Speaker
►    Author


►    Responsible for the Architect Training Program at adesso AG


►    Blog: http://ewolff.com
►    Twitter: @ewolff
►    http://www.slideshare.net/ewolff
►    eberhard.wolff@adesso.de




29.03.12       Was tut ein guter Software Architekt?
Software Architect


           Software architect is a general term
           with many accepted definitions
           which refers to a broad range of roles.
                   Not really well defined…




29.03.12      Was tut ein guter Software Architekt?
Software Architecture: Definition 1

           The software architecture are those

                                               decisions

                                                   that are

                                       hard to change
                                                              Martin Fowler



29.03.12   Was tut ein guter Software Architekt?
Decisions: A Close Look
►    Architect makes decision that are hard to change


►    Architect is responsible
►    Architect takes responsibility


►    Is responsible for the commercial success
     >  Wrong decisions hard to revise
     >  i.e. effort and costs must be considered


►    Do you know the Business Value of your project?
►    Do you know the stakeholders and their agenda?
►    How do your decisions match that?




29.03.12        Was tut ein guter Software Architekt?
Decide based on business value
           Know the business value!




29.03.12              Was tut ein guter Software Architekt?
Technology Decision
►    Which technologies and approaches will you use?
►    Important part of architecture


►    Need to know technologies and when to use what
►    I.e. broad knowledge – don’t get lost in details
►    But you should know some basic technologies by heart
►    It helps to have an interest in technologies


►    Must not like technologies as an ends in itself
►    …but as a tool
►    Does it help to solve the problem?
►    Does it actually make my life easier?




29.03.12        Was tut ein guter Software Architekt?
Guideline: Mechanical Sympathy

                    Most amazing achievement of
                    software industry:
                    Continuing cancellation of the steady
                    and staggering gains in hardware



                                                   Best F1 drivers:
                                                   Enough understanding how
                                                   a machine works so they
                                                   can work in harmony
29.03.12   Was tut ein guter Software Architekt?
Technology Decision: Multi Dimensional
►    Quality of the technology itself
     >  Performance
     >  Productivity
►    But the technology perspective might not be enough
     >  Skills
     >  Open Source License
     >  License costs and other costs
     >  Strategic decisions
     >  Operations


►    Need to take all into account
►    But: Decision can be challenged more often than you think
►    Prepare your case!
►    Often people are happy to get some advice


29.03.12        Was tut ein guter Software Architekt?
Decisions = Trade Off
►    Each option has advantages and drawbacks
►    …in each dimension


►    So any decision will be a trade off


►    You won’t find the perfect match


►    So if it’s not perfect – relax
►    It’s just too many dimensions


►    Half done software might be good enough
►    …and even have a better time-to-market




29.03.12        Was tut ein guter Software Architekt?
Technologies are just a tool and a trade-off.
           Know the technology options and the dimensions
           of technology decisions!




29.03.12               Was tut ein guter Software Architekt?
Software Architecture: Definition 2

The software architecture of a system is the set of
                    structures
needed to reason about it, which comprise
               software elements,
           relations among them, and
                properties of both.




29.03.12   Was tut ein guter Software Architekt?
Software Architecture: Definition 2

The software architecture of a system is the set of
                    structures
needed to reason about it, which comprise
               software elements,
           relations among them, and
                properties of both.
What does that
actually mean?
29.03.12   Was tut ein guter Software Architekt?
Architecture
►    Elements
     >  Method, classes, packages, JARs / WARs / EARs
     >  Diagrams and PowerPoint are just helpers
     >  …and might be disconnected from reality
►    Relations
     >  Dependencies i.e. usage
     >  Well ordered
     >  No excessive dependencies


►    No excessively big elements
►    No cyclic dependencies
     – they effectively make two elements one
►    Do you manage your dependencies?
►    What do you do about big elements?



29.03.12       Was tut ein guter Software Architekt?
An Example
►    This is actual code from a
     large and well known
     Open Source project


►    Dependency matrix


►    Everything in red is part
     of a cycle
Dependency Graph
►    Overview
►    One large cycle
Dependency	
  
Graph	
  


 ►    Just a small part
 ►    Red line show circular
      references
Architectural Debt
►    Hard to solve if it has reached this state


►    Consider managing it from the start


►    …or you are looking at a significant
     restructuring


►    Much more than Refactoring!




29.03.12        Was tut ein guter Software Architekt?
Consider a tool
►    Overall view on dependencies not obvious in IDE
►    Without a tool structure is quite likely a mess


►    Some tools:
     >  JDepend


     >  Structure 101
     >  Restructure 101


     >  Sonargraph


►    Sonar is not enough




29.03.12        Was tut ein guter Software Architekt?
Manage dependencies and size of elements –
           ideally from the start – because that is the
           architecture!
           You will need a tool!




29.03.12               Was tut ein guter Software Architekt?
Software Architecture: Why We Care

                                                        Performance


                                                         Availability


                                                         Productivity
            Software
           Architecture
                                                        Maintainability
   Structures
   Software elements
                                                           Security
   Relations
   Properties
                                                         Operations
29.03.12        Was tut ein guter Software Architekt?
Software Architecture: Why We Care



   Influences
                                                        Performance


                                                         Availability


 non-functional
            Software
           Architecture
                                                         Productivity




requirements &
                                                        Maintainability
   Structures
   Software elements
                                                           Security
   Relations


     quality
   Properties

29.03.12        Was tut ein guter Software Architekt?
                                                         Operations
Software Architect: Traditional Role
►    Manager
►    Responsibility: non-functional requirements / quality
►    Tool: Define and enforce architecture


►    Functional requirements covered by
     requirements process
►    Functional requirements influence
     the architecture




29.03.12       Was tut ein guter Software Architekt?
Traditional View on Architect’s Responsebilities
►    Define the architecture
►    Enforce the architecture
►    i.e. create frameworks
►    Not necessarily any coding
►    Code reviews (maybe)


►    Assumptions
     >  Separation of labor
     >  Developers must be “controlled”


►    Does that still work in today’s
     world?




29.03.12        Was tut ein guter Software Architekt?
Issues in the Real World
►    Ivory tower architecture


►    Architecture does not fit the domain


►    Architecture is not in the code
►    The documented architecture is different
     from the real architecture


►    Developers don’t feel their feedback is
     listened to


►    Either architecture is ignored
►    …or project results in a failure




29.03.12        Was tut ein guter Software Architekt?
Agile Development i.e. Scrum



Where is
                    Scrum Master
                  Removes obstacles
                    Enforces rules




   the
Architect                          Stories




    ?
      Product                                               Team
      Owner                                            Self-organizing
   Creates stories                                   Implements stories

29.03.12     Was tut ein guter Software Architekt?
Team
►    Is self organizing
►    An architect might / will emerge
►    …but is not planned for


►    Benefit:
     >  Responsibility is shared
     >  i.e. not just the architect cares


►    If the architecture / architect is not helpful, it / he will be ignored
►    Less damage in the end


►    Architect will see his ideas directly in action
►    Better feedback
►    Needs trust and collaboration

29.03.12        Was tut ein guter Software Architekt?
Architect as a Manager
►    Limited tools to influence team
►    Actually that is very common for managers
►    A team cannot be lead against its will


►    Need to listen to other team members
►    … and stake holders




29.03.12       Was tut ein guter Software Architekt?
New Challenges for Architects


           Role                                                Creating an Architecture
           ►    Needs to collaborate with other team           ►    Stories defined during the project
                members
                                                               ►    Not all requirements known at the start
           ►    …and make himself useful                       ►    No Big Design Upfront possible


           ►    Supports and trusts other team members         ►    Architecture needs to emerge
                                                               ►    Architecture must be constantly redefined
           ►    Leads by experience
           ►    …not by title                                  ►    More focus on code
                                                               ►    Code is the reliable source for the current
                                                                    architecture and state of the project




29.03.12               Was tut ein guter Software Architekt?
Architect is a team member – need to collaborate
           and listen!




29.03.12               Was tut ein guter Software Architekt?
Quality
►    Not all parts of a system will have the
     same quality
►    Not all team members are equally skilled


►    The compromise on the quality can
     happen “by chance”
►    …or you can steer it


►    Identify core domains
     >  The ones that add the most value
     >  i.e. have a good business reason


►    Might want to isolate those
►    …and focus on them


29.03.12        Was tut ein guter Software Architekt?
Broken Windows Theory
►    Once windows are not repaired…
►    …vandals will break more
►    …break into the building
►    …


►    Accepting compromises on quality is risky
►    …but if you strive for ultimate quality
     everywhere, you will fail


►    In particular with legacy software




29.03.12        Was tut ein guter Software Architekt?
Domain Driven Design
►    “Tackling Complexity in the
     Heart of Software”


►    E.g. Ubiquitous Language
     for Code, Developers and
     Customers




29.03.12       Was tut ein guter Software Architekt?
Strategic Domain Driven Design
►    Bounded Context:
     Model used only in a specific
     part of the system


►    Context Map:
     Translate models from
     different parts of the system


►    Anti-Corruption Layer:
     Make sure the core domain is
     not corrupted




29.03.12        Was tut ein guter Software Architekt?
More Responsibilities for Architects
►    Define the Core Domain


►    Ensure that the Core Domain will be implemented properly
►    …and won’t be compromised


►    I.e. manage the overall quality


►    Needs detailed domain knowledge
►    Need to understand business case




29.03.12       Was tut ein guter Software Architekt?
Quality will differ in the individual parts –
           Your choice is only to manage it or let it happen!




29.03.12                Was tut ein guter Software Architekt?
►    http://lemmings.mytrash.tv/
You Must Not Be a Lemming!
►    No matter what others say
►    Take it as an advice
►    Come to your own conclusion
►    …and work on them.


►    It is you project
►    It is your decision
►    It is your responsibility


►    If you can’t come to your own conclusion you are probably not a good architect




29.03.12        Was tut ein guter Software Architekt?
►    Decide based on business value!
►    Know the business value!


►    Technologies: just a tool and trade-off
►    Know technology options and the dimensions of
     technology decisions!


►    Architect is a team member – need to collaborate
     and listen!


►    Manage architecture = dependencies and size of
     elements


►    Quality will differ in the individual parts –
     Your choice is only to manage it or let it happen!
Wir suchen Sie als
Ø    Software-Architekt (m/w)
Ø    Projektleiter (m/w)
Ø    Senior Software Engineer (m/w)




  jobs@adesso.de
  www.AAAjobs.de

More Related Content

What's hot

A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guide
Triet Ho
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
Majong DevJfu
 

What's hot (20)

The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design Decisions
 
The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guide
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Software design
Software designSoftware design
Software design
 
Agile Open 2009 Tdd And Architecture Influences
Agile Open 2009   Tdd And Architecture InfluencesAgile Open 2009   Tdd And Architecture Influences
Agile Open 2009 Tdd And Architecture Influences
 
Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive Systems
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
 
No silver bullet
No silver bulletNo silver bullet
No silver bullet
 
No silver-bullllet-1
No silver-bullllet-1No silver-bullllet-1
No silver-bullllet-1
 
No silver bullet summary (paper)
No silver bullet summary (paper)No silver bullet summary (paper)
No silver bullet summary (paper)
 
No silver bullet essence and accidents of software engineering
No silver bullet essence and accidents of software engineeringNo silver bullet essence and accidents of software engineering
No silver bullet essence and accidents of software engineering
 
Adaptable Designs for Agile Software Development
Adaptable Designs for Agile  Software DevelopmentAdaptable Designs for Agile  Software Development
Adaptable Designs for Agile Software Development
 

Similar to What a Good Software Architect Does

Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Oop 2014 sw architekt v3
Oop 2014 sw architekt v3
Michael Stal
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
Henry Jacob
 
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
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
Uwe Friedrichsen
 
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
evonnehoggarth79783
 

Similar to What a Good Software Architect Does (20)

Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Oop 2014 sw architekt v3
Oop 2014 sw architekt v3
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
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)
 
How to Speak the Language of Application Architecture
How to Speak the Language of Application ArchitectureHow to Speak the Language of Application Architecture
How to Speak the Language of Application Architecture
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle,
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
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
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 

More from Eberhard Wolff

More from Eberhard Wolff (20)

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and Alternatives
 
Beyond Microservices
Beyond MicroservicesBeyond Microservices
Beyond Microservices
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous Delivery
 
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncFour Times Microservices - REST, Kubernetes, UI Integration, Async
Four Times Microservices - REST, Kubernetes, UI Integration, Async
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with Java
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for Microservices
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=Maintainability
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for Innovation
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with Java
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support Agile
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale Agile
 
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsMicroservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 

What a Good Software Architect Does

  • 1. Was tut ein guter Software Architekt? Eberhard Wolff Architecture and Technology Manager adesso AG 29.03.12
  • 2. About Me ►  Eberhard Wolff ►  Architecture & Technology Manager at adesso ►  adesso is a leading IT consultancy in the German speaking region ►  Speaker ►  Author ►  Responsible for the Architect Training Program at adesso AG ►  Blog: http://ewolff.com ►  Twitter: @ewolff ►  http://www.slideshare.net/ewolff ►  eberhard.wolff@adesso.de 29.03.12 Was tut ein guter Software Architekt?
  • 3. Software Architect Software architect is a general term with many accepted definitions which refers to a broad range of roles. Not really well defined… 29.03.12 Was tut ein guter Software Architekt?
  • 4. Software Architecture: Definition 1 The software architecture are those decisions that are hard to change Martin Fowler 29.03.12 Was tut ein guter Software Architekt?
  • 5. Decisions: A Close Look ►  Architect makes decision that are hard to change ►  Architect is responsible ►  Architect takes responsibility ►  Is responsible for the commercial success >  Wrong decisions hard to revise >  i.e. effort and costs must be considered ►  Do you know the Business Value of your project? ►  Do you know the stakeholders and their agenda? ►  How do your decisions match that? 29.03.12 Was tut ein guter Software Architekt?
  • 6. Decide based on business value Know the business value! 29.03.12 Was tut ein guter Software Architekt?
  • 7. Technology Decision ►  Which technologies and approaches will you use? ►  Important part of architecture ►  Need to know technologies and when to use what ►  I.e. broad knowledge – don’t get lost in details ►  But you should know some basic technologies by heart ►  It helps to have an interest in technologies ►  Must not like technologies as an ends in itself ►  …but as a tool ►  Does it help to solve the problem? ►  Does it actually make my life easier? 29.03.12 Was tut ein guter Software Architekt?
  • 8. Guideline: Mechanical Sympathy Most amazing achievement of software industry: Continuing cancellation of the steady and staggering gains in hardware Best F1 drivers: Enough understanding how a machine works so they can work in harmony 29.03.12 Was tut ein guter Software Architekt?
  • 9. Technology Decision: Multi Dimensional ►  Quality of the technology itself >  Performance >  Productivity ►  But the technology perspective might not be enough >  Skills >  Open Source License >  License costs and other costs >  Strategic decisions >  Operations ►  Need to take all into account ►  But: Decision can be challenged more often than you think ►  Prepare your case! ►  Often people are happy to get some advice 29.03.12 Was tut ein guter Software Architekt?
  • 10. Decisions = Trade Off ►  Each option has advantages and drawbacks ►  …in each dimension ►  So any decision will be a trade off ►  You won’t find the perfect match ►  So if it’s not perfect – relax ►  It’s just too many dimensions ►  Half done software might be good enough ►  …and even have a better time-to-market 29.03.12 Was tut ein guter Software Architekt?
  • 11. Technologies are just a tool and a trade-off. Know the technology options and the dimensions of technology decisions! 29.03.12 Was tut ein guter Software Architekt?
  • 12. Software Architecture: Definition 2 The software architecture of a system is the set of structures needed to reason about it, which comprise software elements, relations among them, and properties of both. 29.03.12 Was tut ein guter Software Architekt?
  • 13. Software Architecture: Definition 2 The software architecture of a system is the set of structures needed to reason about it, which comprise software elements, relations among them, and properties of both. What does that actually mean? 29.03.12 Was tut ein guter Software Architekt?
  • 14. Architecture ►  Elements >  Method, classes, packages, JARs / WARs / EARs >  Diagrams and PowerPoint are just helpers >  …and might be disconnected from reality ►  Relations >  Dependencies i.e. usage >  Well ordered >  No excessive dependencies ►  No excessively big elements ►  No cyclic dependencies – they effectively make two elements one ►  Do you manage your dependencies? ►  What do you do about big elements? 29.03.12 Was tut ein guter Software Architekt?
  • 15. An Example ►  This is actual code from a large and well known Open Source project ►  Dependency matrix ►  Everything in red is part of a cycle
  • 16. Dependency Graph ►  Overview ►  One large cycle
  • 17. Dependency   Graph   ►  Just a small part ►  Red line show circular references
  • 18. Architectural Debt ►  Hard to solve if it has reached this state ►  Consider managing it from the start ►  …or you are looking at a significant restructuring ►  Much more than Refactoring! 29.03.12 Was tut ein guter Software Architekt?
  • 19. Consider a tool ►  Overall view on dependencies not obvious in IDE ►  Without a tool structure is quite likely a mess ►  Some tools: >  JDepend >  Structure 101 >  Restructure 101 >  Sonargraph ►  Sonar is not enough 29.03.12 Was tut ein guter Software Architekt?
  • 20. Manage dependencies and size of elements – ideally from the start – because that is the architecture! You will need a tool! 29.03.12 Was tut ein guter Software Architekt?
  • 21. Software Architecture: Why We Care Performance Availability Productivity Software Architecture Maintainability Structures Software elements Security Relations Properties Operations 29.03.12 Was tut ein guter Software Architekt?
  • 22. Software Architecture: Why We Care Influences Performance Availability non-functional Software Architecture Productivity requirements & Maintainability Structures Software elements Security Relations quality Properties 29.03.12 Was tut ein guter Software Architekt? Operations
  • 23. Software Architect: Traditional Role ►  Manager ►  Responsibility: non-functional requirements / quality ►  Tool: Define and enforce architecture ►  Functional requirements covered by requirements process ►  Functional requirements influence the architecture 29.03.12 Was tut ein guter Software Architekt?
  • 24. Traditional View on Architect’s Responsebilities ►  Define the architecture ►  Enforce the architecture ►  i.e. create frameworks ►  Not necessarily any coding ►  Code reviews (maybe) ►  Assumptions >  Separation of labor >  Developers must be “controlled” ►  Does that still work in today’s world? 29.03.12 Was tut ein guter Software Architekt?
  • 25. Issues in the Real World ►  Ivory tower architecture ►  Architecture does not fit the domain ►  Architecture is not in the code ►  The documented architecture is different from the real architecture ►  Developers don’t feel their feedback is listened to ►  Either architecture is ignored ►  …or project results in a failure 29.03.12 Was tut ein guter Software Architekt?
  • 26. Agile Development i.e. Scrum Where is Scrum Master Removes obstacles Enforces rules the Architect Stories ? Product Team Owner Self-organizing Creates stories Implements stories 29.03.12 Was tut ein guter Software Architekt?
  • 27. Team ►  Is self organizing ►  An architect might / will emerge ►  …but is not planned for ►  Benefit: >  Responsibility is shared >  i.e. not just the architect cares ►  If the architecture / architect is not helpful, it / he will be ignored ►  Less damage in the end ►  Architect will see his ideas directly in action ►  Better feedback ►  Needs trust and collaboration 29.03.12 Was tut ein guter Software Architekt?
  • 28. Architect as a Manager ►  Limited tools to influence team ►  Actually that is very common for managers ►  A team cannot be lead against its will ►  Need to listen to other team members ►  … and stake holders 29.03.12 Was tut ein guter Software Architekt?
  • 29. New Challenges for Architects Role Creating an Architecture ►  Needs to collaborate with other team ►  Stories defined during the project members ►  Not all requirements known at the start ►  …and make himself useful ►  No Big Design Upfront possible ►  Supports and trusts other team members ►  Architecture needs to emerge ►  Architecture must be constantly redefined ►  Leads by experience ►  …not by title ►  More focus on code ►  Code is the reliable source for the current architecture and state of the project 29.03.12 Was tut ein guter Software Architekt?
  • 30. Architect is a team member – need to collaborate and listen! 29.03.12 Was tut ein guter Software Architekt?
  • 31. Quality ►  Not all parts of a system will have the same quality ►  Not all team members are equally skilled ►  The compromise on the quality can happen “by chance” ►  …or you can steer it ►  Identify core domains >  The ones that add the most value >  i.e. have a good business reason ►  Might want to isolate those ►  …and focus on them 29.03.12 Was tut ein guter Software Architekt?
  • 32. Broken Windows Theory ►  Once windows are not repaired… ►  …vandals will break more ►  …break into the building ►  … ►  Accepting compromises on quality is risky ►  …but if you strive for ultimate quality everywhere, you will fail ►  In particular with legacy software 29.03.12 Was tut ein guter Software Architekt?
  • 33. Domain Driven Design ►  “Tackling Complexity in the Heart of Software” ►  E.g. Ubiquitous Language for Code, Developers and Customers 29.03.12 Was tut ein guter Software Architekt?
  • 34. Strategic Domain Driven Design ►  Bounded Context: Model used only in a specific part of the system ►  Context Map: Translate models from different parts of the system ►  Anti-Corruption Layer: Make sure the core domain is not corrupted 29.03.12 Was tut ein guter Software Architekt?
  • 35. More Responsibilities for Architects ►  Define the Core Domain ►  Ensure that the Core Domain will be implemented properly ►  …and won’t be compromised ►  I.e. manage the overall quality ►  Needs detailed domain knowledge ►  Need to understand business case 29.03.12 Was tut ein guter Software Architekt?
  • 36. Quality will differ in the individual parts – Your choice is only to manage it or let it happen! 29.03.12 Was tut ein guter Software Architekt?
  • 37. ►  http://lemmings.mytrash.tv/
  • 38. You Must Not Be a Lemming! ►  No matter what others say ►  Take it as an advice ►  Come to your own conclusion ►  …and work on them. ►  It is you project ►  It is your decision ►  It is your responsibility ►  If you can’t come to your own conclusion you are probably not a good architect 29.03.12 Was tut ein guter Software Architekt?
  • 39. ►  Decide based on business value! ►  Know the business value! ►  Technologies: just a tool and trade-off ►  Know technology options and the dimensions of technology decisions! ►  Architect is a team member – need to collaborate and listen! ►  Manage architecture = dependencies and size of elements ►  Quality will differ in the individual parts – Your choice is only to manage it or let it happen!
  • 40. Wir suchen Sie als Ø  Software-Architekt (m/w) Ø  Projektleiter (m/w) Ø  Senior Software Engineer (m/w) jobs@adesso.de www.AAAjobs.de