, , , , , , , , , , , , ,

Karl Marx created very sophisticated theories of labor value already in 19th century. His view was that capitalistic system will lead to alienation of work. Of course his writings reflected his time of 19th century Europe and he didn’t take into account e.g. constructivist viewpoints to the world and people. However, his theories are still applicable in many areas and neo-marxists use those e.g. in the theories of environmental sociology.

Alienation of work in SW Development

It is quite easy to see how the alienation of work develops also in the context of SW development. Division of work, or specialization, leads to a situation where there are lots of people who are not connected to the actual results of the work. In fact it is quite common that there are huge business units that are responsible for a specific areas of product development, which are not tightly connected to customers or even to the physical products.

Here’s a general description of how this happens: As the company grows and more people are joining in the cooperative processes of product-making, only option to grow is the work division, specialization. This is needed because of two things: first of all there are new skills that are needed, secondly people need to have time to grow their expertise on these matters. Only viable option to make this happen is the specialization which frees time for people to focus on specific areas. Sometimes this is called “over-specialization” but I see no reason to put such a negative emphasis to this. It is the only thing that can happen. There will be different functions like marketing, RnD, logistics and inside these functions there are further divisions such as SW, HW, services, etc. And in reductionist manner this continues further on.

Screen shot 2013-02-01 at 1.30.24 PMHere’s a picture of how a SW organization might look like from the point of view of alienation. The bigger the degree of abstraction, the bigger the alienation. It is important to understand that the alienation isn’t just a negative function, it has two sides: Alienation means less dependence to the actual results of the work and more dependence on the abstract knowledge. It enables people to build expertise on different competence areas and become very efficient in those areas. Downside is that the abstract knowledge can be distorted and represent the actual world quite badly.

Metrics fetishism

Marx wrote about “commodity fetishism” to describe the situation where in the capitalistic system everything (including the labor) is turned into commodities. This reflects his time of 19th century where everything was about material commodities. In SW development I would call this “metrics fetishism”. It means that in the logic of product making everything is turned into numeric metrics. The quality of SW is bunch of excel sheet describing different numeric trends (e.g. errors amounts, stability figures, test reports, …). Also the employees are represented in numeric terms as “resources” and “capabilities”. They are turned into excel sheets with capacities and competences that can be “allocated” to different needs.

This is integrated seamlessly to the mechanistic (or systemic) idea of manager as an outside observer designing and steering the organization and it’s goals. I have written about this more detailed in my post about the three different ways of seeing organizations.

How to decrease the alienation?

Like I said, I think the alienation is inevitable. There is no way to stop it because it would stop the growth of the company and building of expertize. It means that not everybody needs to spend time e.g. on the marketing, testing activities, gathering customer feedback and logistics. People can focus on different things and grow to be experts in those areas. The downside is that when they become less dependent on the actual results, they become more dependent on the abstract knowledge. We all know that the abstract knowledge can be distort the reality in many ways.

So, as far as I can see the only thing that can be done is to actively work against the dependence on the abstract knowledge and build as much connections as possible to the less abstracted layers of knowledge. How much one can or should do this depends entirely on the context.