We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Navigating Complexity with Systems Thinking • Diana Montalion & Andrew Harmel-Law • GOTO 2024
Diana Montalion & Andrew Harmel-Law explore how systems thinking helps navigate complex software environments by moving beyond linear approaches to understand interconnected dynamics.
-
Systems thinking helps navigate complexity by moving beyond linear/reductionist approaches that try to break everything into parts and control through more processes
-
Counter-intuitiveness is a key systems thinking concept - pushing harder for control often makes things worse, and solutions that worked yesterday may not be appropriate for today’s circumstances
-
Software systems are socio-technical - they involve not just code and infrastructure but also people, communication patterns, and organizational dynamics that all interact
-
There’s no single framework or checklist for systems thinking - it’s a practice that requires experiencing and working with emergence rather than trying to control everything upfront
-
Systems push back - you can’t just force changes without considering ripple effects and unintended consequences across interconnected parts
-
Effective systems thinking involves:
- Noticing patterns and relationships
- Understanding why problems occur vs just fixing symptoms
- Considering multiple viewpoints and mental models
- Finding leverage points for meaningful change
- Being comfortable with uncertainty
-
Adding more control/process is often our default response to complexity but can make things worse - sometimes removing things or doing less is more effective
-
Success requires collective understanding and buy-in - one person seeing systemic issues isn’t enough if others don’t recognize the need for different approaches
-
Systems thinking is a core technical skill for modern software architecture, especially for complex distributed systems and platforms
-
Culture change and shifting mental models is essential - you can’t transform systems without evolving how people think about and approach problems