The paradigm of systems engineering and agile development is starting to come together. "Some Future Trends and Implications for Systems and Software Engineering Processes," Barry Boehm, Systems Engineering, Volume 9, Number 1, 2006 presents and overview of how software intensive systems can be addressed through the processes of systems engineering.
This triggered a conversation about "what is systems engineering and why is it applicable to software systems development?"
Thinking Like a Systems Engineer Involves Some Core Concepts
- Conceptualizing - systems engineers see the big picture. A problem may NOT be optimally be solved by breaking it into its elements and finding separate solutions. A "whole picture" needs to be constructed before solutions are proposed.
- Requirements Analysis - requirements are the foundation of any project. Requirements analysis identifies and expresses verifiable statements of user needs in appropriate terms to guide the concept development.
- Selecting Alternatives - systems engineering is about making trade offs between viable alternatives. Trade studies provide an objective foundation for the selection of one of the alternative solutions.
- Optimization of the alternatives - searching for the "perfect" solution is a poor approach to problem solving. The notion of "optimum" is related to the notion of "tradeoff." For example synthesizing an architecture is essentially a tradeoff leading to a selected architecture.
What Does This Mean for Agile Project Management?
Agile and Systems Engineering are tightly coupled in many ways:
- Customer focused
- Value stream focus
- Emerging solutions
- Verifiable deliverables
- Performance based management
- Scalable processes
A critical concept in the Boehm paper is C2ISR (Command and Control, Intelligence, Surveillance and Reconnaissance). This concept is closely coupled with OODA (Observe, Orient, Decide and Act). Both are tightly connected with agile behavior. The OODA concepts emerged from fighter pilot training and C2ISR emerged from capabilities based planning in the defense domain.
If agile is looking for an execution framework in our to move beyond the "buzz words" of manifestos - these paradigms are a good starting points along with a "thinking" process of a Systems Engineer.