Winry analyzing a comples system

On analyzing complex systems

Table of Contents

Have you ever worked on a huge a project that had a lot of parts that interacted in a meaningful way? Did you occasionally realize that you didn’t know what the hell you were doing? Well I wrote this guide to help me make sense of complex systems. Hope it helps you analyze complex systems better.

Do not get Intimidated by the system

When a complex system is placed in front of most people they suddenly become aware of how much they do not know which eventually turns to fear or anxiety. In an ideal case, when a complex system is placed in front of you curiosity should surpass every other emotion. This however might take time to attain so if you catch yourself been intimidated by a complex system take some time to realize what is happening and focus on becoming calm.

Focus on the Big picture

Say you are looking at a robust codebase, It is very easy to get lost in the complexity that is the functions and classes you do not understand yet, instead of diving in and trying to understand what every single piece of code is doing focus on seeing the big picture. If the system is truly complex analyzing everything without seeing the big picture first would lead to type of procrastination that can leave you feeling more confused and anxious. One of the ways of focusing on the big picture is by noting the functionalities of the system.

Outline the system

Okay then, so now you have an idea of the functionalities of the system the next step is to outline the system. Outline the system into components for example: say the complex system in your case is a codebase you can further break down the codebase into parts based on their functionality or any other characteristics that makes sense to you . In this step you do not try to go in-depth instead you try to be aware of the components existence it can also help to hypothesize on what each component does.

Iteratively analyze each component of the system

Pick a component from the system and focus on learning what it does, usually you will realize that it is interconnected with other parts of the main system but do not focus on getting what the whole system does, instead take your time to understand what the component does and when you do move on to the next component of the system till you are done with all the components

Understand how the system’s components interact with each other

After you understand what the individual components do direct your attention towards understanding how the system’s parts function together to make the complex system.

Finding a Specific Thing

Occasionally you do not even need to understand the full system just a single part of it, in this case you want to focus on what you want to understand and treat the rest of the system as a Blackbox.

tldr

When you analyze a complex system you want to keep choosing a level of abstraction preferably the highest and recursively go deeper and deeper till you are very comfortable with the system.


More Posts

Animefying life

3 min read

One of the most impressive things about Shonen protagonists is their ability to set a goal that seems bigger than life and make reasonable strides towards it from the likes of Naruto going from an…