Requirements Management Applied in an Agile Project Management Environment
Total Page:16
File Type:pdf, Size:1020Kb
Requirements Management applied in an agile Project Management environment Franco (Frank) Curtolo CEng, Principal Consultant, Program Planning Professionals Ltd, [email protected] Categorisation • Accessibility: PRACTITIONER • Application: GOOD PRACTICE • Topics: Agile Systems Engineering; Project Management Abstract This paper looks at how the Requirements Management process of Systems Engineering may benefit from some of the aspects derived from developing systems within an agile Project Management environment, using as example, the Scaled Agile Framework® of © Scaled Agile, Inc. The aim is to see if some of these agile techniques can enhance the Systems Engineering approach. Systems Engineering (SE) is well suited to develop large, complex products in a project environment where the requirements can be defined and fixed upfront. In fact, SE relies on an initial, well-defined End User’s need specified in for example, a User Requirements Specification (URS), to establish an initial requirements baseline which is used to drive the rest of the development process. However not all development projects happen that way. Sometimes the End User’s need is not clear, or cannot be well defined upfront, thus not allowing it to be captured in a fixed requirements baseline. Furthermore, the project environment may need to accommodate rapid change, both in the End Users’ need and in the technologies available to satisfy this need. In such a project environment, an agile development approach, as described in the Scaled Agile Framework® (SAFe®), may be more suitable since it allows for incremental delivery of the product and change to requirements. This can accommodate undefined End User needs, rapid change in requirements and allow for the introduction of innovation during the development and implementation stages. The purpose of this paper is to describe how some of the techniques of the Scaled Agile Framework®, could be applied to enhance the Requirements Management process of Systems Engineering. Introduction With the need for well-defined requirements upfront; the Requirements Management (RM) process of SE has received a lot of attention. It has become a well-established and well defined, standardised process. Perhaps the best examples of this can be found in: - Page 1 of 9 Copyright © 2018 by Frank Curtolo. Published and used by INCOSE UK Ltd and INCOSE with permission. • ISO/IEC/IEEE 15288:2015 - Systems and software engineering — System life cycle processes [1], • ISO/IEC 29148:2011 - Systems and software engineering — Life cycle processes — Requirements engineering [2]. By performing processes like Business or Mission Analysis; Stakeholder Needs and Requirements Definition; and System Requirements Definition, the RM process ensures that the End User’s needs are comprehensively analysed and well defined at the start of product development. RM in the SE context can be summarised using the Vee model taken from the SYSTEMS ENGINEERING HANDBOOK [3]. This depicts a sequential development life cycle (most suited to hardware products) with development and definition occurring top down (left leg of the Vee) through the System hierarchical levels and implementation and integration following a bottom up sequence (right leg of the Vee) from Components, into Subsystems and System levels. The main attributes of this model with respect to requirements are: Decomposition The Decomposition or allocation of requirements from the highest system hierarchical level to lower level system elements occurs top down along the left leg of the Vee. System requirements are broken done into Subsystem and Component requirements which act as the inputs for the development of these lower level system elements. Requirements baselines are established at each system hierarchical level. Traceability With the breakdown of requirements, Traceability between Lower level system elements requirements and Upper level system element requirements must be maintained so that changes in requirements and changes in the configuration of the system elements, can be managed using the Configuration Management process. This is achieved by means of defined development baselines in which requirements are fixed. Verification and Validation At each level of the system hierarchy the realized (or implemented) solution (right leg of the Vee) is checked to confirm that it meets its specified requirements (in the left leg of the Vee). This is termed Verification when demonstrating conformance to specification (i.e. is the system built right) and Validation when the complete system performance is demonstrated to satisfy the End Users’ need (i.e. is the right system built). Validation takes place with the system is in its operational environment. Requirements Baselines At each system hierarchical level, the System, Subsystem and Component requirements are captured in artefacts (called specifications) which are used to define the system development baselines, and act as: - Page 2 of 9 • input to the next level of system development or project phase, during design and definition, • criteria against which the realised system solution is measured, during integration, Verification and Validation. • mechanisms for managing the configuration of the product during development and implementation and for maintaining traceability of requirements. Approach Scaled Agile for large scale development The Scaled Agile Framework® (SAFe®) is a knowledge base for implementing Lean-Agile development [4]. It is based on applying an Agile Mindset which is described (by Susan McIntosh) as “the set of attitudes supporting an agile working environment. These include respect, collaboration, improvement and learning cycles, pride in ownership, focus on delivering value, and the ability to adapt to change”. It is based on three bodies of knowledge, namely, Agile Development; Systems Thinking; and Lean Product Development. SAFe® Requirements Model To support bringing the benefits of Lean and Agile development to large scale, complex systems, SAFe® also has a requirements model. This model, taken from the Scaled Agile Framework® version 4.5 in reference [4], is shown in Figure 1 below. The Scaled Agile Framework® requirements model is applied ‘iteratively’ in small, continuous development cycles, in contrast to the sequential development life cycle of the SE Vee model of reference [3] described in the Introduction. In SAFe® the ‘requirements’ are contained in the Epics, Capabilities, Features and Stories, instead of the specifications of the SE requirements model. An Epic is a container for a Solution development initiative large enough to require analysis, the definition of a Minimum Viable Product (MVP), and financial approval prior to implementation. Implementation occurs over multiple Program Increments (PIs) and follows the Lean start-up cycle of ‘build-measure-learn’. A Capability is a higher-level solution behaviour that typically spans multiple Agile Release Trains. Capabilities are sized and split into multiple Features. A Feature is a service that fulfils a stakeholder need. Each Feature is described by a phrase, benefit hypothesis and acceptance criteria, and is sized or split as necessary to be delivered by a single Agile Release Train (ART) in a Program Increment (PI), iterative cycle. Stories are short descriptions of a small piece of desired functionality, written in the End User’s language of a user-voice statement and acceptance criteria. Agile Teams implement small, vertical slices of system functionality and are sized so they can be completed by the Team in a single Iteration. The above artefacts replace the requirements specifications used in SE with new paradigms based on Lean-Agile development. Page 3 of 9 Figure 1 – SAFe Requirements Model, taken from Ref [4] The SAFe® requirements model also has hierarchical structure providing the decomposition and traceability of ‘requirements’ from Epics and Capabilities at Business Level (the SAFe® Portfolio and Large Solution Levels) to Features and Stories at implementation or in SAFe® language, Program and Team Levels. A broad and generic mapping of the hierarchical levels and the type of ‘requirements’ artefacts used in Systems Engineering and SAFe® is shown in Table 1 below. SYSTEMS ENGINEERING SCALED AGILE FRAMEWORK LEVEL DOCUMENT DOCUMENT LEVEL System of Systems Stakeholder/User Requirements Epics Portfolio Specification (StRS/URS) System System/Software Requirements Capabilities Large Solution Specification (SyRS/SRS) Subsystem Subsystem Specification (SSS) Features Program Component Component Specification Stories Team Table 1 – Systems Engineering and Scaled Agile hierarchy and requirements artefacts Since SE and its RM process is used in large system development, it seems appropriate to look at SAFe® and its requirements model for possible features of an Agile Mindset which could enhance the SE RM process. The features of SAFe® most appropriate for System development occur primarily at the Large Solution and Program Levels, with the development of System-of-Systems aligning with the SAFe® Portfolio Level and Team level aligning mostly with Component level development. The SAFe® Lean-Agile Principles taken from [4] which are most applicable to RM are: Page 4 of 9 • Principle #1 - Take an economic view • Principle #2 - Apply systems thinking • Principle #3 - Assume variability; preserve options • Principle #4 - Build incrementally with fast integrated learning cycles • Principle #5 - Base milestones on objective evaluation of working systems