Minimizing (organizational) Variables

Gaming is part of IT. For me, it is a quite important one because my career started with computer games.

While playing strategy games I noticed an interesting behavioral pattern I seem to follow. These games live from complex situations where more than one problem has to be solved by the player. Imagine a three front war. One could make up a complex strategy in which the first front is resolved while the other two are defensive. After that, the second front could be prepared for an offensive while the forces are moved there from the first front. Of course the third front should be active in some way, maybe a fake offensive. Without describing the third step of my fabulous masterplan it is obvious that the more complex a strategy is, the more error prone it is. Random events (a.k.a. the real life) can destroy the fine grained plan easily.

While I do use complex strategies sometimes, I tend to act on a more “local optimum” basis. I see all problems at hand as variables that can be resolved or fixed so that it is no more a variable but a fact. In the given example each front is one variable that can be fixed by attacking, retreating or some other local action. I would probably resolve these variables into facts after each other or in parallel. I would attack on the first front while making small, local decisions on the other fronts. Maybe attack if the opportunity arises, maybe retreat. Although my three variables are backed by my supply routes and possibly by each other, they are disjunct problems.

This pattern is great to work on large scenarios with a lot of chances and possibilities. At the beginning, the amount of variables is terrifying. Resolving them one after another is satisfying because with each variable turned into a fact the overall situation becomes clearer.

I noticed that this behavior can be applied to everyday problems as well as software engineering. Having a lot of tasks on the to-do-list or implementing a feature that has a lot of coupled classes can be seen as a complex task which can be cut down into smaller scenarios that have not much to do with each other. That makes dealing with stressful situations much more bearable.