SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
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
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
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
 
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
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: 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
 
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
 

Kürzlich hochgeladen (20)

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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
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
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
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
 
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
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: 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)
 
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
 

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