As software developers, we are constantly moving up and down the ladder of abstraction.
Junior developers tend to get lost and get stuck when they attempt to solve problems at the wrong level of abstraction. They simultaneous don’t understand the capabilities of the API call/hardware they are relying on, and don’t understand the purpose/design which they are constrained to.
To become a senior developer, not only does one need to be comfortable at all levels of abstraction, one needs to cleanly define the layers. Senior developers need to be able to know whether to push for a change in requirements or to introduce new services to solve the problem.
The ladder of abstraction is present everywhere. Here is it again, but as a business unit.
This is why understanding the client goals is so important. It drives and constraints all layers below it. When assigned a task, attempt to connect the dots all the way back up the ladder of abstract to the client goals. If one is unable to, stop immediately. Either there is insufficient information or the task is nonsense. Ignore this advice and suffer rework later.
Managers need to prime everybody with the full context of the problem and then recommunicate it at every opportunity. Nobody has perfect recollection and everybody is going to miss something. Personally present the problem and goals verbally, and ensure everybody has a copy of the digital reference afterwards.
The ladder of abstraction the same as the what–how–what from Start with Why. This is an universal pattern that comes up time and time again. Try it for yourself. Apply this pattern to all areas of your life and you’ll be able to tease out separate layers from what seemingly was a single problem.
Do you want to navigate the sea of abstraction? You’re in luck, Battlefy is hiring.