Difference between revisions of "Agile Systems Engineering"

From SEBoK
Jump to navigation Jump to search
(Continue adding new content.)
Tag: visualeditor
(Continue adding new content.)
Tag: visualeditor
Line 64: Line 64:
 
|4. Both policy and law must be properly understood to not over-constrain or under-constrain the system implementation.
 
|4. Both policy and law must be properly understood to not over-constrain or under-constrain the system implementation.
 
|}
 
|}
 +
The Principles for Agile Development emphasize focusing on working capabilities and keeping work in progress small.   Table 1 maps the Principles for Agile Development to traditional SE Principles elaborated elsewhere in the SEBoK.  The Principles for Agile Development are complementary to the traditional SE Principles and in some cases very similar.  Click here for the complete set of the [[Systems Engineering Principles|SEBoK Systems Engineering Principles]].
 +
 +
Agile Systems Engineering Life Cycle Model for Mixed Discipline Engineering [Dove] describe principles that facilitate operational agility in action:  Sense, Respond and Evolve (SRE).  A large program over the entire life cycle will benefit from applying these principles.  In addition, the Scaled Agile Framework® (SAFe®) describes principles that facilitate developmental agility on large programs with teams of teams including systems engineering.  The Operational Agility Principles and the SAFe Lean-Agile Principles are mapped in Table 2 to show the consistency between them.  There is value in starting from an agile mindset and applying a set of principles.
 +
{| class="wikitable"
 +
|+
 +
!'''Operational Agility Principles (Dove, et al)'''
 +
!'''Scaled Agile Framework (SAFe) Lean-Agile Principles'''
 +
|-
 +
|Sensing: External awareness (proactive alertness)
 +
| - Take an Economic view
 +
- Apply Systems Thinking
 +
|-
 +
|Sensing: Internal awareness (proactive alertness)
 +
| - Visualize and limit WIP, reduce batch sizes, and manage queue length
 +
|-
 +
|Sensing: Sense making (risk analysis, trade space analysis)
 +
| - Apply Systems Thinking
 +
|-
 +
|Responding: Decision making (timely, informed)
 +
| - Decentralize decision-making
 +
- Apply cadence, synchronize with cross-domain planning
 +
 +
- Organize around value
 +
 +
- Assume variability; preserve option
 +
|-
 +
|Responding: Action making (invoke/configure process activity to address the situation)
 +
| - Unlock the intrinsic motivation of knowledge workers
 +
- Base milestones on objective evaluation of working system
 +
|-
 +
|Responding: Action evaluation (verification and validation)
 +
| - Apply cadence, synchronize with cross-domain planning
 +
- Visualize and limit WIP, reduce batch sizes, and manage queue length
 +
 +
- Base milestones on objective evaluation of working system
 +
|-
 +
|Evolving: Experimentation (variations on process ConOps)
 +
| - Base milestones on objective evaluation of working system
 +
|-
 +
|Evolving: Evaluation (internal and external judgement)
 +
| - Base milestones on objective evaluation of working system
 +
- Build incrementally with fast, integrated learning cycles
 +
|-
 +
|Evolving: Memory (evolving culture, response capabilities, and process ConOps)
 +
| - Assume variability; preserve option
 +
- Base milestones on objective evaluation of working system
 +
|}
 +
----
  
 
==References==
 
==References==

Revision as of 18:39, 28 April 2022


Lead Author: Phyllis Marbach


For a system, a life cycle usually starts at the concept definition phase, moves through stages until completion of this system, as defined in the concept definition stage.  A model of the life cycle may be a physical, data or graphic representation of that life cycle.  The process describes the steps to accomplish each stage of the life cycle including input to and output from this stage.  Today’s complex and increasingly highly connected systems face rapid obsolescence under the stress of technological change, environmental change, and rapidly evolving mission needs.   For these systems to remain robust against disruption they must be architected to agilely adapt.  To meet these needs, the system must be assessed to apply the process that best serves the system, subsystem or component of the system of interest (SOI).  

It is important to determine the best life cycle to use for the SOI early in the concept definition phase.  On a program that is going to operate agilely, especially if it will be a hybrid model with agile, and other life cycle models it is important to define and harmonize them at key integration points based on hardware or other long-lead item maturity.

In the Agile SE process, the systems engineer works in an iterative, incremental manner, continually modeling, analyzing, developing, and trading options to bring the definition of the system solution into focus.  An example of this work will be analyzing and maintaining not only the requirements but also the architectural model of the higher-level requirements and the linkage from those high-level requirements to the analyzed lower-level requirements.  In addition to the requirements and architecture representations, maintaining and verifying the interfaces are defined and followed as the development progresses are some of the systems engineers’ tasks. These responsibilities of systems engineers are the same regardless of the life cycle, although sequencing and organization may be different.  Program leadership, systems engineering, and all team members work in a culture that represents an Agile Mindset.  The Agile Mindset is a combination of beliefs and actions from agile values that include focusing on delivering working capabilities often, trusting the knowledge workers to find the best solution, improving the product and process through regular demonstrations and retrospections, planning often to implement lessons learned.

Principles for Agile Development

