Application Management Emerges

By Ian S. Hayes

(Excerpted from an article appearing in Application Development Trends magazine, August 1996.)

 

The importance of business applications to the operations of corporations is beyond question. However, attention is seldom directed to the overall challenge of effectively correcting, improving and functionally extending existing business applications. Regardless of an application’s underlying technology, this process is fundamentally different than the process for creating new applications. Yet, because of their biases, IT organizations ignore this reality. They attempt to define and manage enhancements to existing applications using the same methods they use for building new applications from scratch, and they relegate other essential activities to the disdainful category of maintenance. The results are predictably inefficient and unsatisfactory. Fortunately, this is beginning to change through the discipline of application management.

Defining Application Management

Application management is the maintenance, enhancement and support of production software applications. It begins once an application has completed initial development, that is, the application has been placed into production for the first time. After this critical point, all further development falls within the processes and control of the application management function. Thus, there is a clear distinction between "pure" new development and "new" development performed on existing applications.

The basis for this broad definition is the fundamental difference between the activities used to develop an application from scratch and the activities used to modify that application after initial completion. Unlike changes in a development project, any change to a production application, regardless of size or type, affects the business users of the application, risks damaging existing functionality and requires coordination with other support activities.

Application Management provides three broad functions:

  • Customer Support

This function assists business area users of production applications. It includes answering questions, researching problems, collecting requests and providing status reports on active requests.

  • Production Support

This function ensures the continuing operation of production applications. It includes responsibility for resolving all production failures (that is, corrective maintenance).

  • Application Maintenance

This function handles application programming activities for perfective (upgrading technology or improving technical quality), and adaptive (enhancements to functionality) changes.

An Idealized Application Management Organization

Although it is related to application development, and shares some of the same attributes, an entirely separate strategy is needed to productively manage a portfolio of existing applications. The role of an application manager is to optimize the performance of the company's portfolio of applications in support of corporate business objectives. This role challenges IT managers to find new methods to improve the way they manage their portfolio of applications, as well as the people and processes used to support, enhance and extend that portfolio.

Depicted below is an idealized application management organization designed to maximize the effectiveness of existing application support.

 

Figure 1

This organizational structure was developed from a combination of "best practices" gleaned by observing dozens of successful (and unsuccessful) IT organizations. It is based upon the following principles.

  1. Defined and managed levels of service

All services provided by the application management organization are identified, measured and documented within service level agreements. These agreements are negotiated with each major organization that has interfaces with the application management organization. These agreements are reciprocal --they specify commitments and responsibilities for both parties. All activities performed by the application management organization are managed according to the commitments within these agreements.

  1. Single point of entry for all service requests

All requests of any form enter the organization through a central help desk. This ensures that all requests are captured, distributed to the optimal resource and tracked until completion. A properly implemented help desk increases the effectiveness of the application management organization by handling questions and requests for project status, eliminating "under-the-table" work, enabling the use of virtual teams, and capturing statistics for process improvement and service level management.

  1. Institutionalized methods for capturing and reusing knowledge

Team knowledge about best practices are captured and reused through internal methodologies and activity scripts. This ensures that process enhancements are quickly disseminated to all project teams. Reusable code components are captured through the infrastructure management organization.

  1. Continuous Quality Improvement

Software and process metrics are captured through the application management organization and used for service level management and to identify methods for enhancing productivity and improving quality. Best practices are replicated, and problems are quickly identified and corrected.

  1. Virtual teams

People resources are managed through short-lived virtual teams. This approach allows team members to work on a variety of different projects ensuring continuous exposure to new technologies and practices. The goal of a team structure is to maximize the career growth and job satisfaction of application management team members.

  1. Formal management of application assets

Application software is viewed as a set of assets that can be proactively managed to optimize business value or extend the technical life of useful applications. These assets are far to valuable to be left to the traditional reactive methods of management.

The AM organization provides a number of different services to its clients. While many of these functions are provided by traditional maintenance organizations, the application management organization treats them as discrete "virtual" services that are performed as needed on each application. These services include:

  • Customer Support

