In my experience, one of the most significant problems in software development is assuming. If you assume a method will be passed the right parameter value, the method will fail. Assume that developers are following coding and design standards and the software will be dificult to maintain. […]When we make assumptions in software development, we waste time and increase risks. (Paul M. Duval, Continuos Integration)
So stop assuming or, at least, whenever you feel you need assuming something, assume the worst case scenario, assume the unexpected will happen, assume the risk will become a problem, and be prepared for it.
Related: Revise your assumptions