SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Was tut ein guter Software Architekt?
     Eberhard Wolff

     Architecture and Technology Manager
     adesso AG




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


►    Responsible for the Architect Training Program at adesso AG


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




29.03.12       Was tut ein guter Software Architekt?
Software Architect


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




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

           The software architecture are those

                                               decisions

                                                   that are

                                       hard to change
                                                              Martin Fowler



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


►    Architect is responsible
►    Architect takes responsibility


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


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




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




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


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


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




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

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



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


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


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


►    So any decision will be a trade off


►    You won’t find the perfect match


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


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




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




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

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




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

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


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



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


►    Dependency matrix


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


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


►    Consider managing it from the start


►    …or you are looking at a significant
     restructuring


►    Much more than Refactoring!




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


►    Some tools:
     >  JDepend


     >  Structure 101
     >  Restructure 101


     >  Sonargraph


►    Sonar is not enough




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




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

                                                        Performance


                                                         Availability


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



   Influences
                                                        Performance


                                                         Availability


 non-functional
            Software
           Architecture
                                                         Productivity




requirements &
                                                        Maintainability
   Structures
   Software elements
                                                           Security
   Relations


     quality
   Properties

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


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




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


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


►    Does that still work in today’s
     world?




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


►    Architecture does not fit the domain


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


►    Developers don’t feel their feedback is
     listened to


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




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



Where is
                    Scrum Master
                  Removes obstacles
                    Enforces rules




   the
Architect                          Stories




    ?
      Product                                               Team
      Owner                                            Self-organizing
   Creates stories                                   Implements stories

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


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


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


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

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


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




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


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


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




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




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


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


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


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


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


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


►    In particular with legacy software




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


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




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


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


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




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


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


►    I.e. manage the overall quality


►    Needs detailed domain knowledge
►    Need to understand business case




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




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


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


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




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


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


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


►    Manage architecture = dependencies and size of
     elements


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




  jobs@adesso.de
  www.AAAjobs.de

Contenu connexe

Tendances

The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software ArchitectHayim Makabee
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersDan Douglas
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design DecisionsHenry Muccini
 
The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)Hayim Makabee
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Mozaic Works
 
A summary of software architecture guide
A summary of software architecture guideA summary of software architecture guide
A summary of software architecture guideTriet Ho
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownAvisi B.V.
 
Agile Open 2009 Tdd And Architecture Influences
Agile Open 2009   Tdd And Architecture InfluencesAgile Open 2009   Tdd And Architecture Influences
Agile Open 2009 Tdd And Architecture InfluencesGustavo Andres Brey
 
Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Marcello Thiry
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive SystemsTom Mueck
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design IntroductionUsman Khan
 
No silver-bullllet-1
No silver-bullllet-1No silver-bullllet-1
No silver-bullllet-1Maria Riaz
 
No silver bullet summary (paper)
No silver bullet summary (paper)No silver bullet summary (paper)
No silver bullet summary (paper)shakeel khan
 
No silver bullet essence and accidents of software engineering
No silver bullet essence and accidents of software engineeringNo silver bullet essence and accidents of software engineering
No silver bullet essence and accidents of software engineeringArun Banotra
 
Adaptable Designs for Agile Software Development
Adaptable Designs for Agile  Software DevelopmentAdaptable Designs for Agile  Software Development
Adaptable Designs for Agile Software DevelopmentHayim Makabee
 

Tendances (20)

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

Similaire à What a Good Software Architect Does

Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Michael Stal
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st CenturyHenry Jacob
 
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
 
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
 
BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsUwe Friedrichsen
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle, awikhan12
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsAmr E. Mohamed
 
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019Wolfgang Göbl
 
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
76 May  2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx76 May  2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docxevonnehoggarth79783
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxHaifaMohd3
 
se01.ppt
se01.pptse01.ppt
se01.pptxiso
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 

Similaire à What a Good Software Architect Does (20)

Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Oop 2014 sw architekt v3
Oop 2014 sw architekt v3
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
How to Speak the Language of Application Architecture
How to Speak the Language of Application ArchitectureHow to Speak the Language of Application Architecture
How to Speak the Language of Application Architecture
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle,
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019
Architectural Thinking @ Domain Driven Design Meetup Vienna Feb 2019
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
76 May  2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx76 May  2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 

Plus de 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
 

Plus de 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
 

Dernier

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
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
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 

Dernier (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
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...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
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
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 

What a Good Software Architect Does

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