SlideShare a Scribd company logo
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

PDF
Software architect - roles & responsabilities
PPTX
Software architecture introduction
PPTX
Reducing Technical Debt
PDF
Software architecture for developers by Simon Brown
PDF
Agile archiecture iltam 2014
PPT
01 the big_idea
PPTX
Software Architecture: introduction to the abstraction
PPTX
ADUF - Adaptable Design Up Front
Software architect - roles & responsabilities
Software architecture introduction
Reducing Technical Debt
Software architecture for developers by Simon Brown
Agile archiecture iltam 2014
01 the big_idea
Software Architecture: introduction to the abstraction
ADUF - Adaptable Design Up Front

What's hot (20)

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

Similar to What a Good Software Architect Does (20)

PDF
10 Hinweise für Architekten
PDF
Ten Advices for Architects
DOCX
Software architecture Unit 1 notes
PPT
Importance of Software architecture
PDF
O.Savchenko FWDays workshop Software Architecture
PPTX
Introduction to Software architecture and design.pptx
PDF
Software archiecture lecture03
PPTX
Software Architecture and Design CS.pptx
PPTX
1 introduction to sa
DOC
PDF
01 Introduction to SDA 2.pdf software architecture
PPTX
PPT
Architectural Thinking - What Is Architecture?
PDF
Software architecture
PPTX
Architecture Design
PPTX
NISI Agile Software Architecture Slide Deck
PDF
Understanding-the-Role-of-Software-Architecture-in-Modern-Development.pdf
PPTX
Software Architecture Introduction
PDF
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
PPTX
02 Architecture Business Cycle.pptx software
10 Hinweise für Architekten
Ten Advices for Architects
Software architecture Unit 1 notes
Importance of Software architecture
O.Savchenko FWDays workshop Software Architecture
Introduction to Software architecture and design.pptx
Software archiecture lecture03
Software Architecture and Design CS.pptx
1 introduction to sa
01 Introduction to SDA 2.pdf software architecture
Architectural Thinking - What Is Architecture?
Software architecture
Architecture Design
NISI Agile Software Architecture Slide Deck
Understanding-the-Role-of-Software-Architecture-in-Modern-Development.pdf
Software Architecture Introduction
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
02 Architecture Business Cycle.pptx software
Ad

More from Eberhard Wolff (20)

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

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Electronic commerce courselecture one. Pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Cloud computing and distributed systems.
PDF
Encapsulation theory and applications.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
NewMind AI Weekly Chronicles - August'25 Week I
The Rise and Fall of 3GPP – Time for a Sabbatical?
Diabetes mellitus diagnosis method based random forest with bat algorithm
Understanding_Digital_Forensics_Presentation.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Modernizing your data center with Dell and AMD
Advanced methodologies resolving dimensionality complications for autism neur...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A Presentation on Artificial Intelligence
Electronic commerce courselecture one. Pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Cloud computing and distributed systems.
Encapsulation theory and applications.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Dropbox Q2 2025 Financial Results & Investor Presentation
“AI and Expert System Decision Support & Business Intelligence Systems”
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

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