SlideShare a Scribd company logo
1 of 29
Download to read offline
What Does It Really Mean to Be an Architect?
     Eberhard Wolff

     Architecture and Technology Manager
     adesso AG




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


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




               Eberhard Wolff: What Does It Really Mean to Be an Architect?
Software Architect


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




         Eberhard Wolff: What Does It Really Mean to Be an Architect?
Software Architecture

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.




 (Won’t be talking about Enterprise Architecture)
         Eberhard Wolff: What Does It Really Mean to Be an Architect?
Software Architecture: Why We Care



    Defines
                                                                            Performance


                                                                                Availability


 non-functional
            Software
           Architecture
                                                                                Productivity




requirements &
                                                                           Maintainability
   Structures
   Software elements
                                                                                 Security
   Relations


    quality
   Properties

13.09.11     5   Eberhard Wolff: What Does It Really Mean to Be an Architect?
                                                                                Operations
Software Architect: Responsibilities
►    Manager
►    Responsibility: non-functional requirements / quality
►    Tool: Define and enforce architecture


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




13.09.11   6   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Traditional View on Architect’s Role
►    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?




13.09.11   7    Eberhard Wolff: What Does It Really Mean to Be an Architect?
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




13.09.11   8    Eberhard Wolff: What Does It Really Mean to Be an Architect?
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

13.09.11   9   Eberhard Wolff: What Does It Really Mean to Be an Architect?
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

13.09.11    10   Eberhard Wolff: What Does It Really Mean to Be an Architect?
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




13.09.11          11   Eberhard Wolff: What Does It Really Mean to Be an Architect?
New Skills For Architects
►    Even more communication
►    Convince, not enforce


►    Must listen to other team members
►    …and use their experience and knowledge


►    Must have excellent technical skills


►    Must not think about architecture as stable
►    i.e. must be able to change plans and adapt




13.09.11   12   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Traditional Architect as a Metaphor

An architect is a person
trained in the planning,
design and oversight of the
construction of buildings.




13.09.11   13   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Is “Architect” a Good Metaphor?
►    Buildings are physical entities
     >  Hard to change


►    Construction industry is established
►    …and has a long history


►    Buildings can be fully specified
►    Specification
►    Software can’t (see Agility)


►    Clear separation: Architect vs. construction
     worker
►    Common for a Software Architect to be a former
     developer
►    …or even doing some coding

13.09.11   14   Eberhard Wolff: What Does It Really Mean to Be an Architect?
A New Way to Think About Creating Software

                 1999                                                          2001




13.09.11   15   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Software Craftsmanship Manifesto (2009)
►    As aspiring Software Craftsmen we are raising the bar of professional software
     development by practicing it and helping others learn the craft. Through this work
     we have come to value:


►    Not only working software,
     >  but also well-crafted software
►    Not only responding to change,
     >  but also steadily adding value
►    Not only individuals and interactions,
     >  but also a community of professionals
►    Not only customer collaboration,
     >  but also productive partnerships




13.09.11   16   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Software Craftsmanship
►    Quality, even perfection


►    Work with code


►    Apprenticeship / collaboration


►    Smaller barriers between team members




13.09.11   17   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Architect as a Master Craftsman
►    More experienced
►    Knows the tools very well
►    Guides and helps others
►    Incorporates feedback
►    Improves the craft
►    Quality


►    Will work on code
►    But knows the bigger picture of
     the project


►    Education and work on the
     project at hand




13.09.11   18   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Architect’s Experience
►    Bigger “Vocabulary”
     >  Architecture patterns
     >  Basic approaches
     >  Frameworks, languages etc.


►    Thinks in trade offs
     >  Knows the alternatives
     >  There is no black and white


►    Knows what is going on in the project
     >  Code quality
     >  Current issues


►    Knows how to get software into production



13.09.11   19   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Code vs. Architecture
►    Ultimately, code is the deliverable


►    Architecture must be expressed in the
     code
►    If the architecture is not in the code, the
     architect failed


►    It makes sense to focus on code
►    …and see whether the architecture is
     really implemented


►    Of course architecture and its
     documentation are important to reach the
     project goal!




13.09.11    20   Eberhard Wolff: What Does It Really Mean to Be an Architect?
What Is Wrong About Craftsmanship?
►    The software is at the center
►    It fails to mention what the software is created
     for
►    Most software has a clear business goal
►    At the end customers have to be happy


►    Quality and how it is created must serve this
     goal
►    Software is not a goal in itself




►    http://dannorth.net/
     2011/01/11/programming-is-not-a-craft/




13.09.11    21   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Responsibilities Again
►    Non-functional requirements /
     quality
     >  Performance
     >  Availability
     >  Productivity
     >  Maintainability
     >  Security
     >  Operation readiness


