SlideShare a Scribd company logo
1 of 45
Download to read offline
Why Enterprise Architecture
                           Usually Sucks.
                                 Phillip Calçado
                                 ThoughtWorks
                              http://fragmental.tw




Saturday, 11 September 2010
1.Conway-Driven Architecture
                 2.Architecture-Driven Business



Saturday, 11 September 2010
1. Conway-Driven Architecture

         “Any organisation that designs a
         system will inevitably produce a
         design whose structure is a copy of
         the organisation's communication
         structure.”
                            -Melvin Conway

Saturday, 11 September 2010
Saturday, 11 September 2010
team a
                                team c



                    team b



Saturday, 11 September 2010
system
                             a
                                   system
                                      c




                          system
                             b



Saturday, 11 September 2010
system
                             a          doesn’t
                                         trust

                                                       system
                                                          c
                              doesn’t
                               trust




                                             doesn’t
                                              trust


                          system
                             b



Saturday, 11 September 2010
system
                             a
                                                   system
                                                      c
   legacy                           billing
  database                         system y
      x

                                                     inventory
                                                      system z
                          system
                             b             hr
                                        system w

            portal s

Saturday, 11 September 2010
can I have
                               this feature?
                              pretty please?




Saturday, 11 September 2010
LOL r u crazy?




Saturday, 11 September 2010
This “small”
                          system
                             a     change means...
                                                   system
                                                      c
   legacy                           billing
  database                         system y
      x

                                                     inventory
                                                      system z
                          system
                             b             hr
                                        system w

            portal s

Saturday, 11 September 2010
This “small”
                          system
                             a     change means...
                                                   system
                                                      c
   legacy                           billing
  database                         system y
      x
                              change
                                                     inventory
                                                      system z
                          system
                             b             hr
                                        system w

            portal s

Saturday, 11 September 2010
This “small”
                          system
                             a     change means...
                                                   system
                                                      c
   legacy                           billing
  database                         system y
      x
                              change
                                                     inventory
                                                      system z
         system
      changeb                              hr
                                        system w

            portal s

Saturday, 11 September 2010
This “small”
                          system
                             a     change means...
                                                   system
                                                      c
   legacy                           billing
  database                         system y
      x
                              change
                                                     inventory
                                       change         system z
         system
      changeb                              hr
                                        system w

            portal s

Saturday, 11 September 2010
This “small”
                          system
                             a   change means...
                                change   system
                                            c
   legacy                          billing
  database                        system y
      x
                              change
                                                   inventory
                                       change       system z
         system
      changeb                              hr
                                        system w

            portal s

Saturday, 11 September 2010
This “small”
                          system           change
                             a   change means...
                                change   system
                                            c
   legacy                          billing
  database                        system y
      x
                              change
                                                   inventory
                                       change       system z
         system
      changeb                              hr
                                        system w

            portal s

Saturday, 11 September 2010
This “small”
                          system           change
                             a   change means...
                                change   system
                                            c
   legacy                          billing
  database                        system y
      x
                              change               change
                                                   inventory
                                       change       system z
         system
      changeb                              hr
                                        system w

            portal s

Saturday, 11 September 2010
“I don’t understand why things
are so hard around here!”
 “IT doesn’t deliver; we need more
 people. Get me some consultants!”
“In-house is too complicated,
let’s buy a package!”
          “We are too slow. We have
                  to become agile! ”
Saturday, 11 September 2010
2. Architecture-Driven Business

  “Developers have to translate for domain
  experts. Domain experts translate between
  developers and still other experts.
  Developers even translate for each other.
  The indirectness of communication conceals
  the formation of schisms. This leads to
  unreliable software that doesn't fit together.”

                                 -Eric Evans
Saturday, 11 September 2010
IT always wins.




Saturday, 11 September 2010
IT always wins.



                              We need invoices to
                               be available in our
                              sales channel to our
                                   customers


