Why Enterprise Architecture Usually Sucks.Presentation Transcript
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
1–3 of 3 previous next Post a comment