Categorías: Todo - software - outsourcing - context - domains

por Olivier Costa hace 12 años

262

Strategic software design

In strategic software design, various domains play crucial roles in aligning with a company's overall strategy, especially in response to changing market conditions. Core domains, often small and vital to the company’

Strategic software design

Strategic software design

context

common results

system becomes more & more

unstable

unreliable

refactor

goes on for ever

concepts just copied rather than reworked

old legacy is more complex than expected

never gets finished

common solutions
hack

Subtopic

refactor legacy
system 2.0

replace legacy with new system

problem
new features don't map to legacy system

irresponsible hero's

much credit
even though

their solution

has a high cost of delivery

which usually remains invisible

caused instability

is fixed by people

competent

responsible

quite

because they work in

close to business needs

CORE domain

4th solution

Model the elephant
model of elephant

in the context of a single BoCo

an elephant

can be described accuratley enough as a tree

could be a wall

supported by 4 trees

withe a snake

and a rope attached on either end: -)

describes the elephants features needed in a certain context

is NOT the elephant

hindu story

blind people try to describe an elephant

touching trunk

elephant is a snake

touching tail

elephant is a rope

touching knee

elephant is a tree

touching side

elephant is a wall

create Bounded Contexts (BoCo)
start with platform

then build on top of that

the Core Domain

(or within its safe border)

anti corruption layer

often an ugly layer

alternative is

introducing even more mudd in the ball of mud

translates

interfaces with

the big ball of mud

and stay consistent in this context only

eg allow duplication between BoCo's

Focus on CORE domain
don't fix 'everything'

Domains

Core domains
usually relatively small
need to be developed

colocated & close to business

by best & most responsible developers

directly relates to

and how software is used to leverage that strategy

strategy of the company

which often needs to change

due to market conditions

eg: seller rating by users/buyers
Supporting domains
eg: amazon book rating by users/readers
if needed

can be outsourced

specific to your business but not core
Generic Domains
should be

produced as cheap as possible

outsourcing

bought

not specific to your business

understood by other companies as well

eg : accounting