10/4/06

The most important IT Architecture Issues today

Each generation faces a different set of problems - in the 1930s it was the depression, in the 1940s World War II, 1950s was the Cold War and the 1960s had Hippies, the 80s had bands with big hair :-)
OK I'm joking a bit, but the point is, as time rolls on the problems change - at least on a surface level.

In IT, where timespans are much shorter, the hot topics now seem to change yearly - 2003 it was XP, 2004 it was SOA, 2005 was ESB and now in 2006 it's Web 2.0 (actually it's probably moved on already!)

For architects (hopefully you aren't swayed too often by the latest hot topics) the issues are a little more involved. So here's my take, in the 3rd Quarter of 2006, of the top issues facing Software Architects in increasing order of important

#8 Align IT and the Business - "Huh?" You ask? You think this isn't that important? Shouldn't it be number 1. Actually, to an extent, I do; I think it's so important that if you aren't already doing it and being concerned about it you're really not doing a good job being an architect. I'm really talking about issues for architects who are already doing a good job at this, because if you're not . . . . . well . . . good luck!

#7 Classics - Scope Creep & Buy vs. Build
The classic problems are always around - watching out for scope/requirements creep, should I buy or build? The issues here are eternal and the risk is not that they are unknown but that they can get taken for granted.

#6 Vertical Specialization
It's really getting to the stage that the most successful IT architects are the one's who know their business domain like a freshly-minted MBA - I mean inside and out - 10+ years experience in the domain etc. It's getting to the stage where IT and the business are so intertwined as to be almost indistinguishable - not just "enablers" but the business itself! That's how it should be, and to get there you, as the architect, have to know the industry and be able to anticipate and extrapolate - where are we going next?

#5 Open Source & Legal Issues
If you're not using open source it's like not using your company's retirement plan when there's a company matching contribution - you're throwing away free money. There are so many great open source packages out there you'd be mad not to use them, however if you do, make sure you've got about 75 lawyers in a back-room pouring over the licenses so you don't get into *BIG* trouble.

#4 Create new stuff while maintaining legacy things
Businesses these days are like Sharks - if they stop moving they die! However the older the business the longer and larger the investment in legacy systems that are needed to keep the "lights on" - many big companies have 80% of their IT budget just in keeping the lights on. How do you sell SOA, ESB, JBI etc. - things that will make the business more nimble and performant when just keeping the database from crashing everyday takes a 24x7 operation? Not an easy sell (and that's why consulting companies make big $$$)

#3 Flexibility
That's the name of the game - adaptation - those who adapt survive, those who don't - well can you say GM and Ford? How can you re-use what you have, and add to it in new and innovative ways and get it out the door quickly (oh and do it cheaper too!)?

#2 Time-to-Market
Your team can do it and you can architect it right but can you do it fast(er)? What requirements are critical? Which ones can wait? Do we need EJBs or can we bypass that? Do we need WebSphere or will Tomcat suffice? Do we really need Ajax now?

#1 Execution
But the number 1 issue - and it has been since the dawn of IT - is "execution" - getting the job done and done right. It's hard to fight for enough time to analyze the requirements, it's hard to get enough design time and balance it against a deliverable date. It's hard to write unit tests and create a good, solid, repeatable regression test. It's hard to ship with bugs and hard to know when you're done fixing them and it's time to release. It's hard to stay on top of all the technologies - Java, J2EE, .Net, SOA, ESB, etc. It's hard, but if you don't you're toast.

Think of how many people do it and do it well - not many!

But that's what is needed to get the job done right. Execution, my friends, is issue #1 and will remain so for the foreseeable future.

0 comments: