An all too frequent problem that hits IT systems is that someone will say “They did XXX in application YYY” and everyone around the table will nod sagely and know that only a fool would use application YYY, everyone knows that application ZZZ is far better for doing XXX.
Except that the people who were faced with XXX didn’t know (much) about ZZZ but they were really familiar with YYY and faced with the deadline of delivering something in time and on budget, the only approach was to use what they know and force it through.
The end result is functionality that doesn’t quite work but does enough to pass acceptance testing and goes into production.
The alternative is that everyone is using the ‘best’ tool to do things and you finish up with an unholy mess of everyone’s favourite tool doing just what it was designed for.
A solution to this problem? I would propose that a thorough enterprise architecture would help matters- there would still be the pocket of people who believe that ZZZ was the best solution, but the architects come along with their big sticks and simply beat them into submission with the multiple strains of
- Enterprise scale benefit
- Leverage of consistent development platform
- Long term lower cost structure
And probably a few other reasons that I haven’t thought of.
So what is this post really all about? Simply the continued justification and value of having a good architecture within an organisation. Yes it will cost to set it up, but it should pay back. Eventually