21 April 2017

Problem Solving 101

Lately I've been getting into a lot of interesting conversations with friends about the various problems we see around us. Everything from processes that crash mysteriously to universal health care. As a result I've been doing a lot of reading on various topics, trying to learn what I can about these topics and trying to draw conclusions from that learning. It's been a lot of fun. 

Something I've noticed in my tour of the articles and videos though. It seems that many people are chasing solutions through symptoms. That is, they seek to solve problems by finding remedies for the symptoms of the problem rather than solving the actual problem. As a professional problem solver this irks me.

When we fix a symptom of a problem we are only masking a secondary effect. When we fix that symptom another one will eventually spring up to take its place. If we fix that one, it will surely be followed by another. There aren't enough bandaids in the world that can repair a ruptured artery. The correct response is to fix the artery. 

When we encounter an issue we must pause and think about it. Is the issue a symptom of a bigger problem or is it actually the problem. Does a RabbitMQ server fall out of its cluster because it is bad software, or because it isn't configured correctly. Does a process terminate badly because the input data is bad, or because we did not properly prepare for corrupted inputs. These are more obvious examples because they are simple problems, but the same approach applies to much more complicated issues. 

We need to stop repairing symptoms and start looking for root causes to fix. Only then can we truly progress.