►    The architecture will create a
     compromise between these goals


►    E.g. seemingly half finished
     software might be enough
►    Even though it is not well-crafted
►    See agility
13.09.11   22      Eberhard Wolff: What Does It Really Mean to Be an Architect?
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


13.09.11   23   Eberhard Wolff: What Does It Really Mean to Be an Architect?
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




13.09.11   24   Eberhard Wolff: What Does It Really Mean to Be an Architect?
Domain Driven Design
►    “Tackling Complexity in the
     Heart of Software”


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




13.09.11   25   Eberhard Wolff: What Does It Really Mean to Be an Architect?
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




13.09.11   26   Eberhard Wolff: What Does It Really Mean to Be an Architect?
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




13.09.11   27   Eberhard Wolff: What Does It Really Mean to Be an Architect?
So:
           What Does It Really Mean to Be an Architect?




13.09.11
 28
Architect
►    Cares about non-functional requirements
►    Used to be clearly separated from developers


►    Cannot lead “by title”
     >  In particular in self-organizing teams
     >  Will be ignored
     >  …or create a failure
►    Communication, giving and accepting feedback


►    Craftsmanship might be a better metaphor
     >  Apprenticeship and learning
     >  More focus on code
►    Vocabulary (pattern, typical architectural approaches) important
►    Strategic design – quality where it matters


                Eberhard Wolff: What Does It Really Mean to Be an Architect?

More Related Content

Viewers also liked

Sewing tools and equipment
Sewing tools and equipmentSewing tools and equipment
Sewing tools and equipmentRhealyn Amante
 
Psychology 102: Social processes, society & culture
Psychology 102: Social processes, society & culturePsychology 102: Social processes, society & culture
Psychology 102: Social processes, society & cultureJames Neill
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architectllangit
 
Bearing capacity of soil
Bearing capacity of soilBearing capacity of soil
Bearing capacity of soilPraveen S.K
 
Bearing capacity of Soil
Bearing capacity of SoilBearing capacity of Soil
Bearing capacity of SoilPirpasha Ujede
 
Advanced material of construction..ppt24545452
Advanced material of construction..ppt24545452Advanced material of construction..ppt24545452
Advanced material of construction..ppt24545452SHUBHAM DABHADE
 
Soil Bearing Capacity and Case study of Black Cotton Soil
Soil Bearing Capacity and Case study of Black Cotton SoilSoil Bearing Capacity and Case study of Black Cotton Soil
Soil Bearing Capacity and Case study of Black Cotton SoilPraveen S.K
 
Building Failures and its Causes- Theory of structures
Building Failures and its Causes- Theory of structuresBuilding Failures and its Causes- Theory of structures
Building Failures and its Causes- Theory of structuresRithika Ravishankar
 

Viewers also liked (10)

Sewing tools and equipment
Sewing tools and equipmentSewing tools and equipment
Sewing tools and equipment
 
Psychology 102: Social processes, society & culture
Psychology 102: Social processes, society & culturePsychology 102: Social processes, society & culture
Psychology 102: Social processes, society & culture
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architect
 
Bearing capacity of soil
Bearing capacity of soilBearing capacity of soil
Bearing capacity of soil
 
Bearing capacity of Soil
Bearing capacity of SoilBearing capacity of Soil
Bearing capacity of Soil
 
Advanced material of construction..ppt24545452
Advanced material of construction..ppt24545452Advanced material of construction..ppt24545452
Advanced material of construction..ppt24545452
 
Steel structures
Steel structuresSteel structures
Steel structures
 
Report on flooring
Report on flooringReport on flooring
Report on flooring
 
Soil Bearing Capacity and Case study of Black Cotton Soil
Soil Bearing Capacity and Case study of Black Cotton SoilSoil Bearing Capacity and Case study of Black Cotton Soil
Soil Bearing Capacity and Case study of Black Cotton Soil
 
Building Failures and its Causes- Theory of structures
Building Failures and its Causes- Theory of structuresBuilding Failures and its Causes- Theory of structures
Building Failures and its Causes- Theory of structures
 

Similar to What Does It Mean to Be a Software Architect

Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideEberhard Wolff
 
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds Collideadesso AG
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect DoesEberhard Wolff
 
The Language of Application Architecture
The Language of Application ArchitectureThe Language of Application Architecture
The Language of Application ArchitectureBrad Beiermann
 
Efficient Code Organisation
Efficient Code OrganisationEfficient Code Organisation
Efficient Code OrganisationSqueed
 
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 ArchitectureBrad Beiermann
 
Hithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyHithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyglefur
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
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
 
Architecture In An Agile World
Architecture In An Agile WorldArchitecture In An Agile World
Architecture In An Agile WorldJames Cooper
 
