Thursday, May 26, 2005

Alignment of goals, to create synergy going forward.
Like any good pragmatic IT guy, I have an aversion to buzzwords. One of the great ones (phrases) is “aligning IT goals with goals of the business”. I have just had an “aha” moment on this one though, and am now searching for a way to push “alignment of IT goals” without triggering off a buzzword bingo bonanza in our next discussion.
The goals of an IT department and in particular any software development effort are pretty much common across the board aren’t they? I’m yet to hear of a system that didn’t need to be robust, scalable, maintainable, secure etc. Maybe there are varying degrees for each aspect but pretty much, the goals of the development effort always boil down to this, as well as, naturally, meeting the needs of the user – adding value etc.
I am however an advocate of letting the business drive IT, and “aligning” the IT goals with the goals of the business. As mentioned, I’ll try not to use buzzwords though – so I call this, letting the guys tell us what they want – novel!
However, I would propose that alignment of goals has nothing to do with setting of goals – IT goals are pretty much always the same. The key to this is in understanding what the business goals are, then how and why these goals translate to the IT goals.
Every member of an IT team must understand what business, the business is in, and therefore why, security, robustness, scalability, maintainability etc are important goals for them, in order to deliver the required system to their users.
A little too abstract? Here’s an example. I am an IT manager for a finance company. Every system we build must be robust. No kidding! Every system we produce must be secure – there is a large (very large) emphasis on security in this industry – no kidding! As this company is growing, the systems must be scalable! Really, who ever heard of a company that doesn’t think they are growing! All our systems must be supremely maintainable and we must build very cohesive, re-usable software components because the users are prone to changing their minds – imagine that! So we end up with the same old objectives here don’t we – maintainability, usability, quality, scalability, blah blah blah. This all sounds just like when I built systems for home builders, and one for a chain of caravan parks and so on.
I spend a good deal of time with our users. I love to learn about their world. In doing so, and listening to them, I have gathered an appreciation for the issues they face every day. And guess what, there requirements do change very regularly. Business does move fast. It’s all true. In gathering that understanding, I actually, unwittingly aligned their goals to ours. I didn’t change our goals, I simply understand, in my current set of circumstances, why those same old usual suspects – the “ilities”, are very relevant in this situation. I have an inbuilt appreciation for why our systems need to have all these characteristics.
It wasn’t until I tried to explain to one of the developers the advantages we were getting by breaking up a new system we were beginning to build, into very small re-usable components, and in doing so creating a bit more work upfront, that this all dawned on me. I’ve worked in teams that haven’t pursued these goals with much vigor at all, and I’ve felt the pain of the result. At times a very different type of user base, always a very similar feeling of pain.
So I think one of the keys to effective software development efforts is not in setting the goals – they pretty much set themselves, it’s making sure each and every team member appreciates why these goals are important in the context of their business environment - to their users. What do you know? That would be aligning IT goals with the business. Viola!