Effective Problem Solving Meta-approaches: Part #1

This article is a part of series

This blog post starts a series of articles on practical meta-approaches. These are effective problem solving techniques which I managed to capture over time as they manifest themselves in work & life.

Effective Problem Solving

Interval forecasts: worst/best case

You have to forecast some metric. Forecasts are hard as it’s fundamentally same as fortune telling. There’s usually a lot of factors and moving parts which may affect the metric, so the proper analysis is troublesome.

Instead of trying to envision how metric will behave over time it may be much better to just find thresholds which it definitely won’t leave.

Example: you do capacity planning for a web app which target audience is population of a particular country. You have scalability model which basically says “we need X resources to serve N users”. Rather than forecasting user growth curve over time just use 0 as worst case (no users) and total country population as best case (everyone is a user). This instantly gives you an idea of how much capacity you may ever need for this app.

Similar case based root cause analysis (RCA) for effective problem solving

You ran into an issue: something which is expected to work doesn’t. More formally the observed behavior is different from the expected one. You need to carry out root cause analysis (RCA) to find & fix the culprit.

What may help a ton is a similar case which behaves as expected. Rather than going over the whole thing you compare both and look for differences.

Example: you set up a new application server and for whatever reason you do it manually. After everything was set up you find that app server actually doesn’t respond on the port you expect it to. Rather than investigating what may be wrong you just compare settings of the new server with settings of an existing one which works correctly. Ideally you compare data collected in an automated fashion. This allows you to quickly focus on actual differences which likely yield the unexpected behavior.

Walk back to the source

You work on a plan to achieve some goal or solve a problem. The next step itself and/or decisions related to it feel controversial or uncomfortable. You hesitate to proceed.

What I found useful is challenging the initial reasoning which led to the actions conducted. After working on a problem for a while your initial perspective may change drastically.

Example: you work on an integration of your app with a partner platform. You found that their payment reconciliation process requires a pretty convoluted automation your side. Rather than chasing the automation implementation off the bat you double check the hypothesis behind the integration. It turned out that the key is whether this partner will list your app on their directory or not. You find a way to reconcile payments manually in case of any and dodge investing into automation too early.

More of effective problem solving later

Enjoyed? Stay tuned for more – we’re going to look into 6 more meta-approaches for effective problem solving in 2 upcoming articles.