I read with great interest Roger Session's new book "Simple Architectures for Complex Enterprises".
The area that is most relevant to me regards the reuse of ABCs (i.e. units of process and technology components, that Roger calls Autonomous Business Components).
Let us assume that there are differences in the business processes in various regions. The way that loans are processed are different for New York, Asia and Frankfurt, leading to three ABCs, each specialized for regional business conditions (legal, administrative, cultural, environmental).
The area that is most relevant to me regards the reuse of ABCs (i.e. units of process and technology components, that Roger calls Autonomous Business Components).
Let us assume that there are differences in the business processes in various regions. The way that loans are processed are different for New York, Asia and Frankfurt, leading to three ABCs, each specialized for regional business conditions (legal, administrative, cultural, environmental).
The alternative is to have one Global Loan Processing system
The question is - which avoids complexity better?
If I start with the Global system, and see high complexity due to it having to handle different regions, (i.e., regional variables add high complexity), I am tempted to partition the system into regional systems. The complexity falls from N*N*N to 3N as the systems can be tested and changed independently.
On the other hand, if I start with regional systems, I am tempted to combine the systems in a bid to reduce costs (and complexity) - as mentioned in the book.
I asked Roger to comment on this apparent contradiction.
Roger emailed me back -
I don't know if there is a simple answer to your question. It comes doesn to how similar the three systems are. And it is also important to keep in mind that just because architecturally we are considering systems to be different, that there aren't opportunities to reuse work at the implementation level. And in some cases, we can break out that part that makes them different into other ABCs.
My current rule of thumb is, "When in doubt, make them different". I think in general more harm is done by trying to force things to be the same than allowing them to be different. But this is very dependent on individual circumstances, as the case study in my book shows.
I find this perspective highly pragmatic and useful.
Roger has a blog related to the book as well.
No comments:
Post a Comment