Upload
phil-calcado
View
104
Download
0
Embed Size (px)
DESCRIPTION
Presented at ThoughtWorks Australia Team Hug 2010 Summary here: http://fragmental.tw/2010/09/12/thoughtworks-australia-teamhug-2010-why-enterprise-architectures-suck/
Citation preview
Why Enterprise Architecture Usually Sucks.
Phillip CalçadoThoughtWorks
http://fragmental.tw
Saturday, 11 September 2010
1.Conway-Driven Architecture2.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 b
team b
team c
Saturday, 11 September 2010
team b
systema
systemb
systemc
Saturday, 11 September 2010
team b
systema
systemb
systemc
doesn’ttrust
doesn’ttrust
doesn’ttrust
Saturday, 11 September 2010
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem 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
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem w
portal s
This “small” change means...
Saturday, 11 September 2010
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem w
portal s
This “small” change means...
change
Saturday, 11 September 2010
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem w
portal s
This “small” change means...
change
change
Saturday, 11 September 2010
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem w
portal s
This “small” change means...
changechange
change
Saturday, 11 September 2010
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem w
portal s
This “small” change means...
changechange
change
change
Saturday, 11 September 2010
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem w
portal s
This “small” change means...
changechange
change
change
change
Saturday, 11 September 2010
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem w
portal s
This “small” change means...
changechange
change
change
change
change
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 EvansSaturday, 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
developer’sbusiness’
InvoicingOracle Invoice Server + PDF Printing Service + SAP
CustomerIdentity Manager + CUS_SYS_01 Database + CRM
SaleCMS + E-Commerce Server + Warehouse System
mapping
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 law2.Design principles are fractal3.Domain-Driven Architecture
Saturday, 11 September 2010
1.Don’t try to break the law2.Design principles are fractal3.Domain-Driven Architecture
Saturday, 11 September 2010
team b
systema
systemb
systemc
Saturday, 11 September 2010
team b
systema
systemb
systemc
the governance group
Saturday, 11 September 2010
team b
systema
systemb
systemc
the governance group bottleneck
Saturday, 11 September 2010
createoneproject team
withpeople
from different departments
Saturday, 11 September 2010
1.Don’t try to break the law2.Design principles are fractal3.Domain-Driven Architecture
Saturday, 11 September 2010
team b
systema
systemb
systemclegacy
database x
billing system y
inventory system z
hrsystem w
portal s
Saturday, 11 September 2010
OperationOperation
AttributeAttribute
OperationOperation
AttributeAttribute
OperationOperation
AttributeAttribute
OperationOperation
AttributeAttribute
OperationOperation
AttributeAttribute
OperationOperation
AttributeAttribute
OperationOperation
AttributeAttribute
team b
system a
system b
system c
legacy database
x
billing system y
inventory system z
hr system w
portal s
Saturday, 11 September 2010
•Layers•Cohesion•Coupling•Dependency Injection•...
still applies
Saturday, 11 September 2010
1.Don’t try to break the law2.Design principles are fractal3.Domain-Driven Architecture
Saturday, 11 September 2010
big bangmapping
Saturday, 11 September 2010
Adopt Layers
BusinessServices
}}
InfrastructureServices
Saturday, 11 September 2010
Adopt Layers
InfrastructureServices
BusinessServices
}}
TechnicalVocabulary
(and no Business Logic)
BusinessVocabulary
(and Business Logic)
Saturday, 11 September 2010
Adopt Layers
littlemapping
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