Software is not a Building - Designing Technical Architecture for Change
Software is not a Building - Designing Technical Architecture for ChangeSoftware is not a Building - Designing Technical Architecture for Change
Software is not a Building - Designing Technical Architecture for ChangeCantina
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptkhalidnawaz39
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxssuser0ed5b4
 
Developing Commercial APEX Applications
Developing Commercial APEX ApplicationsDeveloping Commercial APEX Applications
Developing Commercial APEX ApplicationsEnkitec
 
Continuous Integration: a real win-win for developers
Continuous Integration: a real win-win for developersContinuous Integration: a real win-win for developers
Continuous Integration: a real win-win for developersDavide Benvegnù
 

Similar to What Does It Mean to Be a Software Architect (20)

Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
 
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect Does
 
The Language of Application Architecture
The Language of Application ArchitectureThe Language of Application Architecture
The Language of Application Architecture
 
Efficient Code Organisation
Efficient Code OrganisationEfficient Code Organisation
Efficient Code Organisation
 
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
 
01 the big_idea
01 the big_idea01 the big_idea
01 the big_idea
 
Hithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyHithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxy
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
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)
 
Architecture In An Agile World
Architecture In An Agile WorldArchitecture In An Agile World
Architecture In An Agile World
 
Software is not a Building - Designing Technical Architecture for Change
Software is not a Building - Designing Technical Architecture for ChangeSoftware is not a Building - Designing Technical Architecture for Change
Software is not a Building - Designing Technical Architecture for Change
 
No silver bullet
No silver bulletNo silver bullet
No silver bullet
 
VI-241: Innovation with Deltek Vision
VI-241: Innovation with Deltek VisionVI-241: Innovation with Deltek Vision
VI-241: Innovation with Deltek Vision
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.ppt
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptx
 
Developing Commercial APEX Applications
Developing Commercial APEX ApplicationsDeveloping Commercial APEX Applications
Developing Commercial APEX Applications
 
Continuous Integration: a real win-win for developers
Continuous Integration: a real win-win for developersContinuous Integration: a real win-win for developers
Continuous Integration: a real win-win for developers
 

More from Eberhard Wolff

Architectures and Alternatives
Architectures and AlternativesArchitectures and Alternatives
Architectures and AlternativesEberhard Wolff
 
The Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryThe Frontiers of Continuous Delivery
The Frontiers of Continuous DeliveryEberhard Wolff
 
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, AsyncEberhard Wolff
 
Microservices - not just with Java
Microservices - not just with JavaMicroservices - not just with Java
Microservices - not just with JavaEberhard Wolff
 
Deployment - Done Right!
Deployment - Done Right!Deployment - Done Right!
Deployment - Done Right!Eberhard Wolff
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for MicroservicesEberhard Wolff
 
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 MicroservicesEberhard Wolff
 
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 AgileEberhard Wolff
 
How Small Can Java Microservices Be?
How Small Can Java Microservices Be?How Small Can Java Microservices Be?
How Small Can Java Microservices Be?Eberhard Wolff
 
Data Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesData Architecturen Not Just for Microservices
Data Architecturen Not Just for MicroservicesEberhard Wolff
 
Microservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityMicroservices: Redundancy=Maintainability
Microservices: Redundancy=MaintainabilityEberhard Wolff
 
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 MicroservicesEberhard Wolff
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology StackEberhard Wolff
 
Software Architecture for Innovation
Software Architecture for InnovationSoftware Architecture for Innovation
Software Architecture for InnovationEberhard Wolff
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryEberhard Wolff
 
Nanoservices and Microservices with Java
Nanoservices and Microservices with JavaNanoservices and Microservices with Java
Nanoservices and Microservices with JavaEberhard Wolff
 
Microservices: Architecture to Support Agile
Microservices: Architecture to Support AgileMicroservices: Architecture to Support Agile
Microservices: Architecture to Support AgileEberhard Wolff
 
Microservices: Architecture to scale Agile
Microservices: Architecture to scale AgileMicroservices: Architecture to scale Agile
Microservices: Architecture to scale AgileEberhard Wolff
 
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 BuzzwordsEberhard 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

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

