{"id":11885,"date":"2017-11-20T17:44:52","date_gmt":"2017-11-20T12:14:52","guid":{"rendered":"https:\/\/cigniti.com\/blog\/?p=11885"},"modified":"2022-08-01T15:02:08","modified_gmt":"2022-08-01T09:32:08","slug":"systems-thinking-a-process-for-problem-solving-in-sdlc","status":"publish","type":"post","link":"https:\/\/www.cigniti.com\/blog\/systems-thinking-a-process-for-problem-solving-in-sdlc\/","title":{"rendered":"Systems Thinking\u2014A Process For Problem Solving in SDLC"},"content":{"rendered":"
“94% of problems in business are systems driven and only 6% are people driven.” ~ William Edwards Deming<\/em><\/strong><\/p><\/blockquote>\n
WHAT IS A SYSTEM?<\/h2>\n
System.<\/p>\n
We hear and use the word System in all different contexts, all different places, and almost all the time. Also, we probably interact with dozens of systems, such as nature, our own home, retail stores, the organization we work for, etc. So, a system is an interconnecting network of parts that work together thereby creating a larger whole of a complex thing.<\/p>\n
WHAT IS SYSTEMS THINKING?<\/h2>\n
System thinking is a method of critical thinking by which one can analyze the relationship between the system’s parts to understand a situation for better decision-making. Through this system-view approach, a different process for problem solving rises.\u00a0Rather than isolating a problem and then fixing it, which is a common practice using traditional thinking, the systems thinking approach extends the sight to observe the scope surrounding a problem. Through this systematic approach, causal effects are recognized and a problem space is found-out.<\/p>\n
CHARACTERISTICS OF SYSTEMS THINKING<\/h3>\n
\n
- Shifting perspective from Parts to Whole: <\/strong>The most general characteristic of system thinking is shifting perspective from parts to the whole. System\u2019s properties cannot be reduced to the part\u2019s properties; likewise, systematic properties are properties of the whole which none of the parts have.<\/li>\n
- Shifting perspective from Objects to Relationship: <\/strong>System is a collection of objects that interact with each other and build a relationship. In a systematic view, objects themselves build networks.<\/li>\n
- Shifting perspective from Structures to Process: <\/strong>In a systematic approach, continual flow of things in system is more important than considering configuration or structure of objects.<\/li>\n<\/ul>\n
SYSTEMS THINKING\u2014A PROCESS FOR PROBLEM SOLVING<\/h2>\n
By understanding systems thinking as a holistic view perspective, its real value emerges.\u00a0The value itself is being able to use this holistic view perspective to identify an actual problem, while understanding the extended interconnected network that surrounds it.\u00a0Traditional analysis focuses on separating the individual parts of the problems caused whereas system thinking allows us to focus on how the individual parts interact with each other and helps identify the cause of a problem.<\/p>\n
Consider defect or bug fixing for example. Generally, we have two choices:<\/p>\n
\n
- To update patch over the defect or bug<\/li>\n
- To find out the root cause of the bug and fix it.<\/li>\n<\/ol>\n
Most common approach is to update the patch while leaving the root cause un-addressed. Simply updating the patch over a defect can produce a code that is difficult to maintain, and may result in more bugs\/defects which again need to be fixed with more patching. This loop ultimately triggers unmaintainable software. So, short term result may be what is intended but long-term result is different.<\/p>\n
There are other examples also. For example, if an organization is suffering from poor quality in production, the immediate step is to increase more manual testers instead of investing in automated testing and continuous testing approach. More manual testing means lesser focus on automation testing<\/a>, creating the requirement for more manual testers in future as the application code increases which indirectly will result in more cost to the company. System thinking approach provides a broader picture of the system which help us to design long-term solution.<\/p>\n
A SOFTWARE DEVELOPMENT LIFE CYCLE PERSPECTIVE<\/h3>\n
Let me talk about system thinking from Software Development perspective.<\/p>\n
Software Development Lifecycle unleashes a business idea into reality which at the end enables the user to enjoy the intent and presence of an application\/product. Although the prime purpose of the application\/product existence is to serve its users, not many products\/applications achieve the expected customer satisfaction levels. Why is it so? System Thinking approach definitely helps us find out the reason and solutions for the same. A product is comprised of many components and many believe that all such features integrated shall make or manifests a product.<\/p>\n
Per Russell L. Ackoff, \u201cSystem is not a sum of the behavior of its parts, it\u2019s the product of their interactions.\u201d<\/em><\/strong><\/p><\/blockquote>\n
We must apply system thinking as it allows us to see the end-to-end system and understand & optimize the value stream. The value stream can be shown as a business value generating feature to flow through the system to transform into a usable product, i.e., through a robust software development lifecycle comprising of phases like build, test, deploy and release phases. We need to map this end-to-end process or value stream at each stage or function of the process.<\/p>\n