Application lifecycle management

Last updated

Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, continuous integration, project management, and release management. [1] [2]

Contents

ALM vs. Software Development Life Cycle

ALM is a broader perspective than the Software Development Life Cycle (SDLC), which is limited to the phases of software development such as requirements, design, coding, testing, configuration, project management, and change management. ALM continues after development until the application is no longer used, and may span many SDLCs.

Integrated ALM

Modern software development processes are not restricted to the discrete ALM/SDLC steps managed by different teams using multiple tools from different locations.[ citation needed ] Real-time collaboration, access to the centralized data repository, cross-tool and cross-project visibility, better project monitoring and reporting are the key to developing quality software in less time.[ citation needed ]

This has given rise to the practice of integrated application lifecycle management, or integrated ALM, where all the tools and tools' users are synchronized with each other throughout the application development stages.[ citation needed ] This integration ensures that every team member knows Who, What, When, and Why of any changes made during the development process and there is no last minute surprise causing delivery delays or project failure.[ citation needed ]

Today's application management vendors focus more on API management capabilities for third party best-of-breed tool integration which ensures that organizations are well-equipped with an internal software development system that can easily integrate with any IT or ALM tools needed in a project.[ citation needed ]

A research director with research firm Gartner proposed changing the term ALM to ADLM (Application Development Life-cycle Management) to include DevOps, the software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops). [3]

ALM software suites

Some specialized software suites for ALM are:

NameReleased by
Azure DevOps for Visual Studio Application Lifecycle Management Microsoft
Enterprise Architect Sparx Systems
GitLab GitLab
Helix ALM Perforce
JIRA Atlassian
Micro Focus Application Lifecycle Management Micro Focus
Mylyn Eclipse Foundation
Parasoft DTP Parasoft
Protecode System 4 Protecode
PTC Integrity PTC
Pulse Genuitec
Rocket Aldon Rocket Software
SAP Solution Manager SAP
StarTeam Borland
TeamForge CollabNet
Tuleap Enalean

See also

Related Research Articles

The waterfall model is a breakdown of development activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. The approach is typical for certain areas of engineering design. In software development, it tends to be among the less iterative and flexible approaches, as progress flows in largely one direction through the phases of conception, initiation, analysis, design, construction, testing, deployment and maintenance. The waterfall model is the earliest SDLC approach that was used in software development.

In software engineering, software configuration management is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include revision control and the establishment of baselines. If something goes wrong, SCM can determine the "what, when, why and who" of the change. If a configuration is working well, SCM can determine how to replicate it across many hosts.

<span class="mw-page-title-main">Systems development life cycle</span> Systems engineering terms

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

CollabNet VersionOne is a software firm headquartered in Alpharetta, Georgia, United States. It was Founded by Tim O’Reilly, Brian Behlendorf, and Bill Portelli. CollabNet VersionOne products and services belong to the industry categories of value stream management, DevOps, agile management, application lifecycle management (ALM), and enterprise version control.

Azure DevOps Server, formerly known as Team Foundation Server (TFS) and Visual Studio Team System (VSTS), is a Microsoft product that provides version control, reporting, requirements management, project management, automated builds, testing and release management capabilities. It covers the entire application lifecycle and enables DevOps capabilities. Azure DevOps can be used as a back-end to numerous integrated development environments (IDEs) but is tailored for Microsoft Visual Studio and Eclipse on all platforms.

Aldon is a business unit of Rocket Software. It develops, manufactures, licenses and supports software change management products for the enterprise application lifecycle management (ALM) and software change management (SCM) markets.

AnthillPro is a software tool originally developed and released as one of the first continuous integration servers. AnthillPro automates the process of building code into software projects and testing it to verify that project quality has been maintained. Software developers are able to identify bugs and errors earlier by using AnthillPro to track, collate, and test changes in real time to a collectively maintained body of computer code.

