Secure Ignorance

I have found one property that distinguishes a seasoned engineer from a junior.

I will call this property secure ignorance.

Secure ignorance is the knowledge of what we do not know from a problem, project, or system.

A priori, it seems that it is expected of us to know everything about the system we are working on. However, due to the layers of complexity involved on the systems we work on, this is simply impossible even for the brigthest among us due to the limitations of human cognition to keep track of more than 7 things at the same time on the same scope or with a high rate of change and evolution.

Know that the product of more than one engineer working at the limits of their skills will probably be larger than what any of them can execute on their own. This is after all why in so many organizations the ability to team work is taken seriously.

What we can aspire is to have a somewhat complete or structured knowledge about the unknowns of our project. To be aware about the limitations of our current view of the system, or the way we abstract it for our day to day work.

With knowledge about what we do not know we can have a starting point from which to navigate the wealth of information of a large codebase.

We can focus on processes and details that do become relevant to inmediate issues, and ask the right questions to solve them at the right time.

It is also a way to restrict ourselves from jumping to precipitated conclusions or working with the wrong assumptions.

Saying a simple “I do not know” is a more mature answer in a design or architecture meeting than saying the wrong answer.

The next step is to solve that unknown, either by asking, reading documentation or doing our own experiments.

Only with the recognition of ignorance, the quest for knowledge can begin.

whoami

Jaime Romero is a software developer and cybersecurity expert operating in Western Europe.