There's a popular notion - and many times wrong - in the agile community that Agile at Scale is an anti-pattern, an oxymoron. I'm here to tell you it's not an anti-pattern, it's a different pattern. It's an important pattern in our domain which is ...
Software Intensive System of Systems that includes the entire field of software and systems engineering and related technologies; specifically as related to information, documentation, databases, model and architecture repositories, analysis, training, testing, data synthesis, hardware, software, standards, economic consideration of selection of techniques and processes, and interoperability.
These are not your father's agile. In our Software Intensive System world, Agile and Earned Value Management are the basis of delivering customer value as planned for the planned budget. Here's some background to start:
- Introduction,
- Foundations,
- Development Lifecycle,
- Requirements,
- Analysis and Design,
- Implementation,
- Verification and Validation,
- Summary and Outlook
When Agile is used in this Software Intensive System of Systems domain, many of the simple and at times simple minded approaches used with 5 to 8 friends in the same room as the customer are no longer applicable. Not because they are right or wrong, but because it's a different domain and one size doesn't fit all. There are several key differences:
The notion of INVEST (Independent, Negotiable, Valuable, Estimatable, Small, and Testable) needs to be confirmed.
- Independent - rarely in a SoS are the work stream Independent, nor is the work inside the work stream Independent. System elements are coupled to other system elements. This is the definition of a System, it's got interdependent parts. The order of work is not arbitrary, nor purely based on value to the customer. There may be pre-conditions that must be in place before customer facing value can be produced.
- Negotiable - maybe work can be negotiated, maybe not. The interdependencies will say what can and what can't be negotiated.
- Valuable - yes, value is still in place. But now it's not individual Feature value, it's the system Value that is increased by an individual Feature.
- Estimatable - and yes, with the interdependencies, estimates have even greater value. These estimates must be risk adjusted as well.
- Small - is a relative term. But is always better than large. But many small elements are assembled into larger elements that make up the system.
- Testable - is more important in the System of Systems paradigm, since each component interacts with other components.
System of Systems is Architecture centric as well. In the System of Systems world
A System of Systems is “a set or arrangement of systems that results when independent and useful systems are integrated into a larger system that delivers unique capabilities.” [OSD Systems Engineering Guide for Systems of Systems]
Architecture is the structure of components, their relationships, and the principles and guidelines governing their design evolution over time [IEEE Std 610.12 and DoDAF].
SoS Architecture is the structure of constituent systems, their relationships, and the principles and guidelines governing their design evolution over time.
This is the basis of Software Intensive System of Systems where our Agile efforts are focused
Here's a spectrum of software development work. From the sole contributor to complex system of systems. See if you can find your domain along this spectrum, then ask are the processes used there similar to the processes used in domains to the Left or Right of my domain? Could be. But maybe not. So when you hear some suggestion of how to do something, ask first in what domain have you shown that suggestion can work? Not anecdotally, but by having evidence of it working? Then ask could this suggestion be moved to another domain? Not just because you think it can, or because you'd like it to - but by actual assessment from people working in that domain and better yet actual assessment of that suggestion actually working in that new domain.
I use the aircraft paradigm because that's where we work most of the time. As well spacecraft. And most importantly because the Software Intensive System of Systems are the heart of these machines working as needed. The 8 links above are the introduction of SISoS. But SISoS also appear in ERP, distributed control systems, and other large integrated systems.