Understanding is Underrated
Of all the requirements needed to accomplish a given task, "understanding" never gets the attention it deserves.
What do I mean by understanding exactly?
I mean to develop an understanding of the problem at hand. Develop an understanding of the technical details of what might constitute a solution. Develop an understanding of any tangential issues at play.
But instead, we like to take shortcuts. Maybe if we just use this cool tool, then we can just fix this problem and move on? Or maybe we can just copy what these other people are doing, I'm pretty sure they understand the problem. Or maybe I'll even try something random and hope it works.
So maybe using a tool or copying someone else is the best option, but how could you possibly know that if you haven't fully understood your own problem? While I guess you could stumble the right answer with dumb luck, repeating this pattern just isn't a viable long term strategy.
The result of this, chaos and complexity builds up until it hits a breaking point, and someone must now understand the problem AND the previous attempts at a solution.
That's why I find it really helpful to first just ask "what is the problem" when faced with symptoms of a potential issue.
So please, for your sake and everyone who comes after you, just think it through, and once you've done that, document it!