Decompositioning business into autonomous IT services is truly to make IT align with business (which is what we all want, right?). It is the understanding of the business domain that guides this process that will ultimately lead to self contained, independent, autonomous, authoritative services that represents real business areas, and can be maintained without causing any pain for other parts of the system ... if applied right, that is.
Unfortunately this is not as easy as it sounds. Suddenly designing IT systems requires real business understanding - something which does not come natural to most developers: we decompose into technical units (database, business layer, network, GUI) - that's easy, and it even holds for all scenarios (that's why devs like it so much)! Whereas business decompose into shopping, sales, booking, finance, fulfillment, reservation, shipping, and, hmmm, ... all sorts of other wonderful "stuff" that makes no sense to us and therefore gives us a hard time creating IT for it.
To make it even harder, we, the devs, need to begin with the understanding of what "self contained", "independent", "autonomous", "authoritative" services really mean and be able to write code that conforms to these predicates. You can start here: "A Webservice is NOT a Service". Write this on the chalkboard a hundred times and then take the red pill.
Should our brain survive this transition into a completely different universe, where devs understand the business and is backing it up with software to support it, we probably just crash and burn the minute we hit reality again in the form of (standback and watch out) IT Operations:
- "No, we cannot enable the Distributed Transaction Coordinator".
- "No, you cannot use the database without having referential integrity".
- "Yes, you must comply to our organizational standards and use IBM MQ series, BizTalk, and WebSphere Message Broker (remember, we paid a gazillion for those products!)".
- "Yes, you must use stored procedures for everything".
- "And, remember that any change request to the database schema must be presented one month in advance before you need it, and, yes, of course it must be approved our DBA's (why do you ask?)."
So is it any wonder that we keep seeing one IT-project after another fail again and again?