Why You Should Acknowledge Uncertainty
A recent post from the WBUR Cognoscenti blog points out it that it takes courage and integrity to admit that you don’t know something. As software developers, we spend much of our time solving problems, which seems contrary to some common workspace habits. It is worth understanding that asking questions is less a display of ignorance than a demonstration that you are experienced enough to know that you might have missed something.
Building systems that add value for customers and users is hard work. We need to understand how what someone is asking for maps to features we can build. And we also need to understand how to use the various tools and techniques of the trade, both technical and process related. While we can’t always know everything, we are often uncomfortable acknowledging uncertainty. This isn’t necessarily the best thing to do—for your customer or yourself.
While it’s unreasonable to expect even the best software developer to always know everything they need to do the best job that they can, developers often feel that they must appear to always have the answer. We want to give customers, users, and colleagues confidence that we are smart, effective masters of our craft and that they can trust us. Unfortunately, it’s easy to feel like the best way to help people be confident in our abilities is to never admit ignorance or ask questions.
Not admitting uncertainty can cause problems in the long run. Given the vast amount of information we need to understand to do our jobs and the rate at which technologies and techniques are changing, it would be difficult to imagine someone who can work effectively without asking questions.
For technical issues, there are always new approaches and sources of information. For customer requirements gathering, we have no way to actually know what someone means or is thinking. While we often can make progress working with the information we have and extrapolating from it, there are benefits to being willing to ask questions when we are uncertain.
There is much you can gain by letting go of your fear of appearing ignorant. As Kate Matsudaira points out, asking questions helps you gain perspective, evaluate options when looking for a solution, decide what action to take, and even (not surprisingly) gain knowledge about something you don’t understand.
Problems are not always what they appear, and asking a question might save you a lot of work. Sometimes what distinguishes an experienced developer from a less experienced one is not what the experienced developer knows but what he acknowledges he does not know.