Application Portfolio Management attempts to use the lessons of financial portfolio management to justify and measure the financial benefits of each application in comparison to the costs of the application’s maintenance and operations.
Definition of an application
In application portfolio management, the definition of an application is a critical component. Many service providers help organizations create their own definition, due to the often contentious results that come from these definitions.
- Application software — An executable software component or tightly coupled set of executable software components (one or more), deployed together, that deliver some or all of a series of steps needed to create, update, manage, calculate or display information for a specific business purpose. In order to be counted, each component must not be a member of another application.
- Software component — An executable set of computer instructions contained in a single deployment container in such a way that it cannot be broken apart further. Examples include a Dynamic Link Library, an ASP web page, and a command line “EXE” application. A zip file may contain zero or more software components because it is easy to break them down further (by unpacking the ZIP archive).
Software application and software component are technical terms used to describe a specific instance of the class of application software for the purposes of IT portfolio management. The art and practice of Software Application Portfolio Management requires a fairly detailed and specific definition of an application in order to create a catalog of applications installed in an organization.
The requirements of a definition:
- The definition of an application has the following needs in the context of Application Portfolio Management:
- It must be simple for business team members to explain, understand, and apply.
- It must make sense to development, operations, and project management in the IT groups.
- It must be useful as an input to a complex function whose output is the overall cost of the portfolio. In other words, there are many factors that lead to the overall cost of an IT portfolio. The sheer number of applications is one of those factors. Therefore, the definition of an application must be useful in that calculation.
- It must be useful for the members of the Enterprise Architecture team who are attempting to judge a project with respect to their objectives for portfolio optimization and simplification.
- It must clearly define the boundaries of an application so that a person working on a measurable ‘portfolio simplification’ activity cannot simply redefine the boundaries of two existing applications in such a way as to call them a single application.
Many organizations will readdress the definition of an application within the context of their IT portfolio management and governance practices. For that reason, this definition should be considered as a working start.
The definition of an application can be difficult to convey clearly. In an IT organization, there might be subtle differences in the definition among teams and even within one IT team. It helps to illustrate the definition by providing examples. The section below offers some examples of things that are applications, things that are not applications, and things that comprise two or more applications.
By definition, the following are applications:
- A web service endpoint that presents three web services: InvoiceCreate, InvoiceSearch, and InvoiceDetailGet
- A service oriented business application (SOBA) that presents a user interface for creating invoices, and that turns around and calls the InvoiceCreate service. (note that the service itself is a different application).
- A legacy system composed of a rich client, a server-based middle tier, and a database, all of which are tightly coupled. (e.g. changes in one are very likely to trigger changes in another).
- A website publishing system that pulls data from a database and publishes it to an HTML format as a sub-site on a public URL.
- A database that presents data to an Microsoft Excel workbook that queries the information for layout and calculations. This is interesting in that the database itself is an application unless the database is already included in another application (like a legacy system).
- An Excel spreadsheet that contains a coherent set of reusable macros that deliver business value. The spreadsheet itself constitutes a deployment container for the application (like a TAR or CAB file).
- A set of ASP or PHP web pages that work in conjunction with one another to deliver the experience and logic of a web application. It is entirely possible that a sub-site would qualify as a separate application under this definition if the coupling is loose.
- A web service end point that no one uses, but which can be rationally understood to represent one or more useful steps in a business process.
The following are not applications:
- An HTML website.
- A database that contains data but is not part of any series of steps to deliver business value using that data.
- A web service that is structurally incapable of being part of a set of steps that provides value. For example, a web service that only accepts data breaks the schema.
- A standalone batch script that compares the contents of two databases by making calls to each and then sends e-mail to a monitoring alias if data anomalies are noticed. In this case, the batch script is very likely to be tightly coupled with at least one of the two databases, and therefore should be included in the application boundary that contains the database that it is most tightly coupled with.
The following are many applications:
- A composite SOA application composed of a set of reusable services and a user interface that leverages those services. There are at least two applications here (the user interface and one or more service components). Each service is not counted as an application.
- A legacy client-server app that writes to a database to store data and an Excel spreadsheet that uses macros to read data from the database to present a report. There are TWO apps in this example. The database clearly belongs to the legacy app because it was developed with it, delivered with it, and is tightly coupled to it. This is true even if the legacy system uses the same stored procedures as the Excel spreadsheet.