There was a Twitter post mentioning Russell Ackoff YouTube about systems.
A system is never the sum of its parts, it's the product of their interactions.
This is a good start, but it needs to produce actionable outcomes, not just principles, but practices and processes. How do you define, design, represent, assess, analyze, and manage these interactions. The notion that systems are somehow unmanageable is fine in some domains. Finance, social, political. But in technical systems - engineered technical systems - the system has to work when commanded to do so. Much of Ackoff's principles are the basis of practices and processes that assure this happens.
I come to this systems domain from the Software Intensive System of Systems paradigm. This is where systems are designed, tested, verified, operated, maintained, enhanced, repaired, and replaced with other system. The touchy feely view of systems does not belong here. This is the domain of Systems Engineering, that many times is based on the principles of Ackoff and others like him.
When I hear about complex software systems and how difficult they are, and how undesirable they are, and all the other urban legends about complexity, complex, complicated and chaos, I get a smile. This is the world we work in. And the world where most people are users of those systems. Here's a start in learning how to manage in the presence of these systems.
- The Art of Systems Architecting 2nd Edition, Mark Maier and Eberhardt Rechtin - is a seminal work including software systems.
- Systems Engineering: Coping with Complexity, Richard Stevens, Peter Brook, Ken Jackson, and Stuart Arnold
- INCOSE Systems Engineering Handbook - membership needed. This is the professional society for Systems Engineers. INCOSE has a Systems Engineering Journal as well with papers speaking to software development complexities
- Guide the Systems Engineering Body of Knowledge - speaks to topics like Product road maps are essential for software intensive systems that have many releases of software and capability upgrades. The identification of the requirements, the test plans, and the features provided for each release are an essential driver of the product development process.
- Systems Thinking: A Primer, Donella Meadows
- Systems Thinking: Coping with 21st Century Problems, John Boardman and Brian Sauser
- Systemic Thinking: Building Maps for Worlds of Systems, John Boardman and Brian Sauser
- Systemantics: How Systems Work and Especially How They Fail, John Gall
- The Systems Bible: The Beginner's Guide to Systems Large and Small: Being the 3rd Edition of Systemantics, John Gall
- Systems Engineering Guide for System of Systems
Ask anyone mentioning complex, complexity, complicated, and chaos if they have a background in Systems Engineering? No, walk away, they don't know what they're talking about.