Application Lifecycle Management at a glance
Welcome to Application Lifecycle Management, in this series of blog posts, I will illustrate the basics of Application Lifecycle Management including its benefits, history and building blocks. We shall talk about Agile methodology in general and how Agile strategies can enrich application lifecycle management.
This first blog post sets the stage and gives you an introduction to what ALM comprises. The second part will talk about the building blocks of ALM followed by part three which will talk about the tools used for implementing ALM. Part four introduces version control strategies that will help you streamline your development process. Finally, part five will discuss productive workspaces and how ALM can counteract the illusion of control by operating as a change enabler. After this series of blog posts, you’ll be ready to explore Agile strategies in more detail and learn how you can implement these strategies with the tools that Microsoft provides.
Getting started with Application Lifecycle Management
This post is about Application Lifecycle Management (ALM) and brings together best of two worlds, Agile and ALM. We shall discuss ALM as a way to develop and release software in a coherent, integrated way, spanning all development phases, artifact types, roles and business units. Bringing ALM and Agile together and using the right tools leads to modern, efficient way of developing software. Consequently, you’ll reduce costs, boost your productivity, and accelerate your team’s collaboration. And you can make developing software a lot more fun. ALM is based on software configuration management (SCM). SCMin turn, is based on basic version control (see figure 1 below)
Figure #1: ALM based on SCM
ALM can be used with all kinds of process models and methodologies, including traditional ones, such as waterfall or spiral models. There are also ALM approaches that can hardly be called Agile or that are based on large-scale commercial tools, these can be difficult and expensive to implement. We however shall focus on driving the process through people and not merely through tools. This results in processes and tools that are flexible, open to change, and high quality.
ALM describes the coordination of development lifecycle disciplines including the management of requirements, changes, configurations, integrations, releases and tests. These functions span development phases including requirements definition, design, code, test, and run as shown below.
Figure #2: ALM bridges the development disciplines and phases of requirements definition, design, code, test, and run.
ALM is aligned with the engineering process, spanning development phases. This results in releases that are functionally and technically consistent. ALM also manages the relationships between various artifact types, including requirement documents, coding artifacts, and build scripts that are used or produced by the engineering process. By organizing, linking, and referencing activities, artifacts, you can track the development process as a whole. Through the use of integrated tools, ALM can help you overcome the biggest challenge in software creation process: the technological and functional barriers that make it difficult to implement a transparent and consistent development process.
ALM is a task-based approach in which all activities are linked to requirements, and the relationships between all artifacts are visible; therefore, artifacts can be traced to the requirements that they are based on. In summary, ALM consists of the following four major fundamentals.
Other Links for Application Lifecycle Management
Application Lifecycle Management - Part 2 of 5
Application Lifecycle Management - Part 3 of 5
Application Lifecycle Management - Part 4 of 5
Application Lifecycle Management Part 5 of 5