Business executives constantly pressure IT to do more with less, often because they figure anything they don’t understand must be wasting money.
To be fair, it’s a rare IT organization that can’t find some savings someplace. In fact, that had better be true, for this simple reason: In an IT organization that’s had every last dime of waste squeezed out, it’s a sure bet every IT leader’s sole, intense focus is squeezing out every dime of waste. That’s unhealthy. The holy trinity of business is quicker/cheaper/better, and if an IT leader exerts every last erg on cheaper, quicker and better aren’t going to get any attention. Not to mention little details like articulating and implementing an actual strategy.
The good news about the bad news is this: There are situations in which quicker and better do result in cheaper. In many IT organizations, one of those situations is application support.
Application support consists of four major activities: Integration, development, enhancement, and maintenance. Integration is what you do when you implement a commercial application, development is building a system from scratch, enhancement is extending the functionality of an existing application, and maintenance consists of changes you have to make because you have no choice — either because something doesn’t work right or because the rules, such as tax codes, have changed.
Many CIOs, when asked to list their most important processes, put application development at the top of the heap. These same CIOs, when asked for their core architectural principles, include “buy when we can and build when we have to” among the most important.
Pick one.
Which is to say, an important but unrecognized priority for many IT organizations is to implement a formal application integration methodology, rather than try to force the square peg of integration into the round hole of application development. If you aren’t persuaded they’re different, consider:
- When you develop an application in-house, you can leverage existing data structures, and if you’re very good you can leverage business logic as well. And, you develop it to fit existing platform standards. When you integrate a package, you either re-write some of its code to point at existing data structures, re-write legacy code to point at the new application’s data structures, or (most likely) implement some mechanism or other to synchronize the data that’s redundant between the new application and those already in production. As for the redundant business logic, you document it and live with it.
- When you develop an application in-house, you can design new business processes from scratch tailored to the business and write the application to implement the new processes. Or, you can document processes that already exist and work well, and write code to support them. With a purchased application you either customize it to support the processes you’ve designed or documented, or you adapt the business to the out-of-the-box processes the new application was designed to support.
- When you build an application from scratch, you control the architecture. When you buy one, you’re stuck with … ahem, that is, you’re the beneficiary of the architectural decisions built into the application. This goes well beyond platform choices to the heart of the application design philosophy: If the application’s designers started with a data-driven relational design coupled with an n-tier client/server application structure, your own preference for a services oriented architecture is either irrelevant or overrides features, functionality, and other minor concerns.Which is to say, no matter how much you may like dual overhead cams, if the car you buy uses pushrods, you get pushrods.
“Yeah, yeah, yeah,” I can hear you say. “I’m convinced. But how does this help me do more with less?”
The answer is, it can’t. On the other hand, it’s a pretty sure bet that if you don’t have a well-developed set of methodologies for selecting, configuring and integrating commercial packages, you’re doing less with more.
And if you stop doing less with more, it’s going to look like the exact same thing.