People are not Resources
Whenever I hear a recruiter or a manager refer to a software developer as a “resource,” I cringe. People are not resources.
Unlike assembly line workers, software developers don’t perform wrote tasks and so therefore they are not interchangeable nor are they scalable.
In his book The Mythical Man Month, Frederick P. Brooks, Jr. writes “The bearing of the child takes nine months no matter how many women are assigned.” Clearly there are certain tasks that cannot easily be deconstructed and this is true for most tasks in software development.
Developing enterprise software is fundamentally a social activity. It requires a great deal of communication even on projects with one developer. That developer’s primary focus is to communicate their intent through the code that they’re writing.
The challenges we face and the things we do day to day are often very different from each other. Sure we wiggle our fingers and type in the same characters every day, but what we make the computer do is often very different from day to day and requires different problem solving skills that hopefully keep us constantly learning and growing.
This is very different from the kind of manufacturing mentality from the Industrial Revolution where people work in assembly lines and are just as interchangeable as the parts they’ve assembled.
This was done for economic reasons and the idea was to make every task so simple that anyone could do it. Because assembly line work didn’t require any special skills, it became a commodity that drove down the price of manufactured goods.
But software development isn’t like manufacturing. Assembling code is not nearly as clean and simple as assembling Lego blocks to build a toy structure. Software is messy and the tools, the language of code, are still not yet well understood.
But software, like literature, has profound depth in both form and content. Code is an incredibly rich form of communication when it’s used that way.
Of all the languages that humans have invented, the software languages are the most abstract and the best representation of pure information models. Software is critical to business because software often embodies their competitive advantages. So the maintainability of their software speaks directly to their bottom line but this is also interesting from a human perspective.
Physics have shown us that most of the material world, the world that we experience, is actually an illusion. The solidity of matter is in illusion because the atoms that compose it are themselves composed of positively and negatively charged waves. Waves are energy but not just energy, they have frequency and amplitude. They contain information, so the core of the universe isn’t a particle or a wave but rather information, which takes the form of particles or waves.
I think of information as stable forms of waves, but however you think of it, information has characteristics. It has organization. And these characteristics are manifestations of the fundamental principles that underlie information, which we can infer indirectly. When we do we begin to get a glimpse of the causal universe, the true nature of reality, and we begin to understand the fundamental properties of a world we can’t experience directly but from which everything we know is experienced. I find this fascinating.


