Intuitively, many think of urgency and importance as first question on a problem or task that is to be done or solved. Surprisingly, complexity is often a kind of “second level certainty”.
The primarily reason to this, might be to be able to classify the task in comparison to other things that going on. But how can that be done with a fair feeling, without including complexity from start? A gut feeling of complexity can be achieved instantly. It just a matter of mindset, trust to self. .
“Do I need to break, or can I pass the crossing before light goes red?”. Agree, it’s absolutely highest urgency (but not neccessary, because one can intuitively just stop). In a situation like this, many might feel familar that existens of complexity may be present after the decision. Let say that the decision is made; I DRIVE!
Miliseconds after that, one recognize the complexity:
- “The pedestrian crossing, puh, it was empty (as they should, lucky they..)”
- “The surface is wet and snowy, but not slippery and icy. Puh..”
- “No cars was in the crossing (they shouldn’t, but one never know..) Puh..”
- “I didn’t miss any other rules here (missed a sign or so because of hurry), puh..”
- “Oh another pedestrian crossing.. that was empty.. puh..”
The list can go on.. showing a complexity paralysis prior to decision? What if everyone did this analysis almost just the moment before the decision? A high level gut-feeling approximation of complexity. Was it too many uncertainties? Discard it!
The complexity approximation model
Now I provide a model of how to classify complexity. This is a personal vision, which I embodies in some fictive stories in an narrative way. This way to describe has limitations, but it’s a starting point to describe something that worked for me since childhood. With this step done, it will be possible for me to optimize and make the telling better over time.
The model is quite autonomous to brain. The trick is to relate conditions to the task, while keep focus on the whole. To describe this, I make it as a mental visualization with help of geometrical figures. Complexity increase is shown as what I call dimensions. The images and descriptions is there only to embody the idea of the relationships, not to make up the pictures itself in the head.
The more the brain get used to a problem, the more it automatically increase effeciency to manage complexity, depth and number of possible outcomes. While this article might appear obvious to some, I choose to share my view anyway. It’s actually very simple to practice.
Let me kick off with a summary of what’s upcoming;
Work it from left to right
From left to right, complexity is increased. On top of that, the end of article also elaborate on the superposition condition. Superposition is not about complexity, but to constrain the range or limits of outcome. Now, let’s talk about dimensions. An example of problem might be
- To decide over an adhoc or a known strategy.
- How to (re)cover (from) a mistakenly and unexpected information leak during a meeting.
- Putting a not enough tested component into production because it was better than delay the release.
- Taking the bus without planning the trip in advance.
You know better what to define as a your problem!
Let’s go on with the latter. The bus problem. The obvious means one condition: a time to reach destination. Would you think about the rush-hour? Traffic jam, more passengers to enter bus, more stays at red lights. All in all conditions that impact the risk to reach destination in time. Obviously yes, if this this trip is common to you. Taking in complex scenarios is autonomous, just about make the brain used to it. But maybe your scenario didn’t covered the queue at the food truck, so you end up 10 minutes late anyway.
More complex and much more urgent situation is if your system suddenly go down and your judgement call is needed. How to bring it back online? With less data loss, less time to recover, less damage to traceability to identify the problem, less load on supporting functions when users call in about problem. Taken into account the load on system once it’s back online again. In meanwhile, the MTTR is ticking.. (mean time to recovery)
The difference between the bus problem and the system problem is the complexity to make a decision. Also how known you are to the conditions involved in the decision. Let’s detail the bus trip scenario into a dimensional perspective. Analogies os often subject for being strange or incomplete, but bear with me. The “space” in the models, (length) is to declare the aspect or problem, for instance time (bus trip measured in time).
According to geometry, zero dimension can be seen as a simple dot. This one won’t get anywhere. There is no arguments and no considerations. Just a single condition.
The condition who act here, is not in any way capable to evaluate it’s condition within it’s dimension space, nor higher. It does simply not now how it relate to, or are located within the one dimensional space.
The lazy brain might sometimes just want to know where the destination is. Not how to get there – why and when. I would call it a non-dimensional though.
Going from the zero dimension to the first dimension is kicking off most of the day-by-day-life to the scene. Let’s demonstrate the metamorphos by draw a stright line.
A line like this, symbolise one dimension very well and how a zero dimension object is positioned into it.
Note that the line (boundarie of the dimension) is endless, until you drawed one. Also the zero dimensional object have unlimited amount of possibilities where it’s positioned along the line. The only way to know where, is actually draw the dot. Alternatively add a rule that limit the possibilities. For instance “only evenly divisible with 5”.
Observe it from another way, this dimension is aware of the presence of an zero dimensional object. Able to measure, analyse and understand it. If first dimension want to, it might tell the zero dimensional object about it’s condition.
This is quite familar as how we frame the options in IT architecture to limit something unknown. Or in software development, where we have a master class that are owners of sub classes. At least those constructed SOLID.
As you might guess already, the second dimension is adding an axis and connect the lines. You will get what we often refer to as a symbol.
At this stage, we abstract the zero dimension completely into the 1 dimension. We now have a similar issue. The 1 dimension object do have endless number of possibilities to connect between the lines in the two dimensional object.
There is no way to know where the start and end is positioned, before you actually draw them or restrict them with conditions where they are permitted.
Up to and including this dimension, we are close to the capability of human brain to percept a model. However, when adding the third dimension on a condition, thing’s can go madly complex for a human brain to perceive. No surprises that AI is in such a hype currently. The idea is popular over the possibility to identify questions and answers that easily pass borders human brain so far never could pass.
But three dimensions is far away from AI. This is just a condition that change by a third factor. While your architecture meet a certain quality attribute with a grade 1 to 5 (1 dimension), it might have an decrease by causality against another quality attribute (2 dimensions). While many analysis stop here, there is obviously normally another factor. For instance time, cpu utilization from zero to 100. Or why not approaching or receding a hurdle rate (business term).
As one say with speed of light in vacuum. The closer to speed of light in vacuum we reach, the endlessly more heavy the materia is that refuse the light for being faster.
Aware that I hereby stretching the limits of our vision, I won’t try to draw a spooky 4d picture. Instead i try to visualise the practical result of how I use to think at this stage. A statistican would or data scientists, feel as being at home!
What happen to me here is that a given three dimensional scenario do have – at any chosen position in the possible outcomes – an unlimited possibilities in turn (seen in blue above). See the green thick dot above, that detail a chosen position.
The blue box can be 1, 2 or 3 dimensional, though a three dimensional is described above. So, if the picture would be true – it would need to contain as many blue cubes with the red dotted line changing so many times the set of rules make it allowed. For instance, from 0 seconds respond time to 180 seconds respond time (i.e. an constraint or an accepted interval stated per requirement). The five “corners” in each line above might correspond to five statements that can change interpendently, but each one within the given rules (i.e. the respond time is one sample of rule might be a constraint).
Much easier to make up mentally, right?
You might see here how the mental visualization of such scenarios might be very effective to make quick decisions. If you are known to the requirements or constraints of the system, you can easy consider forward or reverse scenarios to rule in, or out.
An example of this might be a regular reverse troubleshooting scenario where you might know that the probability of a respond time might be high, caused by congestion at the API x (or why not a network link), resulting in a inconsistent behavior at the GUI. Derives further up the parameters or dimensions; a number of users that make interact with the GUI in a different way.
Maybe your experience says that once this behavior occur, it most likely cause follow issues. You might very quickly be able to ensure that a connecting (or the component itself) increase it’s logging and order a, reset or cleaning of it.
Not so strange after all, right? Respond time is a level of probability, which level make different impact on the congestion. The congestion itself might appear of different reasons and have different impact. You might now that completely stocked up congestion is more likely network then API. The customer behavior change is just a matter of finding alternative sources to ensure or strengthen the validity to your decision, if needed.
Stateless (or superposition)
Quantum mechanics talks about superposition, more close to compare than call a 4th dimension. Old science usually refer spacetime as 4th dimension. While that is not true,
(more to come).