Computers operate on logic. Program design cycles begin with requirements identifications. I've learned to add a crucial preliminary step, and not assume what appears to be obvious: ask end-users to define seemingly simple terms like "properly."
Why this extra caution?
An experience taught me a valuable lesson early in my career. I assumed I understood an end-user concept without seeking clarification from them! This mistake resulted in a significant issue with my delivery and management! The fallout was unpleasant and impacted my performance review. It was a painful but formative lesson learned.
This simple communication lesson I learned early in my software engineering career, has proven invaluable. As I transitioned into contracting and consulting, the practice of clarifying user expectations upfront has saved me considerable time, energy, and resources.
Never Ass-U-Me ;). Always Clarify.
Works great in normal life, relationship building, and teamwork also :).