06/19/2008 by Markus von der Heiden
Nowadays, software is used in virtually all enterprises. Software is continuously extended, changed or deactivated – as a result of changing business requirements, enhanced functionality of commercial software releases, or subsequent to bug-fixing. Over the years, typical phases, methods and techniques of the development cycle have established: project portfolio management techniques, software development methods and techniques, models for carrying out projects, IT service management and quality requirements.
Software is code and all its descriptive objects
In order to handle software applications, the user needs instructions, i.e. a user manual. Developers need a technical documentation, division managers need a process description, and the business or the outsourcing partner needs a business manual. For each phase of a software development cycle, there are documents which are essential to particular user groups. Project plan and project documentation which influence the development of the software most directly, provide valuable information about the software. Some software components are dependent on system environments. Particular server and client components must be installed along with the software.
As a result, even the most simple tool becomes part of a highly complex network of software and descriptive objects which are linked to many other objects.
Managing the Software’s Lifecycle
To the user, software is just a means to an end, a tool which temporarily facilitates the carrying out of particular tasks within the business process. In its lifecycle, the software passes through multiple development cycles (fig. 1) until it is replaced by a completely different tool (fig. 2). Every single software or software change is designed in line with defined requirements, or compared with other software, and then, if found suitable, developed and implemented.
While being used, software is maintained, improved, and eventually deactivated. Some vendors offer tools to record all circumstances which determine the lifecycle of a software component as a complex system. The suitable instrument to this end is the Software Lifecycle Management. It offers a series of methods, techniques and supported by tools like advanced CMDB solutions and workflow engines.
Multiple views in a holistic approach
Software changes permanently. Its functionality is extended, the entry of data is facilitated, tasks are diversified. Existing software must be migrated, changes must be activated. Finally, a new version emerges from the amended former software version, or from part of it. For this new version, new instructions, new testing, and a new configuration are needed. Parts of the old software component continue to exist in the form of functions or modules which have been integrated in the new version.
To reduce the complexity analyzing software systems during the change process tools allowing to take different perspectives have become a necessity. Depending on diverse requirements and tasks, for software environments we must be able to look at all software or descriptive objects and their relationships from a business, a development or a supplier view.
Development for sustainable systems requires a multidimensional look beyond the single development cycle. The overall software lifecycle, the cycle above the development cycle must be managed. Unidimensional, snapshot-like views as offered by many software techniques, do not allow an integrated Software Lifecycle Management. The tools for building up lifecycle management environments allowing to all interdependencies across the entire cycle are available, but still rarely used.
Once in place lifecycle management systems keep even complex software systems manageable, customizable and flexibly adaptable.