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

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
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
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
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
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

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?