Wednesday, September 27, 2006

Flat Packed Applications - aka Composite Apps

I think we all accept that in addition to innovation and flexibility, reuse is a key cornerstone of the business case behind SOA. It is this reuse that means that the same logic is not re-written time and time again enabling organisations to focus on developing innovative new stuff to kill the competition with.

The problem is that getting people to reuse is hard and the key reason behind this is that to reuse something you have to understand it and to understand it you have to take the time to go through a learning curve (you also have to believe that the object is worth reusing).

Now thinking about most of the IT professionals you know in the world who create applications (me included), most of them love to create new stuff. At its heart IT is a creative pursuit – IT professionals are trained to solve problems in new and innovate ways !!!. So some change management is required to enable this change……

So let’s see how they fixed this in the world of furniture making (please stick with me) and see if we can apply these concepts to our own world of IT applications.

50 years ago if you wanted a new piece of furniture you had 2 choices, you either commissioned a bespoke piece (very expensive, but exactly what you wanted) or you purchased from a furniture maker (still expensive and sort of what you wanted). Then Flat Packed Modular furniture was invented….(by Mr Ikea ?). This totally changed the furniture market, it opened it up to people who had not bought new furniture before, it created volumes that enabled manufacturers to cut the costs of furniture AND importantly it did not put the (good) furniture makers out of business, because sometimes you still want that bespoke piece of furniture (to impress your friends or fit into that funny space).

Reflecting this example into the IT world, the bespoke furniture represents bespoke software, the furniture makers are the packaged application vendors and the flat packed furniture makers are SOA composite application platforms.

So how do flat packed furniture makers convince me to buy their furniture…..

Firstly they provide glossy brochures (or websites) that show me (and my wife) what could be achieved with their furniture range…..they don’t show me my lounge or kitchen (or even real kitchens), just examples that catch my interested in purchasing some of their components to put in my own lounge/kitchen.

Secondly (and this step is optional depending of how much I am spending - so key in the software world) they have shops where I can go and touch and feel these pretend rooms to see/feel the quality of the furniture and get design advice from (hopefully) trained staff !!!

Thirdly they (sometimes) provide clear instructions in the flat pack as to how all the different parts fit together and how different components are connected together. Hopefully I get a nice overview picture, step by step instructions to create the final piece of furniture, a list of the tools I need and an estimate of the time required to assemble.

Now some people will never buy flat packed furniture and some people buy it and get someone else to put it together…but you can’t deny that it has had a dramatic impact on the cost of furniture by encouraging us to reuse.

So where are we in the world of SOA and composite applications today ? Well with a few notable exceptions (SAP being one…well I would say that), we are effectively being shown a bunch of screws, connectors and bits of MDF….no big picture, no showroom and definitely no detailed instruction manual.

If we did have these then I believe at least one of the inhibitors to reuse would be removed…..then all we need to do is crack governance, scalability and requirements capture……☺

Saturday, September 09, 2006

PUA

SOA is old news, what you need to be talking about is PUA - Pragmatic Unified Architecture.

So what is PUA ?

PUA is all about selecting the most pragmatic architecture style to solve the problem in hand, challenging the silver bullet ideas that one super architecture can solve all the problems that it faces...this doesn't work in real life (not even in Life 2.0).

PUA considers:-

- How long will the solution be used ?
- Does it have any chance to be re-used ?
- How much will designing re-use cost ?
- What non-functional requirements exist (performance, scale, security) ?
- What other components does it need to interact with ?
- Will the process supported change during the life of the solution ?

The answers to these questions will drive you to different styles of architecture, including Monolythic, Components, Event Driven and SOA and I believe you shouldn't just assume SOA is the answer...without asking some of these questions.

Now the other approach is to start using terms like SOA 2.0 or Advanced SOA or second/third/fourth generation SOA to include the above concepts under the umbrella of SOA....but personally I think this is b*******ks, call a spade a spade.

One other reason why you will need a PUA and not just an SOA is all the stuff you already have is already built and most of it didn't know about SOA when it was built...

At the end of the day any good architecture has just one acid test....can you point to a part of the architecture and explain to the business how it helps them achieve their goals (or why you are busy replacing it becasue it doesn't).