Saturday, 11 September 2010
IT always wins.


                                   We need
                              invoice.xsds to be
                               available in our
                                portlets to our
                                   contacts

Saturday, 11 September 2010
developer’s kingdom




   business’ nightmare
Saturday, 11 September 2010
business’                           developer’s
                                     Oracle Invoice Server +
             Invoicing               PDF Printing Service +
                                     SAP
                                     Identity Manager +
          Customer mapping           CUS_SYS_01 Database +
                                     CRM
                                     CMS + E-Commerce
                              Sale   Server + Warehouse
                                     System



Saturday, 11 September 2010
“How did we end up with
three CRMs again?”
        “These customers are in another
        database. We can create a service
                              for that...”
“This may be a simple change
for the business but in our end
it’s complicated!”
Saturday, 11 September 2010
Some Suggestions




Saturday, 11 September 2010
1.Don’t try to break the law
               2.Design principles are fractal
               3.Domain-Driven Architecture



Saturday, 11 September 2010
1.Don’t try to break the law
               2.Design principles are fractal
               3.Domain-Driven Architecture



Saturday, 11 September 2010
system
                             a
                                   system
                                      c




                          system
                             b



Saturday, 11 September 2010
system
                             a
                                        system
                                           c




                          system   the
                             b
                                   governance
                                   group
Saturday, 11 September 2010
system
                             a
                                         system
                                            c




                          system   the
                             b
                                   governance
                                   group bottleneck

Saturday, 11 September 2010
create
        one
        project team
                                        with
                                    people
                              from different
                                departments
Saturday, 11 September 2010
1.Don’t try to break the law
               2.Design principles are fractal
               3.Domain-Driven Architecture



Saturday, 11 September 2010
system
                             a
                                                   system
                                                      c
   legacy                           billing
  database                         system y
      x

                                                     inventory
                                                      system z
                          system
                             b             hr
                                        system w

            portal s

Saturday, 11 September 2010
system a
                        Attribute
                        Attribute
                        Operation
                        Operation                                system c
                                                              Attribute
                                                              Attribute
                                                              Operation
                                      billing system y        Operation
   legacy                             Attribute
  database                            Attribute
      x                               Operation
                                      Operation
                                                                inventory system z
                                                                Attribute
                          system b                              Attribute
                       Attribute                                Operation
                       Attribute                                Operation
                       Operation                hr system w
                       Operation               Attribute
                                               Attribute
                                               Operation
           portal s
       Attribute                               Operation
       Attribute
       Operation
       Operation
Saturday, 11 September 2010
•Layers
               •Cohesion
               •Coupling
               •Dependency Injection
               •...
                               still applies



Saturday, 11 September 2010
1.Don’t try to break the law
               2.Design principles are fractal
               3.Domain-Driven Architecture



Saturday, 11 September 2010
big bang
                              mapping




Saturday, 11 September 2010
Adopt Layers




                              }  Business
                                 Services


                              } Services
                               Infrastructure

Saturday, 11 September 2010
Adopt Layers

                       Business
                      Vocabulary
                                   }
      (and Business Logic)
                                      Business
                                      Services
                    Technical
                   Vocabulary
           (and no Business
                Logic)
                                   } Services
                                    Infrastructure

Saturday, 11 September 2010
Adopt Layers




                              little
                              mapping


Saturday, 11 September 2010
Good Architectures support
   and are driven by the business

                              Bad Architectures require the
                                        business to change

 What’s easy to change in the business
model should be easy to change in your
             architecture
Saturday, 11 September 2010
Good Architectures support
   and are driven by the business

                              Bad Architectures require the
                                        business to change

 What’s easy to change in the business
model should be easy to change in your
             architecture
Saturday, 11 September 2010
Good Architectures support
   and are driven by the business

                              Bad Architectures require the
                                        business to change

 What’s easy to change in the business
model should be easy to change in your
             architecture
