There are problems with little randomness and number of moving parts: these problems are either easy to reason about, or easy to solve by analytical means (think of systems that can be reduced to few equations).
Then, there are problems with either/both: large number of elements and high degree of randomness. These problems can be dealt with statistics.
Then there is a ball of mud between - medium number of elements/randomness. The number of interactions is too high to be able to reason about them effectively, yet too little to derive solution by statistical means.
Most of the software, especially poorly written one falls in this realm- the more interactions between elements, the harder to reason about. Mastering algorithmic wizardry just moves you slightly right on this plot- being able to decrease the number of interactions makes the system easier to reason about [1]
0: https://www.amazon.com/Introduction-General-Systems-Thinking...
1: http://article.sapub.org/image/10.5923.j.ajss.20150401.02_00...
- You are talking about the application of general systems theory. https://en.wikipedia.org/wiki/Systems_theory
- You would like to learn to apply 'systems thinking' principals and analysis in many domains or to new problems
- You would like to learn to model systems
- It is also important to note in many domains there are specific branches of systems theory that may be more applicable. https://en.wikipedia.org/wiki/List_of_types_of_systems_theor...
- You could spend an entire lifetime learning in this field as many have done.
Types of systems:
Systems can be broken down by multiple dimensions:
- Complex
- simple
- unitary
- pluralist
- coercive
Systems thinking approaches:
- Hard systems thinking
- Systems dynamics
- Cybernetics
- Complexity Theory
- Soft Systems
- Emancipatory systems thinking
- Postmodern systems thinking
Learning More about Systems Thinking:
- A great website is the systems thinker, that covers quite a bit of topics. The articles are actually archives of a newsletter called "The systems thinker" https://thesystemsthinker.com/
- To get an overview of various approaches to systems thinking from an organizational perspective:
Systems Thinking: Creative Holism for Managers by Michael C. Jackson. https://www.amazon.com/Systems-Thinking-Creative-Holism-Mana...
- For general systems theory: An Introduction to General Systems Thinking by Gerald M. Weinberg https://www.amazon.com/Introduction-General-Systems-Thinking...
- For systems thinking and the learning organization:
The Fifth Discipline: The Art & Practice of The Learning Organization by Peter Senge https://www.amazon.com/Fifth-Discipline-Practice-Learning-Or...
- There is a great course that covers soft systems methodology, specifically to solve social problems: https://www.plusacumen.org/courses/systems-practice
- Habits of a systems thinker: https://www.watersfoundation.org/systems-thinking-tools-and-...
- Systems thinking resources: http://donellameadows.org/systems-thinking-resources/
* Update added additional resources.
The result is a discipline that has transformed into managing uncertain outcomes in large heterogeneous models, i.e. complexity theory, rather than reducing everything to balls-and-sticks. Meadows was famous for devising "12 basic places to intervene in a system", nowadays the focus is on hedging bets adequately such that interventions don't catastrophically fuck up.
That said, some of the basic tooling is still flexible enough for basic business problems and some of the old gems are able to explain important concepts found in other fields without getting bogged down in the math.
https://www.amazon.com/Early-Retirement-Extreme-Philosophica... is my favourite, it's not about retirement, it's about using systems thinking to devise a robust lifestyle.
https://www.amazon.com/Introduction-General-Systems-Thinking... will make a good complement to Meadows and should give you a calculus to rigorously think of systems with.
https://www.amazon.com/Introduction-Cybernetics-W-Ross-Ashby... for its explanation on entropy, I mean requisite diversity, which will you give you an approximate mental quantity of how "powerful" any given system is.
https://www.amazon.com/Sciences-Artificial-Herbert-Simon/dp/... and https://www.amazon.com/Design-Rules-Vol-Power-Modularity/dp/... I haven't read either of these, but Herb Simon is extremely influential and has great thoughts on the notion of system hierarchies (nearly-decomposable systems is a great concept for design). The second book is about the properties of modular systems, which will help grok the reasoning behind a lot of refactoring techniques.
Good luck.
http://www.amazon.com/Introduction-General-Systems-Thinking-...
http://www.amazon.com/The-Systems-Bible-Beginners-Guide/dp/0...
http://www.amazon.com/Ackoffs-Best-Classic-Writings-Manageme...
I really enjoyed these books, but I am not super well-read in this area, so there may be better ones out there. You could try searching for "systems theory" and see what other resources are out there.
Systems theory is a very broad topic, so you'll find it attached to many specific disciplines, but the general idea is that you can take a bunch of simple things, hook them together, and produce a "being" that has totally weird behavior in aggregate.
[0] https://www.amazon.com/Introduction-General-Systems-Thinking...