Friday, June 27, 2014

Which Incorrect Assumptions are Harming You?

There's a saying, "Never ASSUME because it makes an ASS out of U and ME."
There may be occasions when you want to show that someone else is a bozo, however it's going to be far more common that you need to cover your own behind.
Minimize the number of assumptions you're making, and I guarantee you a better, more productive and happy life. I'm going to focus here on the workplace and leave the self-help and spirituality angle to others, or maybe a separate article.
When starting a new project, do yourself a big favor and take time to review the desired outcomes (requirements), and list out the assumptions you're making about achieving each of them. This is probably not news to a professionally certified manager, but it is definitely something that engineers need to learn and put into practice.
A requirement such as "Integrate event registration form with Paypal checkout" is something many others may have done, however if this is your first time at it, then you need to identify the assumptions you're making about how easy this will be.
You're essentially just answering "what do I need to know so that I can make a realistic estimate about this task?" But you need to start by listing even the most basic assumptions. For example, "I have the prerequisite HTML/CSS/Javascript/Ajax knowledge to make a registration form." Do you really, or are you good with a couple of those things and assuming the rest will fall into place by searching on Stack Overflow or CSS Tricks? Is Google really your friend?
This will probably be an iterative process where new questions come up as you find answers for the earlier ones. You don't necessarily have to answer each and every single question up-front, but make sure you have enough information at hand so that you and others can be more certain about a particular approach.
Sounds a lot like "documentation" or "process" which a lot of energetic engineering and creative people might shun. This skepticism eventually dies down after you've been on projects where you found out very late that people (maybe it was you) made incorrect assumptions about what needed to happen or what would be happening at a certain point in time.
For example:
  • "I thought Unity would easily export my game to multiple platforms, so I saved that for the end. Now, I'm finding out that there are lots of things about my game that are a complete hassle to fix and I wish I had done something entirely different instead."
  • "I was just going to comment out some code here and there so that I could have a simple demo for the trade show, but it turns out that things are too interconnected now and I don't have time to both make a reasonable demo and stay on schedule for my other deliverables."
Don't let hubris be your downfall. You might be very smart about a lot of things, but spending a little bit of time to identify and honestly assess your most basic assumptions can go a long way towards not ending up on what my physiology professor politely referred to as the "ab-oral" end.
What do you do to avoid being on the wrong end of things?