Software engineering is special

Building tools is what sets us apart from other species. At least on this planet.

At first, we started with physical tools, such as an axe. More recently we shifted our attention towards information tools, such as a search engine. Regardless of their complexity, they are tools, and tools are nothing else but external utilities that help us fulfill a task with a significantly increased productivity than if we would do the same task using only our physical capabilities.

The axe was used to be created directly by the hunter. In time, building axes became a specialized craft that got separated from the one of the hunter. The handyman was no longer concerned with the physical exercise of hunting. He became concerned with the essence of hunting and crafted tools that optimized this endeavor. In other words, he became a meta-hunter.

We learnt how to build tools for survival and soon we realized it is a profitable strategy. The identification of various areas and the implementation of tools became the very core of our civilization. Our society is organized in an intricate maze of specialized layers that are solely focused on producing tools. In most cases, these tools are used to produce other tools. These in turn will be used yet again to produce other ones, and so on, until finally a tool will be used to actually fulfill and end need, such as producing light or offering a piece of information.

Most of us are highly specialized in creating tools for others, and we need dedicated tools provided by others. A doctor, for example, requires a hospital building to be produced by construction engineers.

In most disciplines, the skill of building a tool is external to the discipline. Take the field of constructions, for example. The tools that constructor engineers use are made by engineers that have an entirely different skill set, such as mechanical or electrical engineering. This creates a natural ecosystem in which the demand is matched with the offer. In the end it works, but still a large amount of energy is spent at the intersection of the two disciplines, mostly due to the different speeds and languages. The more integrated the demand and offer, the better the overall productivity.

But, not all disciplines are quite the same. Some are different. Software engineering is one of these. In software engineering, in most cases, the tools required to build software systems, are software systems in their own right. Thus, the skill of producing a tool for software engineers is essentially software engineering.

This constitutes a unique opportunity. If in other disciplines the de facto choice is to look for others that can help and wait for the tools to be delivered, in software engineering the problem can be turned around: software engineers can help themselves. If software engineers build their own tools the costs associated with communicating the needs to other providers can be decreased, and the feedback loop can be increased dramatically. This, in turn, opens the possibility of tackling tool building at a fine level of granularity: software engineers could build tools every day to increase their productivity.

It simply makes economical sense for software engineers to learn how to help themselves. This is the very premise of humane assessment.

Posted by Tudor Girba at 24 July 2011, 2:55 pm with tags assessment, economics link
|