Application lifecycle management

2014-06-28 by Marina Astapchik

Today for an application to be successful there should be an organized development platform that enables control of an application lifecycle, simultaneously reduces the costs and provides continuous business solutions. Application lifecycle management — is supposed to be a strategic answer to application chaos and a means for business growth.

According to the Online Cambridge Dictionary, a lifecycle means the series of changes that a living thing goes through from the beginning of its life until death, while management implies the control and organization of something. Projecting these definitions on the information technologies sphere application lifecycle management can also be generally explained by summing up of the two terms, though with light changes due to a specific character of the subject (software applications). So, dilettantish, one can defy application lifecycle management, or to put it in short, ALM, as a process of governing and controlling of a software application existence from its first appearance until it reaches its final point, in other words, until it is removed from the market.

However, taking into account the modern market challenges and requirements to any product, including a software application, we cannot limit ourselves with such a narrow view concerning ALM. Let's get deeper into the topic. From a more scientific perspective application lifecycle management is the entire period of managing the life of an application from a concept to its removal. This period encompasses the whole development process which is not so far away from us as it seems to be at first sight.

Applications are used for private and business purposes. Surely, there is no doubt ALM is first of all made for business customers. However, as far as any application lifecycle encompasses certain stages, it will be better to examine them referring to a beloved Skype application and make the ALM definition clear for everyone. It is always right to go from an easier to a more complex thing.

Let's see which components ALM consist of. Here one can reason on an everyday level.

Figure 1: Application lifecycle management

Without doubt, each of us faces ALM every day. Suppose the top 10 examples of applications include Microsoft Word, Google Chrome, Windows Media Player, World of Warcraft, Adobe Photoshop, iTunes, Skype, Steam, Adobe Dreamweaver, and Corel WordPerfect. On a philistine level we are offered to "refresh" this or that application in our PC. This is a part of ALM in a broad sense which satisfies a necessity to make an application more adaptive to the needs of users and, in such a way, more profitable at the market. (Generally one can defy the goal of the ALM in such a way in general).

In other words, an update of an application is one of the application lifecycle stages. However, the ALM itself begins much earlier.

Let's take Skype as a philistine and for all understandable example. Just some information:

Skype was founded in 2003. The first public version was released on 29 August 2003.

At first, the application had a simple interface, voice adapted unlike ICQ and MSN Messenger. During installation Skype chose the language localization of Windows and had a quick and easy registration login in comparison with competing programs. It was and is easy to install. This is how Skype's ALM began, with an idea that users demand a highly innovative product, easier to be treated, in this particular case in comparison to the existing communication programs, and this can also be called requirement management. It is also a continuous process through the project. Thus, referring to our Skype example, the Skype 1.2 Version included Voicemail for the first time, as well as introduced a Skypeln function that allows linking a Skype account with a phone number. In other words, requirement management as a part of the ALM includes verification and adaptation of an application to the needs and expectation of its users and stakeholders, both external and internal. Generally, requirements management investigates the situation, makes a decision on the requirements' feasibility, then designs and constructs the application, tests it to make sure that the work still complies with the initial requirements and budget and finally releases the application. The requirements management extends over the entire application lifecycle management and is its crucial point, is a method and a means to provide what business need.

Then, one should mention a more narrow and specific component of the ALM — software architecture. To put it briefly, it includes software components and relations between them as well as features of both the components and relations. Software architecture encompasses instruments to design an application.

As an obvious case, we refer again and again to our simple application example — Skype. The Skype architecture consists of a central registration server to which all clients register, its main operation principle is a peer model.

Application architecture is closely interconnected with computer programming which makes an executable program out of a problem. It creates an algorithm in confirmation with which an application works.

Since an application is created, it should be tested. Application testing is a vital stage of the application lifecycle management. Actually, it validates an application and answers the question whether requirements for its development are met. From the technical point of view, application testing presupposes that no mistakes should occur after its release. In other words, ALM is demarcated with an application testing as far as the matter of quality predetermines the success or failure of the deal. Moreover, applications should be maintained, which means modifications with a view to correct faults and improve the operation and the optimization on the whole. A few days ago the Microsoft Corporation stunned the world announcing that it develops a program which will make a near real time speech-to-speech translation in Skype. In this particular case application maintenance means enhancement of the application's capabilities.

However, sometimes maintenance is perceived as correction or defect tracking which is also an aspect of application maintenance. Moving on to the next explanation, it's necessary to mention change management. According to Meir Lehmann's law of the continuing change systems must change as not to become less useful. For most applications changes reappear again and again several more times during the lifecycle, changes introduce new versions and upgrades of an application which we face every day.

Thus, applications are experiencing an ongoing process of development, testing and release.

As you can see, ALM is a huge complex activity of the IT companies to supply a highly innovative product to the market.
But that's, however, a broad perspective regarding the phenomenon of ALM. As it have been already mentioned, there is a need to introduce narrower, more specific customized products that is why application lifecycle management is aimed at solving problems of individuals. All the above mentioned stages are introduced as software suites or platforms for applications determined for particular businesses.

Referring to the VTB24 Bank example, the ALM was introduced to optimize the work of the applications whose number increased rapidly as the bank's activity expanded. In such a way ALM turns into an industry of the IT-market. Microsoft, IBM, Oracle, Boland and other big players introduce set of means to support an application lifecycle (e.g. Visual Studio, IBM Rational Solution, FusionForce etc.). Nowadays ALM solutions are made for discrete manufacturers and include all the above mentioned components: requirement management, test and maintenance management, change management that are presented as a single integrated solution that supports variant complexity of an application. Actually, it's a good product to make money and business.

And it's shouldn't be ignored. Since ALM is concentrated on transfer of the newest information throughout the whole application life and its maintenance, that's a way how to make business effective as well as to make it grow. Automatization, collaboration, synchronization, integration, innovation are ALM's best features that will surely make it grow and spread.

Elinext Group web-based projects: is a digital wall of 155 km length
LiveSV is a website about cultural life in Silicon Valley is a web community for sports gamblers
Day Nurseries & Care Homes Case Study

Industries and Technology Areas:

Industries: software development

Technology Areas: mobile and web application development, application lifecycle management


Top Questions and Answers about CRM

Growing businesses are looking for a better way to manage customer relations. Understanding that the idea to store their information in note cards or Google documents is a bit old-fashioned, they are wondering, what is CRM, how it works and how it can help their businesses. These questions are hardly...
Node.js: pros and cons

Bringing Node.js into your project: pros and cons

Introduction “Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.” This is what official Node.js website tells us, and this...
Database Migration Best Practice

How to migrate high-load tables with zero downtime using background jobs and SQL views

Sometimes database migration may become a pain. The tables are large, the load is high, HDD space is expensive and the downtime should be as short as possible. Elinext team has recently investigated the issue within one of our Ruby on Rails projects and managed to offer a flexible data…


Best practices of Big Data implementation

Part 1. How we struggled with big data implementation. The  whole story about big data implementation started with an ongoing project. Our team was working on a project for monitoring a range of devices: switches, routers, computers and more. The main goal of this system was to provide businesses with...


Elinext is a custom software development and consulting company focusing on web, mobile, desktop and embedded software development, QA and testing. Since 1997, we have been bringing digital transformation to mid-sized and large enterprises in Banking and Finance, Insurance, Telecommunications, Healthcare and Retail. Our key domains include enterprise software, e-commerce, BI and Big Data, e-learning and IoT.