As IT managers look to a hopeful and optimistic 2003, the reality of the IT landscape remains stark and harsh. Budgets are still not what they were a few years ago, and managers are tasked with extending the life of systems they never thought they would have to support for this long.
This is particularly relevant for IT organizations that are responsible for supporting the wild world of custom applications. From FoxPro and FileMaker to ColdFusion and Visual Basic, these applications run the gamut of opportunistically developed point solutions to complex multi-year projects that resulted in functional but sparsely documented applications.
This is due in large part to the proliferation of developers without formal training and development tools to speed the deployment of applications into production environments. While these applications were genuine attempts to solve user needs, the authors were typically under tremendous time constraints to build and deploy fast, and move on to the next project. Devoid of good software engineering processes and practices, these coding mercenaries left behind what is probably the largest undocumented code base we have seen since the dawn of the computer age.
This situation is further exacerbated by the fact that every organization has experienced at least some shrinkage in the past two years. This has caused a definite decrease in human capital and tacit knowledge that is core to any organization. Those left behind are expected to support these undocumented applications with fewer hands and dollars than ever before. The reality is that these applications are growing stale. The skills and knowledge are all but lost, while the applications are still being used.
For survival, it is essential that organizations are able to properly predict the support requirements for these applications, including the ongoing costs of managing the software, hardware and other associated infrastructure. Proactive managers are beginning to understand that there are a number of strategies to help predict these requirements and ease the burden of supporting custom applications.
Identify Inventories, Shore Up Documentation
Where to start? Begin with better identification of the complete inventory of applications and the cost structure for supporting them. Specifically this means uncovering the activities on which resources spend their time and how much time is allocated to each application or task.
The obvious next step is to invest in shoring up the documentation for these custom applications in order to effectively support them. Enhanced, usable and maintainable documentation will yield immediate returns. IT managers are taking advantage of standardized software artifacts to build their knowledge base and begin creating more structural capital. These standard artifacts are a result of the tremendous amount of work that has been done by international standards committees, along with industry leaders, such as IBM Corp./Rational Software Corp., Sun Microsystems Inc., Microsoft Corp. and Borland Software Corp.
Refactor Applications and Portability
Another successful strategy to make applications more supportable is to evolve the applications. A process known as refactoring updates the software design and architecture without changing the original functionality. By refactoring an application, an organization increases the quality of the code and brings the application up to a modern design and code standards. This allows the application to be easier to understand and support by current staff. It enables the organization to reduce its dependence on legacy skill sets that are hard to find or are no longer supported by the organization.
A complimentary concept to refactoring is portability. Portability allows applications to be moved from one entity to another without the hard-coded constraints that force managers to leave applications running in an expensive or difficult to support environment. This is especially important in today’s climate of mergers, acquisitions and divestitures. Promoting the concept of application portability empowers IT managers to make sourcing decisions based on the business requirements and not the legacy technical constraints imposed by an application. The combination of refactoring and portability lead to higher quality, reliable software – and a cost-effective model for application maintenance and support.
All of these strategies and measures set the stage for more manageable custom applications. It even shows that custom application management and support can be viewed as a commoditized service, much like datacenter, bandwidth and storage are today. If you have an IT staff that is capable of identifying what you have, shoring up the inventory and refactoring, you can do this in-house. However, some IT managers will find that it is easier to outsource these services as a means of lowering their support overhead and better utilizing their existing staff.
By making these types of strategic, cost-saving decisions, IT managers have a reason to be optimistic in 2003.