This function supports customer requests for knowledge and assistance. It provides answers to questions, researches issues and offers status information for all application management activities.

  • Application Enhancement

This function provides programming support to enhance and extend the functionality of production applications (adaptive maintenance).

  • Production Support

Production support monitors the execution of all production applications and provides quick response to correct any operational problems.

  • Preventive/Proactive Maintenance

Preventive maintenance researches methods for decreasing the future cost of support by enhancing software quality and removing potential errors. Proactive maintenance researches and implements methods for advancing the business value of the applications.

  • Special Projects

This function handles one-time and targeted efforts used to ensure the effective operation of application assets and their support environment. Examples of special projects include application process improvement; transitioning applications to new architectures/technologies; and large-scale migrations (Year 2000, Euro, etc.)

As depicted in figure 1, the physical structure of the application management organization shows its functional areas and its major clients. While the corporation’s business areas are the obvious clients for application management services, this organization also works closely with the data processing operations area and the development organization. The operations area receives application updates for production, executes production jobs and notifies the application management organization of problems. The development organization creates new applications, which are accepted for support by the application management organization. The development organization also uses infrastructure management services.

The application management organization contains the following functional areas: Help Desk, Service Level Management, Quality Management, Resource Pool and Infrastructure Management. Individual applications are supported by a Core Team that coordinates support activities and by Virtual Teams, which are formed to handle specific projects.

  • Help Desk

This function supports customer requests for knowledge and assistance. It provides answers to questions, researches issues and offers status information for all application management activities.

  • Service Level Management

This is a small organization that collects, analyzes and reports on service level metrics for all application management organization applications. It provides the results of its research to the business area clients, application management and Core Team members. Part of its charter is to identify the root causes of positive and negative trends in service level performance.

  • Quality Management

Despite its name, this function does not perform the traditional QA role. Instead it serves as the central repository of organizational knowledge and "best practice" experience. This group collects and analyzes process statistics as well as receiving statistics from service level management, the help desk and infrastructure management. This group reviews the data to discover methods for enhancing team performance and to identify proactive process and application asset improvement projects. Shared improvement projects are staffed by virtual teams and managed by this group.

  • Resource Pool

The resource pool is a central organization that manages the staff resources for the application management organization. This organization is responsible for: assigning people to virtual projects; monitoring their workloads; handling personnel tasks (such as performance reviews); and obtaining outside resources (consultants) when needed.

  • Infrastructure Management

Infrastructure management owns responsibility for the physical assets for all production applications. It handles a range of functions that are shared by all application management project teams and by the development organization. This organization: takes responsibility for packaging application components into releases; working with the application management or development team to system test and certify those releases; and migrating certified releases into production. It handles the database administration and configuration management functions that maintain production source, database definitions, documentation and testing libraries.

  • Core Teams

The goal of the core team is to function as the product manager for one or more functionally related applications. This is not a programming role. The core team: works with its business clients to create requirements and define service levels for their application; manages virtual projects to implement those requirements; and resolves any service level issues. The ideal core team is very small; it is should be staffed by no more than one or two people.

  • Virtual Teams

Virtual teams are assembled out of the resource pool as needed. These teams range in size according to the needs of the project. They can perform any of the services offered by the application management organization. The two characteristics of virtual teams are flexibility and limited life span. Even on-going services such as production support can, and should, be handled by rotating teams. Virtual teams are managed by the core team for the application they are supporting, or in the case of internal improvement projects, by a member of the quality management group.

Conclusion

This article is, at best, a high-level introduction to the concept of organizing for more effective application management. Its purpose is to stimulate thinking about new methods of application support and enhancement. While some of these concepts may appear radical, they have already taken hold among outsourcing vendors and more advanced IT organizations. Traditional IT organizations must take a step back from their daily activities to ask themselves if their current organizational structure and support processes are still valid or if they can be enhanced to better serve their business. In this increasingly competitive market, effective IT organizations will thrive while less efficient organizations find themselves increasingly replaced by outsourcers and end-user computing, or subsumed in corporate mergers.