A collaborative development environment (CDE) is an online meeting space where a software development project's stakeholders can work together, no matter what time zone or region they are in, to discuss, document, and produce project deliverables. The term was coined in 2002 by Grady Booch and Alan W. Brown.

In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of software development (Dev) and IT operations (Ops) as a means for improving and shortening the systems development life cycle. DevOps is complementary to agile software development; several DevOps aspects came from the agile way of working.

OpenText ALM (Application Lifecycle Management) is a comprehensive solution designed to support and enhance the entire lifecycle of application development and management. It provides robust tools for planning, development, testing, deployment, and maintenance, ensuring that software projects are delivered efficiently and effectively.

Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. Continuous testing was originally proposed as a way of reducing waiting time for feedback to developers by introducing development environment-triggered tests as well as more traditional developer/tester-triggered tests.

Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and following a pipeline through a "production-like environment", without doing so manually. It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.

UNICOM Focal Point is a portfolio management and decision analysis tool used by the product organizations of corporations and government agencies to collect information and feedback from internal and external stakeholders on the value of applications, products, systems, technologies, capabilities, ideas, and other organizational artifacts—prioritize on which ones will provide the most value to the business, and manage the roadmap of how artifacts will be fielded, improved, or removed from the market or organization. UNICOM Focal Point is also used to manage a portfolio of projects, to understand resources used on those projects, and timelines for completion. The product is also used for pure product management—where product managers use it to gather and analyze enhancement requests from customers to decide on what features to put in a product, and develop roadmaps for future product versions.

Helix ALM, formerly called TestTrack, is application lifecycle management (ALM) software developed by Perforce. The software allows developers to manage requirements, defects, issues and testing during software development.

Perforce Software, Inc. is an American developer of software used for developing and running applications, including version control software, web-based repository management, developer collaboration, application lifecycle management, web application servers, debugging tools and agile planning software.

<span class="mw-page-title-main">DevOps toolchain</span> DevOps toolchain release package.

A DevOps toolchain is a set or combination of tools that aid in the delivery, development, and management of software applications throughout the systems development life cycle, as coordinated by an organisation that uses DevOps practices.

DataOps is a set of practices, processes and technologies that combines an integrated and process-oriented perspective on data with automation and methods from agile software engineering to improve quality, speed, and collaboration and promote a culture of continuous improvement in the area of data analytics. While DataOps began as a set of best practices, it has now matured to become a new and independent approach to data analytics. DataOps applies to the entire data lifecycle from data preparation to reporting, and recognizes the interconnected nature of the data analytics team and information technology operations.

<span class="mw-page-title-main">MLOps</span> Approach to machine learning lifecycle management

MLOps or ML Ops is a paradigm that aims to deploy and maintain machine learning models in production reliably and efficiently. The word is a compound of "machine learning" and the continuous development practice of DevOps in the software field. Machine learning models are tested and developed in isolated experimental systems. When an algorithm is ready to be launched, MLOps is practiced between Data Scientists, DevOps, and Machine Learning engineers to transition the algorithm to production systems. Similar to DevOps or DataOps approaches, MLOps seeks to increase automation and improve the quality of production models, while also focusing on business and regulatory requirements. While MLOps started as a set of best practices, it is slowly evolving into an independent approach to ML lifecycle management. MLOps applies to the entire lifecycle - from integrating with model generation, orchestration, and deployment, to health, diagnostics, governance, and business metrics. According to Gartner, MLOps is a subset of ModelOps. MLOps is focused on the operationalization of ML models, while ModelOps covers the operationalization of all types of AI models.

TestOps refers to the discipline of managing the operational aspects of testing within the software delivery lifecycle.

References

  1. deJong, Jennifer (2008-04-15). "Mea culpa, ALM toolmakers say". SDTimes. Archived from the original on February 2, 2011. Retrieved 2008-11-22.
  2. Chappell, David, What is Application Lifecycle Management? (PDF), archived from the original (PDF) on December 7, 2014
  3. "Gartner blogpost". 2011-12-02.

Further reading