I noticed that oftentimes software developers on senior levels (and "architects" too) when faced with a problem, would start speculating about solutions without gathering the necessary information about the problem first. They would theorize that the problem is likely caused by something or maybe something else, then the solution should be some other thing, etc, etc. And they can go on and on along that path, because they have enough experience to do so. But in reality, all such speculations are bullshit. They should have realized that they missed some key information and instead of speculating, gathered the missing information first. Doing so would have saved them a lot of time and unnecessary meetings. I consider this a skill: to understand that there is a missing key information/knowledge without which all speculations are of little value, and what needs to be done to obtain that missing knowledge.