SPEC Innovations' Community Blog | Systems Engineering Approaches

A Guide to Agile Application Lifecycle Management (ALM)

Written by John Schatz III | 7/2/24 5:11 PM

OVERVIEW

The purpose of this guide is to describe SPEC Innovations’ approach to Agile Application Lifecycle Management within an Innoslate-based Digital Engineering Environment (DEE).

 

 

1   What Is AGILE APPLICATION LIFECYCLE MANAGEMENT (ALM)

 

What Is ALM?

Application Lifecycle Management (ALM) describes the governance, development, and maintenance of software throughout its lifecycle. ALM supports multiple software development methodologies ranging from Waterfall to Agile.

What Is Agile?

Agile software development emphasizes short development cycles, responsiveness to changing requirements, the incorporation of stakeholder feedback, team collaboration, and continuous application improvement.

There are numerous ways to implement Agile software development, but most implementations contain sprints and Program Increments (PIs). Sprints are the lowest level of iteration within Agile. Individual sprints have narrow goals and typically range in duration from one to four weeks. PIs are larger iterations involving multiple teams coordinating to provide key features. PIs are typically broken down into four or five sprints. The relationship between Agile sprints and PIs is shown in Figure 1-1.

Figure 1-1. Agile Sprint to PI Relationship

 

The Agile ALM approach described in this document is best applied for Program Increment (PI) level releases, but it can be tailored to other release durations.

 

 

 

2   Agile ALM Ecosystem

To implement its approach to Agile ALM, SPEC Innovations supplements an Innoslate-based DEE with other tools. The tools comprising the Innoslate-based Agile ALM ecosystem and their primary functions are shown in Table 2-1.

Table 2-1. Innoslate-Based Agile ALM Ecosystem

 

Innoslate is a full-lifecycle model-based systems engineering tool that acts as the central digital engineering data repository within the DEE. It provides high-level technical and programmatic functions in support of the Agile ALM.

GitHub, in addition to performing its primary functions of application development and deployment, exchanges data with Innoslate. Innoslate’s GitHub View provides Innoslate users with limited access to GitHub repositories. Innoslate and GitHub can also be configured to synchronize issue data (i.e. GitHub Issues and Innoslate Issue class entities). 
Selenium, integrated with the JUnit test framework, is used for automated code testing. Innoslate Java SDK code is executed from within JUnit tests to update Innoslate Test Suites with the automated test results.

Sopatra, a SPEC Innovations tool for modeling and analyzing Standard Operating Procedures (SOPs), is used to evaluate user employment of deployed application releases and inform future requirements.

The Innoslate-based Agile ALM ecosystem can be customized with other tools (e.g., a development environment other than GitHub). The cost-benefit analysis for such modifications should account for the effort required to fully integrate these tools or the lost capabilities by failing to do so.

 

 

3   The AGILE ALM STAGES

SPEC Innovations’ approach to Agile ALM is made up of five stages:

  1. Requirement Specification
  2. Development
  3. Testing and Quality Assurance
  4. Deployment
  5. Operations and Maintenance

Additionally, Program Management occurs concurrently with the Agile ALM stages. The Agile ALM stages with their associated ecosystem tools are shown in Figure 3-1, described in the following subsections (i.e., Subsections 3.x), and summarized in Appendix A.

Figure 3-1. Innoslate-Based Agile ALM Stages

 

The Agile ALM stages are executed sequentially in a loop, starting with the Requirement Specification stage.  The loop is terminated when the application is retired from usage.

Multiple releases will often progress through different Agile ALM stages concurrently.  For example, Release 1 may be in Operations and Maintenance while Release 2 is in Test and Quality Assurance, Release 3 is in Development, and Release 4 is in Requirement Specification.

 

3.1   Requirement Specification Stage

The Requirement Specification stage consists of determining features and defect corrections to be implemented in the next release. Within SPEC Innovations’ approach to Agile ALM, the following activities occur as part of this stage:

  • Application design documented and/or updated using Action Diagrams
  • Design completeness assessed through Discrete Event Simulator runs
  • Requirements (i.e., features) captured and tagged with release labels in Innoslate’s Documents View
  • Requirement specification values determined or supported by Monte Carlo Simulator runs
  • Release goals established for defects identified during Operations and Maintenance stage; defects tagged with release labels


3.2   Development Stage

The Development stage consists of implementing software features and defect corrections identified in the Requirement Specification stage. Within SPEC Innovations’ approach to Agile ALM, the following activities occur as part of this stage:

  • Features captured as issues; either maintained in GitHub or synchronized between GitHub and Innoslate
  • Application software features and defect corrections developed within GitHub
  • Issues discovered, edited, or commented upon from within GitHub (developers) or through Innoslate’s GitHub Issues View (non-developers)
  • Development backlog, status, and assignments monitored on Kanban Boards
  • Productivity insights assessed by viewing commits activity and pull requests

 

3.3   Testing and Quality Assurance Stage

The Testing and Quality Assurance stage consists of verifying that the application implements the features and defect corrections identified in the Requirement Specification stage. Preparatory activities for this stage may occur concurrently with the Development stage and include the following:

  • Test plan developed in Innoslate’s Documents View
  • Test procedures developed in Innoslate's Test Suite
  • Automated application testing scripts created in Selenium with JUnit

Within SPEC Innovations’ approach to Agile ALM, the following activities occur as part of this stage:

  • Test plans updated in Innoslate’s Documents View
  • Test procedures updated in Innoslate's Test Suite
  • Manual tests conducted in accordance with test procedures
  • Automated application testing conducted through Selenium
  • Manual and automated test results captured in Innoslate's Test Suite
  • Reports generated to document Test Case status and traceability


3.4   Deployment Stage

The Deployment stage consists of issuing the application release to the target environment. Within SPEC Innovations’ approach to Agile ALM, the following activities occur as part of this stage:

  • Application release deployed with GitHub

 

3.5   Operations and Maintenance Stage

The Operations and Maintenance stage consists of monitoring, optimizing, and identifying issues with the deployed release. Within SPEC Innovations’ approach to Agile ALM, the following activities occur as part of this stage:

  • User issues (i.e., software defects) discovered, edited, or commented upon through Innoslate’s GitHub View
  • Operational analysis conducted in Sopatra to inform future requirements

 

3.6   Program Management Stage

Program Management consists of managing technical and programmatic aspects of the Agile ALM. Within SPEC Innovations’ approach to Agile ALM, the following activities occur as part of Program Management:

  • Programmatic information maintained on Innoslate Project Dashboards to provide context for systems engineers, developers, testers, specialized support staff, and external stakeholders
  • Development schedule tracked using Innoslate Timeline Diagrams or Gantt Charts; release details viewable on development Kanban Boards
  • Risk identification and analysis captured in Innoslate Risk Diagrams
  • Risk mitigations maintained in Innoslate Risk Burn-Down Charts
  • Collaborative capabilities used to aid coordination and deconfliction

 

 

4   Conclusion

SPEC Innovations’ approach to Agile ALM consists of five stages plus Program Management. Innoslate, supplemented with other tools in the Innoslate-based Agile ALM ecosystem, provides a tailorable mechanism to implement Agile methodologies throughout an application’s lifecycle.

 

 

Appendix A

INNOSLATE-BASED AGILE ALM STAGE ACTIVITIES WITH SUPPORTING ECOSYSTEM FEATURES