Systems Thinking

This week’s lecture covered the issues encompassing escaping the complexity dilemma. The complex nature of the complex world in which we live, riddled with different kinds of complexities — detail and dynamic — seem to unravel issues which cannot be addressed using conventional management approaches. Creation of systems, and software systems, to address such issues thus calls for the use of unfamiliar forms of reasoning, analyses and engineering solutions.

Let’s consider a few key elements associated with systems thinking…

Causal Diagrams

aZU65HO
(Image courtesy: https://sites.google.com/site/protractedlearning/systems-thinking/causal-loop-diagram)

Causal diagrams were introduced as one of the tools that can be used to address dynamically complex problem situations by addressing the various subtle intermingling underlying causative factors. Through the use of feedback loops, resilience alliance and a broad application of systems dynamics two critical issues which software systems sometimes fail to address are brought into the spectrum of cross-dimensional causation: runaway growth; runaway collapse.

Policy Surprise

paradigm-shift-e1395608377248
(Image courtesy: http://lifestyle-leadership.com/wp-content/uploads/2014/03/paradigm-shift-e1395608377248.jpg)

The concept of Policy Surprise was introduced to explain the reason why engineering and computer system solutions need to keep pace with the changing operational environment if they mean to keep up with the constantly changing paradigms for the initial scope of these solutions. To put it simply, during the course of software development life-cycles (SDLC) the methods used to requirements analysis, management and resource allocation are still using measurement metrics which are no longer truly representative of the scope of stakeholder spectrum. This tends to lead to surprises in and after the SDLC. It is for this reason, that new approaches must be developed.

Systems Archetypes

The complexity dilemma explains complex systems behaviour as a response to policy initiatives. The whole is too complex to study, the parts are not complex enough. A proven way to address such dilemmas is through the use of systems archetypes: illustrating theories of general systems behaviours using systemic behavioural patterns.

There are, nevertheless, several issues which still remain unaddressed despite of the relative success of such systems archetypes. The most commonly observed issue is that of such software or computer system solutions addressing the symptoms manifested by the problem situations, instead of the problem situation itself. In doing so, while the symptoms seem to get resolved in the short term, the problem persists.

An example of this can be expressed through a problem situation that emerged in the U.S. after the introduction of Obamacare and the consequent restructuring of the medicaid. To put it in a really overly simplistic manner, Obamacare used a series of algorithms to help people from specific demographic and socio-economic backgrounds falling in a specific purview of insurance premiums by making them eligible for Obamacare. Medicaid was historically used for the same objectives for all citizens, notwithstanding this specific purview as deduced by Obamacare. The problem arose as Medicaid was expanded to cover all those who did not get covered by Obamacare as this led to specific people being left in the margins of the overlap between the two programs. These people are deemed to be too rich for medicaid, and not rich enough for Obamacare, leaving them stuck between Scylla and Charybdis. This has been a major case where a system intended to resolve one complex issue, unintentionally, lead to the creation of another.

medicaid-coverage-gap
(Image Courtesy: http://obamacarefacts.com/obamacares-medicaid-expansion/)

Systems Thinking Approaches for Wicked Problems

Wicked problems are their namesake, wicked by nature. These are quagmire like problem situations which engulf one into their own embroiling mess more and more as one tries to get out of them. The key to addressing problems wicked problems is, thus, not to try and solve them, but instead manage them; to pick what we choose elements we deem to have priority over those that we may, at the moment, choose to ignore; a calculated risk, so to speak.

ShiftN Obesity System Influence Diagram

While looking for real-world systems thinking solutions for real-world problems, I came across an initiative by a Belgian design solutions firm called ShiftN (shiftN.com, n.d.). As part of one of their projects concerning obesity in the U.K., shiftN created a UK Obesity System Influence diagram (“Obesity System Influence Diagram,” n.d.) that illustrates a detailed causal loop diagram comprising of the numerous constituents involved in the system. The design comprises of a simple colour-coded layout which highlights specific components from the subsystems in specific manners, and in doing so it becomes easy to visualize how these components of these subsystems affect other components from the same, or different subsystems, and how the subsystems interact with each other.  This work was critical in creating the school-meals policy in the U.K. as enabled the policy makers to make informed decisions using the knowledge base created as a consequence of work done by ShiftN.

Full-Map
(Image Courtesy: http://www.shiftn.com/obesity/Full-Map.html)

Business Intelligence

The use of computer systems, computer science, information systems, engineering solutions etc is critical to a significant proportion of business across the globe today. Converting raw data into information, information into knowledge, and using this knowledge along with experience (gained from analyses of historical knowledge and information)  to make intelligent decisions is a critical application of softwares and software systems today.

However, in order to perfectly utilize systemic components ranging from data sources to data warehouses, from using cloud computing platforms to managing performance optimization and networks security issues, from managing quality of service to compartmentalized constituent tools, all the while managing redundancy and maximizing user experience is quite a tall order. The use of systems thinking allows the systems designers to be able to encapsulate such complex systems through targeted abstraction — analogous to object-oriented programming, if you will; is it any wonder why ICT professionals are so often hired as consultants for business optimization? we have a good handle on how big stuff with a lot of moving parts tend to work.

CMMI for Development

If there is a list of good examples of applied systems thinking revolutionizing the software development industry as we know it, CMMI for Development would surely be on the top the such a list. Developed by Carnegie Mellon’s Software Engineering Institute, funded by the U.S. Department of Defense, CMMI for Development has proven to result in immense improvements in the quality of products, quality of the businesses making these products, and in considerably high profit generation (undefined, n.d.) for the businesses as a direct result of incorporating CMMI of Development at the core of their business processes.

Using systems thinking and design solutions concepts, CMMI creates an abstract framework that defines business processes involved in the software development process. In doing so, causal relations between the process involved are related to each other in meaningful ways so as to maximize not only the products produced, but the processes themselves. As a consequence, valuable resources (time, money etc) can be used for the process of developing products and not having to engage in a separate intellectual exercise to come up with process solutions for each new product.

Revolutionizing the Middle Tier of Software Engineering

Upon the consideration of the positive implications of imbuing systems thinking into a systems engineering approach in software engineering, it becomes fairly clear that a collaborative interdisciplinary approach enables the creation of solutions that interact and address problem situations in a comprehensive manner. Traditionally, software systems have been reactionary, which makes them largely retroactive, thereby considerably inefficient. Software Engineering has, as a result, developed a bad rep. The use of experience, armed with a collaborative approach has the potential to create responsive systems that can remain ahead of the curve, and preemptively respond to unforeseen issues that are, naturally, to be expected in complex problems.

 

References

Obesity System Influence Diagram. (n.d.). Retrieved March 31, 2016, from http://www.shiftn.com/obesity/Full-Map.html

shiftN.com. (n.d.). shiftN.com | clarity in complexity. Retrieved from http://www.shiftn.com/

undefined. (n.d.). Bottom-Line Profit and Cost Numbers: Assessments Pay | Why Do CMMI Assessments? | InformIT. Retrieved March 31, 2016, from http://www.informit.com/articles/article.aspx?p=369222&seqNum=9

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s