Saturday, 11 September 2010
References
 •http://www.melconway.com/research/
 committees.html
 •http://fragmental.tw/2009/02/24/what-is-a-
 service/
 •http://fragmental.tw/2010/08/17/thoughts-on-
 abstractions-part-1-%E2%80%93-abstractions-
 everywhere/
 •http://fragmental.tw/2010/09/06/thoughts-on-
 abstractions-part-2-abstractions-in-your-domain/
 •http://fragmental.tw/2010/03/22/nevermind-
 domain-driven-design/
Saturday, 11 September 2010

More Related Content

More from Phil Calçado

Ten Years of Failing Microservices
Ten Years of Failing MicroservicesTen Years of Failing Microservices
Ten Years of Failing MicroservicesPhil Calçado
 
The Next Generation of Microservices
The Next Generation of MicroservicesThe Next Generation of Microservices
The Next Generation of MicroservicesPhil Calçado
 
The Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 BrisbaneThe Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 BrisbanePhil Calçado
 
The Economics of Microservices (2017 CraftConf)
The Economics of Microservices  (2017 CraftConf)The Economics of Microservices  (2017 CraftConf)
The Economics of Microservices (2017 CraftConf)Phil Calçado
 
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...Phil Calçado
 
Finagle @ SoundCloud
Finagle @ SoundCloudFinagle @ SoundCloud
Finagle @ SoundCloudPhil Calçado
 
A Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing OrganisationsA Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing OrganisationsPhil Calçado
 
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015Phil Calçado
 
Rhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a FunctionRhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a FunctionPhil Calçado
 
ScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a FunctionScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a FunctionPhil Calçado
 
Finagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloudFinagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloudPhil Calçado
 
An example of Future composition in a real app
An example of Future composition in a real appAn example of Future composition in a real app
An example of Future composition in a real appPhil Calçado
 
APIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog FoodAPIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog FoodPhil Calçado
 
Evolutionary Architecture at Work
Evolutionary  Architecture at WorkEvolutionary  Architecture at Work
Evolutionary Architecture at WorkPhil Calçado
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in ScalaPhil Calçado
 
From a monolithic Ruby on Rails app to the JVM
From a monolithic  Ruby on Rails app  to the JVMFrom a monolithic  Ruby on Rails app  to the JVM
From a monolithic Ruby on Rails app to the JVMPhil Calçado
 
Applying Evolutionary Architecture on a Popular API
Applying Evolutionary Architecture on a  Popular APIApplying Evolutionary Architecture on a  Popular API
Applying Evolutionary Architecture on a Popular APIPhil Calçado
 
SoundCloud Masterclass on Brazil
SoundCloud Masterclass on BrazilSoundCloud Masterclass on Brazil
SoundCloud Masterclass on BrazilPhil Calçado
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...Phil Calçado
 
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil UsersPhil Calçado
 

More from Phil Calçado (20)

Ten Years of Failing Microservices
Ten Years of Failing MicroservicesTen Years of Failing Microservices
Ten Years of Failing Microservices
 
The Next Generation of Microservices
The Next Generation of MicroservicesThe Next Generation of Microservices
The Next Generation of Microservices
 
The Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 BrisbaneThe Next Generation of Microservices — YOW 2017 Brisbane
The Next Generation of Microservices — YOW 2017 Brisbane
 
The Economics of Microservices (2017 CraftConf)
The Economics of Microservices  (2017 CraftConf)The Economics of Microservices  (2017 CraftConf)
The Economics of Microservices (2017 CraftConf)
 
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
 
Finagle @ SoundCloud
Finagle @ SoundCloudFinagle @ SoundCloud
Finagle @ SoundCloud
 
A Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing OrganisationsA Brief Talk On High-Performing Organisations
A Brief Talk On High-Performing Organisations
 
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
Three Years of Microservices at SoundCloud - Distributed Matters Berlin 2015
 
Rhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a FunctionRhein-Main Scala Enthusiasts — Your microservice as a Function
Rhein-Main Scala Enthusiasts — Your microservice as a Function
 
ScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a FunctionScalaItaly 2015 - Your Microservice as a Function
ScalaItaly 2015 - Your Microservice as a Function
 
Finagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloudFinagle-Based Microservices at SoundCloud
Finagle-Based Microservices at SoundCloud
 
An example of Future composition in a real app
An example of Future composition in a real appAn example of Future composition in a real app
An example of Future composition in a real app
 
APIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog FoodAPIs: The Problems with Eating your Own Dog Food
APIs: The Problems with Eating your Own Dog Food
 
Evolutionary Architecture at Work
Evolutionary  Architecture at WorkEvolutionary  Architecture at Work
Evolutionary Architecture at Work
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in Scala
 
From a monolithic Ruby on Rails app to the JVM
From a monolithic  Ruby on Rails app  to the JVMFrom a monolithic  Ruby on Rails app  to the JVM
From a monolithic Ruby on Rails app to the JVM
 
Applying Evolutionary Architecture on a Popular API
Applying Evolutionary Architecture on a  Popular APIApplying Evolutionary Architecture on a  Popular API
Applying Evolutionary Architecture on a Popular API
 
SoundCloud Masterclass on Brazil
SoundCloud Masterclass on BrazilSoundCloud Masterclass on Brazil
SoundCloud Masterclass on Brazil
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...
 
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
[GOTO Copenhagen 2012] The Startup Hangover: Supporting 15 mil Users
 

Recently uploaded

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

