Dealing with Ambiguity

Here are the possible scenarios in order from most ambiguous to least ambiguous.

  1. You know what you need to do and you know how to do it.
  2. You know what you need to do, you don't know how to do it, but you do know how to find out how to do it quickly.
  3. You know what you need to do, you don't know how to do it, and you have no special resources that will help you learn how to do it quickly. [1]
  4. You don't even have a clear picture of what you need to do.

As you grow as a developer, earn trust, and gain more responsibility, you start tackling work further and further down the list. As a junior dev you usually only deal with levels 1 & 2.

[1] The difference between 2 and 3 is that in 3, you need to start with some googling and/or reading, whereas in 2, you know you have a specific resource that tells you exactly how to do the specific thing you're trying to do. An example of 2 is doing calculus. I don't remember how to do it all anymore now, but I've done it before and I know I could pull my calc textbook off the shelf to remember. This example would be case 3 if I'd never done calculus before, since I'd have to learn it from scratch.