Thoughtful Design

Okay engineers, picture this scenario with me. You're in a meeting and hearing about a business problem that you're expected to solve when suddenly it hits you: the solution is GIGANTIC! The data model doesn't support it, it's the complete opposite of the existing business logic, and it's going to take months to complete. As soon as that thought hits you, I want you to take that initial design and forget about it. Put it out of your mind and get back to listening. Once the meeting is over, take some time to reevaluate the problem now that you've listened to all the information and see what design you come up with. Is it the same one you originally thought of that was so impossible? There's a good chance it isn't.

As engineers, we are keenly aware of the struggle in requirements gathering to find out WHAT the problem is and not be told HOW to solve the problem. I would argue, however, that this scenario is just as dangerous. Why? Because of how an engineer's brain operates: as soon as there's enough information to work with, it's already crafting a design and focusing on how to implement that design rather than listening to the rest of the problem. Often the initial description of a problem is misleading and the most important details come towards the end, but by this time you'll have tuned out and missed critical information that may change your design completely. Additionally, once you've got your mind set on that complex solution, your first reaction will be to present roadblocks as to why it isn't possible instead of striving to craft the best solution.

My advice for you: don't be afraid to take your time when designing and always keep your ears open and ready to really listen. The best designs are the product of truly understanding the problem as a whole and being willing to think outside the box of your initial instincts.