Agile is Systems Engineering
Glen Alleman MSSM
Applying Systems Engineering Principles, Processes & Practices to Increase Probability of Program Success for Complex System of Systems, in Aerospace & Defense, Enterprise IT, and Process and Safety Industries
I work in the Software Intensive System of Systems (SISoS) domain. We often apply traditional program and project management methods for cost, schedule, and technical management while developing software intensive systems using Agile methods. This work starts with?Capabilities Based Planning to answer the question of what operational capabilities are needed to accomplish a Mission or fulfill a Vision of the enterprise funding the program.
Software development and, many times, hardware development is done agilely, using one of several Agile development methods. But this agile approach needs to answer the question - what capabilities do we need? and moves directly to the Features and Stories (technical and operational requirements) before answering why we need these.
This newsletter is about a person I encountered in writing several years ago. Rick Dove is a Systems Engineer who writes about agile systems concepts and leads agile self-organizing system security research and development.
The current Agile Industrial Complex sells solutions looking for a problem to solve. It's time to revisit Rick's materials through the lens of Systems Engineering (my graduate training and professional practice), starting with Rick's top-level resource, An Agile Enterprise Reference Model with a Case Study .
All Successful Solutions Start With Systems Engineering
To avoid the solution looking for a problem to solve, let's start with a model of the System to an actual problem for the solution applied in a specific domain and to specific problems in that domain traceable to the Five Immutable principles of program management.
Principles of Systems Engineering
Systems Engineering is a critically missing process in many projects, especially Agile development projects. Where I work, Systems Engineering dominates the program management process - agile is simply a method of delivering the software iteratively and incrementally to enable the needed capabilities. Space Flight, Embedded Systems, Software Intensive System of Systems.
When we hear about Agile solving problems, this starts with the 12 principles of Systems Engineering used to increase the probability of any project or program success. These principles come from Section 3.2 of?Engineering Elegant Systems: Theory of Systems Engineering , A Whitepaper, Michael D. Watson, NASA Marshall Space Flight Center, not the 12 principles of the agile manifesto .
Principle 1: Systems engineering integrates the system and the disciplines considering the budget and schedule constraints?
Principle 2: Complex Systems Build Complex Systems
Principle 3: The focus of systems engineering during the development phase is a progressively deeper understanding of the interactions, sensitivities, and behaviors of the system
Principle 4: Systems engineering has a critical role throughout the entire system life-cycle
Principle 5: Systems engineering is based on a middle-range set of theories
Principle 6: Systems engineering maps and manages the discipline interactions within the organization
Principle 7: Decision quality depends on the coverage of the system knowledge present in the decision-making process
Principle 8: Both Policy and Law must be properly understood not overly to constrain or under constrain the system implementation
Principle 9: Systems engineering decisions are made under uncertainty accounting for risk
Principle 10: Verification is a demonstrated understanding of all the system functions and interactions in the operational environment
Principle 11:?Validation is a demonstrated understanding of the system’s value to the system stakeholders
Principle 12:?Systems engineering solutions are constrained based on the decision timeframe for the system need.
Systems Thinking, System Engineering, and Systems Management
There are several paradigms for?Systems Thinking .?Ranging from Psychobabble, where certifications and mandatory training are sold under the banner of acquiring a certificate that can solve complex problems, to hardcore?Systems Engineering . But first, some background between?Systems Theory , Systems Thinking , and Systems Engineering .
领英推荐
Systems Theory?is the interdisciplinary study of?systems?in general, with the goal of elucidating principles that can be applied to all types of?systems?at all nesting levels in all fields of research.
Systems Engineering?is an interdisciplinary field of?engineering?that focuses on how to design and manage complex?engineering systems over their life cycles.
Systems Management?is an umbrella discipline encompassing systems engineering, managerial finance, contract management, program management, human factors, operations research, in ERP, process control, defense, space, and other?complex systems ?disciplines)
Here is a sample of texts on my shelf that are starting references to inform our thought processes?about systems and agile software development:
and a topic framing my Master's degree in Systems Management, USC 1980,
These books are the basis of Thinking about Systems, with Software Intensive Systems (SISoS) fitting in here as well since interfaces between system components define the complex aspects of all system of systems.
Here's a collection of presentations on SISoS from the University of Paderborn, Software Engineering Group, that is no longer available, but I downloaded them before they went away.
Along with a Workshop on Engineering Software-Intensive Systems
As systems engineers, software engineering is alive and well in many domains, no matter how much we think we must do. We can plan, prepare, and predict, but the action occurs through doing. so when we hear any suggestion, ask how this can be put to work in some measurable way to assess the effectiveness and performance of the outcomes.
Systems Thinking is the process of understanding how systems influence one another within a world?of systems and has been defined as an approach to problem-solving by viewing our "problems" as parts of an overall system rather than reacting to a specific part or outcome.
There are many kinds of systems, but Agile Thinking is Always Present
Hardware systems, software systems, and evolutionary systems. It is popular to mix these, but that creates confusion and removes the ability to connect concepts with actionable outcomes.?
It may be that the signers of the Agile Manifesto and its 12 Principles didn't realize that the management of agile projects is derived from Systems Engineering processes and the 1970s based on principles from the 1930s as described here Iterative and Incremental Development: A Brief History
In our domain, development is subject to guidance and regulations for how the customer's money is spent. We introduced the software development process of eXtreme Programming (XP) at a nuclear weapons cleanup site and spoke about our efforts at several Agile Development Conferences. Here's a short history of Rocky Flats. That work continued with developing processes complaint with EIA-748 on DCMA-validated systems and more speaking and writing at NDIA and PARCA (Performance Assessment and Root Cause Analysis ) conferences. The briefing deck below is the culmination of those efforts under the initiatives of the US DOD and other Federal Agency efforts to increase the probability of success for software intensive systems by integrating agile development methods into earned value programs.
Systems Engineering ensures the whole product works with its external systems to meet the customer's needs, as explained in Is Agile Project Management Actually Systems Engineering?
Here are a few more Systems Engineering and Agile briefings to establish the basis that the principles and practices of systems engineering guide agile development:
And Now to Rick Dove's Library
Here's his Home Page (last updated Dec 23, 2021), containing
and two books
Resources for Agiley Developing Capabilities with Systems Engineering