The purpose of this guide is to describe SPEC Innovations’ approach to Agile Application Lifecycle Management within an Innoslate-based Digital Engineering Environment (DEE).
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.
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.
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.
SPEC Innovations’ approach to Agile ALM is made up of five stages:
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.
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:
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:
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:
Within SPEC Innovations’ approach to Agile ALM, the following activities occur as part of this 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:
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:
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:
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.