Systems Engineering Principles Applied to Any Development Domain
Glen Alleman MSSM
Vietnam Veteran, Applying Systems Engineering Principles, Processes & Practices to Increase the Probability of Program Success for Complex Systems in Aerospace & Defense, Enterprise IT, and Process and Safety Industries
A critically missing process in many software development projects, especially Agile development projects, are the principles of Systems Engineering.
Where I work most often, Systems Engineering dominates the program management and development paradigm. Space Flight, Embedded Systems, Software Intensive System of Systems, Process Control Systems, Safety and Security Systems, Intelligence Systems.
Systems Engineering is the engineering discipline that focuses on the whole system, a set or arrangement of things so related or connected as to form a unity or organic whole. Systems engineering accounts for the connections and interactions among the system functions and with the system environments. This includes physical, social, and logical interrelationships and environments.
In these domains, there are 12 principles used to increase the probability of of success based on Systems Engineering. These principles come from Section 3.2 of?Engineering Elegant Systems: Theory of Systems Engineering, A White paper by Michael D. Watson, NASA Marshall Space Flight Center, June 2020.
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 through 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 to not overly 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.
These Principles are enabled by 7 Postulates
Postulate 1: Systems engineering is system specific and context dependent in application.
Postulate 2: The systems engineering domain consists of subsystems, their interactions among themselves, and their interactions with the system environment.
Postulate 3: The function of systems engineering is to integrate engineering and science disciplines in an elegant manner.
Postulate 4: Systems engineering influences and is influenced by organizational structure and culture.
Postulate 5: Systems engineering influences and is influenced by budget, schedule, policy, and law.
Postulate 6: Systems engineering spans the entire system lifecycle.
Postulate 7: Understanding of the system evolves as the system development or operation progresses.
Postulate 7 Corollary: Understanding of the system degrades during operations if system understanding is not maintained.?
Systems Engineering Principles Applied in the Agile Development Domain
In some recent exchanges about the "12 Agile Principles," Thoughts on the Agile Manifesto, Agile at Scale and the Agile Manifesto and Principles in Federal Acquisition, and the Manifesto Agile Development in Federal Acquisition there is no consideration from the most vocal agile advocates on the systems engineering principles that frame all software development that operate on the far left side of the Paradigm of Managing an Agile Development Project - since all software development use, produces, and results in a System.
The basis of that understanding starts in the Guide to the Systems Engineering Body of Knowledge - in System Life Cycle Process Models: Agile Systems Engineering and the section titled "principles of agile development"
Along with that are 6 guides for applying Agile Development in the US Department of Defense (one of my domains)
Simplifier of Complexity - Converts Strategy into Action - Construction Project Management - Advanced Work Packaging AWP - Data Analyst - Gigaprojects
1 年With all those articles you have written, you can write a book
Transformational Leader in Business Process Management & Organizational Development +20к
1 年Process management is indeed another critical aspect that can be overlooked in software development projects, including Agile development.
DevOps & Agile Engineering Senior Leader
1 年Im all for fundamental/first principles! The things you list in your post however don't immediately strike me as principles. They read more like definitions, rules, or axiomatic directives. If we look at some classic (sw) principles like: connascence (hi cohesion. lo coupling), abstraction, encapsulation, parsimony, 'least astonishment' or even much older ones like from Bernoulli, Heisenberg. (or even 'Peter's Principle') ... Those talk about some kind of dynamic relationship between variables, materials, constraints & forces, that imvolve (engineering) decisions & tradeoffs to weigh and/or balance in order to acieve some desired state (e.g. of equilibrium) and results in a desired devree/range of one or more "quality attributes" I dont see that when I read thru the post (at least not yet)