What Does It Mean to Be a Software Architect

  • 1. What Does It Really Mean to Be an Architect? Eberhard Wolff Architecture and Technology Manager adesso AG 13.09.11
  • 2. About Me ►  Eberhard Wolff ►  Architecture & Technology Manager at adesso ►  adesso is a leading IT consultancy in the German speaking region ►  Speaker ►  Author ►  Blog: http://ewolff.com ►  Twitter: @ewolff ►  http://www.slideshare.net/ewolff ►  eberhard.wolff@adesso.de Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 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… Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 4. Software Architecture 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. (Won’t be talking about Enterprise Architecture) Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 5. Software Architecture: Why We Care Defines Performance Availability non-functional Software Architecture Productivity requirements & Maintainability Structures Software elements Security Relations quality Properties 13.09.11 5 Eberhard Wolff: What Does It Really Mean to Be an Architect? Operations
  • 6. Software Architect: Responsibilities ►  Manager ►  Responsibility: non-functional requirements / quality ►  Tool: Define and enforce architecture ►  Functional requirements covered by requirements process ►  Functional requirements influence the architecture 13.09.11 6 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 7. Traditional View on Architect’s Role ►  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? 13.09.11 7 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 8. 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 13.09.11 8 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 9. 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 13.09.11 9 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 10. 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 13.09.11 10 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 11. 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 13.09.11 11 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 12. New Skills For Architects ►  Even more communication ►  Convince, not enforce ►  Must listen to other team members ►  …and use their experience and knowledge ►  Must have excellent technical skills ►  Must not think about architecture as stable ►  i.e. must be able to change plans and adapt 13.09.11 12 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 13. Traditional Architect as a Metaphor An architect is a person trained in the planning, design and oversight of the construction of buildings. 13.09.11 13 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 14. Is “Architect” a Good Metaphor? ►  Buildings are physical entities >  Hard to change ►  Construction industry is established ►  …and has a long history ►  Buildings can be fully specified ►  Specification ►  Software can’t (see Agility) ►  Clear separation: Architect vs. construction worker ►  Common for a Software Architect to be a former developer ►  …or even doing some coding 13.09.11 14 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 15. A New Way to Think About Creating Software 1999 2001 13.09.11 15 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 16. Software Craftsmanship Manifesto (2009) ►  As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value: ►  Not only working software, >  but also well-crafted software ►  Not only responding to change, >  but also steadily adding value ►  Not only individuals and interactions, >  but also a community of professionals ►  Not only customer collaboration, >  but also productive partnerships 13.09.11 16 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 17. Software Craftsmanship ►  Quality, even perfection ►  Work with code ►  Apprenticeship / collaboration ►  Smaller barriers between team members 13.09.11 17 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 18. Architect as a Master Craftsman ►  More experienced ►  Knows the tools very well ►  Guides and helps others ►  Incorporates feedback ►  Improves the craft ►  Quality ►  Will work on code ►  But knows the bigger picture of the project ►  Education and work on the project at hand 13.09.11 18 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 19. Architect’s Experience ►  Bigger “Vocabulary” >  Architecture patterns >  Basic approaches >  Frameworks, languages etc. ►  Thinks in trade offs >  Knows the alternatives >  There is no black and white ►  Knows what is going on in the project >  Code quality >  Current issues ►  Knows how to get software into production 13.09.11 19 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 20. Code vs. Architecture ►  Ultimately, code is the deliverable ►  Architecture must be expressed in the code ►  If the architecture is not in the code, the architect failed ►  It makes sense to focus on code ►  …and see whether the architecture is really implemented ►  Of course architecture and its documentation are important to reach the project goal! 13.09.11 20 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 21. What Is Wrong About Craftsmanship? ►  The software is at the center ►  It fails to mention what the software is created for ►  Most software has a clear business goal ►  At the end customers have to be happy ►  Quality and how it is created must serve this goal ►  Software is not a goal in itself ►  http://dannorth.net/ 2011/01/11/programming-is-not-a-craft/ 13.09.11 21 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 22. Responsibilities Again ►  Non-functional requirements / quality >  Performance >  Availability >  Productivity >  Maintainability >  Security >  Operation readiness ►  The architecture will create a compromise between these goals ►  E.g. seemingly half finished software might be enough ►  Even though it is not well-crafted ►  See agility 13.09.11 22 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 23. 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 13.09.11 23 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 24. 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 13.09.11 24 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 25. Domain Driven Design ►  “Tackling Complexity in the Heart of Software” ►  E.g. Ubiquitous Language for Code, Developers and Customers 13.09.11 25 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 26. 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 13.09.11 26 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 27. 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 13.09.11 27 Eberhard Wolff: What Does It Really Mean to Be an Architect?
  • 28. So: What Does It Really Mean to Be an Architect? 13.09.11 28
  • 29. Architect ►  Cares about non-functional requirements ►  Used to be clearly separated from developers ►  Cannot lead “by title” >  In particular in self-organizing teams >  Will be ignored >  …or create a failure ►  Communication, giving and accepting feedback ►  Craftsmanship might be a better metaphor >  Apprenticeship and learning >  More focus on code ►  Vocabulary (pattern, typical architectural approaches) important ►  Strategic design – quality where it matters Eberhard Wolff: What Does It Really Mean to Be an Architect?