Why Enterprise Architecture Usually Sucks.

  • 1. Why Enterprise Architecture Usually Sucks. Phillip Calçado ThoughtWorks http://fragmental.tw Saturday, 11 September 2010
  • 2. 1.Conway-Driven Architecture 2.Architecture-Driven Business Saturday, 11 September 2010
  • 3. 1. Conway-Driven Architecture “Any organisation that designs a system will inevitably produce a design whose structure is a copy of the organisation's communication structure.” -Melvin Conway Saturday, 11 September 2010
  • 5. team a team c team b Saturday, 11 September 2010
  • 6. system a system c system b Saturday, 11 September 2010
  • 7. system a doesn’t trust system c doesn’t trust doesn’t trust system b Saturday, 11 September 2010
  • 8. system a system c legacy billing database system y x inventory system z system b hr system w portal s Saturday, 11 September 2010
  • 9. can I have this feature? pretty please? Saturday, 11 September 2010
  • 10. LOL r u crazy? Saturday, 11 September 2010
  • 11. This “small” system a change means... system c legacy billing database system y x inventory system z system b hr system w portal s Saturday, 11 September 2010
  • 12. This “small” system a change means... system c legacy billing database system y x change inventory system z system b hr system w portal s Saturday, 11 September 2010
  • 13. This “small” system a change means... system c legacy billing database system y x change inventory system z system changeb hr system w portal s Saturday, 11 September 2010
  • 14. This “small” system a change means... system c legacy billing database system y x change inventory change system z system changeb hr system w portal s Saturday, 11 September 2010
  • 15. This “small” system a change means... change system c legacy billing database system y x change inventory change system z system changeb hr system w portal s Saturday, 11 September 2010
  • 16. This “small” system change a change means... change system c legacy billing database system y x change inventory change system z system changeb hr system w portal s Saturday, 11 September 2010
  • 17. This “small” system change a change means... change system c legacy billing database system y x change change inventory change system z system changeb hr system w portal s Saturday, 11 September 2010
  • 18. “I don’t understand why things are so hard around here!” “IT doesn’t deliver; we need more people. Get me some consultants!” “In-house is too complicated, let’s buy a package!” “We are too slow. We have to become agile! ” Saturday, 11 September 2010
  • 19. 2. Architecture-Driven Business “Developers have to translate for domain experts. Domain experts translate between developers and still other experts. Developers even translate for each other. The indirectness of communication conceals the formation of schisms. This leads to unreliable software that doesn't fit together.” -Eric Evans Saturday, 11 September 2010
  • 20. IT always wins. Saturday, 11 September 2010
  • 21. IT always wins. We need invoices to be available in our sales channel to our customers Saturday, 11 September 2010
  • 22. IT always wins. We need invoice.xsds to be available in our portlets to our contacts Saturday, 11 September 2010
  • 23. developer’s kingdom business’ nightmare Saturday, 11 September 2010
  • 24. business’ developer’s Oracle Invoice Server + Invoicing PDF Printing Service + SAP Identity Manager + Customer mapping CUS_SYS_01 Database + CRM CMS + E-Commerce Sale Server + Warehouse System Saturday, 11 September 2010
  • 25. “How did we end up with three CRMs again?” “These customers are in another database. We can create a service for that...” “This may be a simple change for the business but in our end it’s complicated!” Saturday, 11 September 2010
  • 27. 1.Don’t try to break the law 2.Design principles are fractal 3.Domain-Driven Architecture Saturday, 11 September 2010
  • 28. 1.Don’t try to break the law 2.Design principles are fractal 3.Domain-Driven Architecture Saturday, 11 September 2010
  • 29. system a system c system b Saturday, 11 September 2010
  • 30. system a system c system the b governance group Saturday, 11 September 2010
  • 31. system a system c system the b governance group bottleneck Saturday, 11 September 2010
  • 32. create one project team with people from different departments Saturday, 11 September 2010
  • 33. 1.Don’t try to break the law 2.Design principles are fractal 3.Domain-Driven Architecture Saturday, 11 September 2010
  • 34. system a system c legacy billing database system y x inventory system z system b hr system w portal s Saturday, 11 September 2010
  • 35. system a Attribute Attribute Operation Operation system c Attribute Attribute Operation billing system y Operation legacy Attribute database Attribute x Operation Operation inventory system z Attribute system b Attribute Attribute Operation Attribute Operation Operation hr system w Operation Attribute Attribute Operation portal s Attribute Operation Attribute Operation Operation Saturday, 11 September 2010
  • 36. •Layers •Cohesion •Coupling •Dependency Injection •... still applies Saturday, 11 September 2010
  • 37. 1.Don’t try to break the law 2.Design principles are fractal 3.Domain-Driven Architecture Saturday, 11 September 2010
  • 38. big bang mapping Saturday, 11 September 2010
  • 39. Adopt Layers } Business Services } Services Infrastructure Saturday, 11 September 2010
  • 40. Adopt Layers Business Vocabulary } (and Business Logic) Business Services Technical Vocabulary (and no Business Logic) } Services Infrastructure Saturday, 11 September 2010
  • 41. Adopt Layers little mapping Saturday, 11 September 2010
  • 42. Good Architectures support and are driven by the business Bad Architectures require the business to change What’s easy to change in the business model should be easy to change in your architecture Saturday, 11 September 2010
  • 43. Good Architectures support and are driven by the business Bad Architectures require the business to change What’s easy to change in the business model should be easy to change in your architecture Saturday, 11 September 2010
  • 44. Good Architectures support and are driven by the business Bad Architectures require the business to change What’s easy to change in the business model should be easy to change in your architecture Saturday, 11 September 2010
  • 45. References •http://www.melconway.com/research/ committees.html •http://fragmental.tw/2009/02/24/what-is-a- service/ •http://fragmental.tw/2010/08/17/thoughts-on- abstractions-part-1-%E2%80%93-abstractions- everywhere/ •http://fragmental.tw/2010/09/06/thoughts-on- abstractions-part-2-abstractions-in-your-domain/ •http://fragmental.tw/2010/03/22/nevermind- domain-driven-design/ Saturday, 11 September 2010