InfoQ Homepage Systems Thinking Content on InfoQ
Articles
RSS Feed-
Thinking Deductively to Understand Complex Software Systems
Thinking differently can allow us to approach problems in new ways. With testing, approaching the problem with a negative approach can lead to more thorough test cases.
-
Avoiding Technical Bankruptcy: a Whole-Organization Perspective on Technical Debt
Technical debt is not primarily caused by clumsy programming, and hence we cannot hope to fix it by more skilled programming alone. Rather, technical debt is a third-order effect of poor communication. What we observe and label “technical debt” is the by-product of a dysfunctional process. To fix the problem of accumulating technical debt, we need to fix this broken process.
-
Thriving in the Complexity of Software Development Using Open Sociotechnical Systems Design
The amazing progress made in technology has led to blindly following the technical imperative at the cost of the social and human dimension. Social sciences can help us create a work environment where people feel more at home and proud of what they produce. An organisation designed using open sociotechnical systems theory will be a more humane one where people are more engaged.
-
The Flow System: Leadership for Solving Complex Problems
The Flow System elevates Lean Thinking in an age of complexity by combining complexity thinking, distributed leadership, and team science into the Triple Helix of Flow, which organizations can use to become more innovative, adaptive, and resilient. This second article on The Flow System dives into the three helixes of complexity thinking, distributed leadership, and team science.
-
Software Systems Need Skin in the Game
Consequential decisions need to be taken by the people who pay for the consequences, by the people with skin in the game, and modern software practices need to reinforce this idea. On-call engineering is the quintessential modern engineering practice to create skin in the software development game.
-
Do You Think Like a Lawyer, a Scientist, or an Engineer?
Law, science, and engineering offer three distinct approaches to logical thinking. Each is important in different circumstances, and in practice, we can use all three. How much understanding and control do you have of a situation? Do you simply need to follow the rules? Are you operating in a world of uncertainty and volatility? Or are you building and defining the rules as you go along?
-
Don’t Mix the Paint! Primitives and Composites in the World of Software
Because software is created from synthetic primitives (code, interfaces, requirements, etc.), engineers must accept that assumptions are often wrong, and adopt a mindset of challenging everything. Creating a system that continually tests the assumptions can help actualize the mindset.
-
Agile Anti-Patterns: A Systems Thinking Approach
Agile anti-patterns can disguise themselves as "solutions" or "workarounds". This article discusses the importance of recognising and classifying a new generation of agile anti-pattern with a systems thinking approach. It shows how to create and promote a shared language using value streams as an effective means of creating a systems thinking culture amongst agile teams and the wider business.
-
Predictable Agile Delivery
Human teams are unique, non-linear and unpredictable, but given the right conditions, their output can become linear, scaled and predictable. Managers have an enabling role to play: encouraging the development of predictability; understanding the needs of their teams; and rolling-up their sleeves to clear the blockages themselves or by escalating the problem promptly and responsibly.
-
Evo: The Agile Value Delivery Process, Where ‘Done’ Means Real Value Delivered; Not Code
Current agile practices are far too narrowly focused on delivering code to users and customers. There is no systems-wide view of other stakeholders, of databases, and anything else except the code. This article describes what ‘Evo’ is at core, and how it is different from other Agile practices, and why ‘done’ should mean ‘value delivered to stakeholders’.