Most software is not a tech problem

Software deals in absolutes. In zeros and ones. In data formats, mechanized processes. Similar to a factory machine, software aims to emulate human acts.

But the ease with which the process can be molded and remolded makes us believe software is something magical. Something that can do everything. A wizard, an all knowing deity.

But at the core software is about mechanization. About understanding the task to achieve, the steps to take. Formalizing those steps, standardizing them, digitizing them.

And thus, software becomes not about code or syntax or systems. But about the logic building blocks. Understanding the very human steps required to transform a piece of wood into a beautiful cabinet.

And that means making explicit what implicit. Breaking up your “craft” into painfully simple steps and processes. Removing the veil of magic from the job, to mechanize it.

And that means pain. Because at first it seems your job is being replaced. Your former skills and craft is being reduced to the domain of a machine. And with that it can leave a feeling of being worthless.

Software engineering is the craft not only of mechanizing that which once was implicit. It is also having a feeling for taking people along. Empowering their core skills, allowing them to feel empowered.