In the last few years that I have been working professionally in IT - in roles ranging from customer support, professional services, to software development - one of the most important lessons that I have learned is the following:
What assumptions are you making, and are they justified?
This seems like a simple question, but it is surprising how many assumptions we make on a daily basis, that we take for granted.
For example, simple or obvious solutions are often ruled out in the initial stages of problem solving, with the assumption being that they would not work. But sometimes, it is these simple or obvious solutions that end up being the best.
Knowing and understanding these assumptions is crucial not only in being successful in IT, but in general life as well.