Principles for Agile Development [Marbach, et al] provide a foundation for the working relationship across cross-functional teams that include Systems and Software Engineers working on customer projects that include both hardware development and software development.    These principles, in Table 1, are a modified version that originated from the Agile Manifesto (Beck, et. al.) and were expanded to apply to systems engineering.  Adopting these principles will enable teams of teams to produce high-value capabilities incrementally.

Principles for Agile Development (Marbach, et. al.) SEBoK Traditional SE Principles
First, satisfy the customer through early and continuous delivery of valuable capabilities. 1. SE in application is specific to stakeholder needs, solution space, resulting system solution(s), and context throughout the system life cycle.

8. SE addresses stakeholder needs, taking into consideration budget, schedule, and technical needs, along with other expectations and constraints.

2.  Plan for evolving requirements, and retain as much flexibility as is valuable throughout development; agile processes harness change for the customer, especially when change leads to a competitive advantage. 7. Stakeholder needs can change and must be accounted for over the system life cycle.

9. SE decisions are made under uncertainty accounting for risk.

3.  Deliver working capabilities frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 5. The real physical system is the perfect model of the system.

2. SE has a holistic system view that includes the system elements and the interactions amongst themselves, the enabling systems, and the system environment.

4.  Business personnel, customers or their advocates and implementers must work together daily throughout the project. 3. SE influences and is influenced by internal and external resources, and political, economic, social, technological, environmental, and legal factors.

13. SE integrates engineering disciplines in an effective manner.

14. SE is responsible for managing the discipline interactions within the organization.

5.  Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. A focus of SE is a progressively deeper understanding of the interactions, sensitivities, and behaviors of the system, stakeholder needs, and its operational environment.
6.  The most efficient and effective method of conveying information is personal conversation. 13. SE integrates engineering disciplines in an effective manner.
7.  Working capabilities are the primary measure of progress. 5. The real physical system is the perfect model of the system.
8.  Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 8. SE addresses stakeholder needs, taking into consideration budget, schedule, and technical needs, along with other expectations and constraints.


9. SE decisions are made under uncertainty accounting for risk.

9.  Continuous attention to technical excellence and good design enhances agility. 10. Decision quality depends on knowledge of the system, enabling system(s), and interoperating system(s) present in the decision-making process.
10.  Simplicity “the art of maximizing the amount of work not done” is essential, especially within the implementation team. A truly agile development project does not force artificial reporting and process requirements on the implementation team. 4. Both policy and law must be properly understood to not over-constrain or under-constrain the system implementation.
11.  The best architectures, requirements, and designs emerge from self-organizing teams, based on a minimal set of guiding principles. 10. Decision quality depends on knowledge of the system, enabling system(s), and interoperating system(s) present in the decision-making process.
12.  At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 4. Both policy and law must be properly understood to not over-constrain or under-constrain the system implementation.

The Principles for Agile Development emphasize focusing on working capabilities and keeping work in progress small.   Table 1 maps the Principles for Agile Development to traditional SE Principles elaborated elsewhere in the SEBoK.  The Principles for Agile Development are complementary to the traditional SE Principles and in some cases very similar.  Click here for the complete set of the SEBoK Systems Engineering Principles.

Agile Systems Engineering Life Cycle Model for Mixed Discipline Engineering [Dove] describe principles that facilitate operational agility in action:  Sense, Respond and Evolve (SRE).  A large program over the entire life cycle will benefit from applying these principles.  In addition, the Scaled Agile Framework® (SAFe®) describes principles that facilitate developmental agility on large programs with teams of teams including systems engineering.  The Operational Agility Principles and the SAFe Lean-Agile Principles are mapped in Table 2 to show the consistency between them.  There is value in starting from an agile mindset and applying a set of principles.

Operational Agility Principles (Dove, et al) Scaled Agile Framework (SAFe) Lean-Agile Principles
Sensing: External awareness (proactive alertness) - Take an Economic view

- Apply Systems Thinking

Sensing: Internal awareness (proactive alertness) - Visualize and limit WIP, reduce batch sizes, and manage queue length
Sensing: Sense making (risk analysis, trade space analysis) - Apply Systems Thinking
Responding: Decision making (timely, informed) - Decentralize decision-making

- Apply cadence, synchronize with cross-domain planning

- Organize around value

- Assume variability; preserve option

Responding: Action making (invoke/configure process activity to address the situation) - Unlock the intrinsic motivation of knowledge workers

- Base milestones on objective evaluation of working system

Responding: Action evaluation (verification and validation) - Apply cadence, synchronize with cross-domain planning

- Visualize and limit WIP, reduce batch sizes, and manage queue length

- Base milestones on objective evaluation of working system

Evolving: Experimentation (variations on process ConOps) - Base milestones on objective evaluation of working system
Evolving: Evaluation (internal and external judgement) - Base milestones on objective evaluation of working system

- Build incrementally with fast, integrated learning cycles

Evolving: Memory (evolving culture, response capabilities, and process ConOps) - Assume variability; preserve option

- Base milestones on objective evaluation of working system


References

Works Cited

None.

Primary References

None.

Additional References

None.


< Previous Article | Parent Article | Next Article >
SEBoK v. 2.6, released 13 May 2022