Nowadays, there is an increasing interest and mentioning of socio-technical engineering, socio-technical systems. And although the words do not strike as odd on its own I personally have struggled quite a bit with the different meanings of the terms and understanding the field of socio-technical systems. So in this article, I will provide a layman’s introduction to socio-technical systems. Knowledge about socio-technical engineering can help you to understand what constraints might prevent or help you to succeed in your current project.
Where does this come from?
The study of socio-technical systems concerns around the way we organise complex work. It specifically looks at the interaction between people and technology. Although it might come across as new, it is a relatively old field of study. The theory is founded in World War II-era by British scientists that did research in the English coal mines.
In these times mines started to put mechanisation into place. Instead of labour-intensive approaches machines were brought in to do the heavy work and reduce a lot of the toil. This must yield into higher efficiency and more output of the coal mine right? Well yes, but there was a negative effect at the same time that negated the gained efficiency. The reason? Social interactions were dramatically changed.
In the manual process, the workers worked closely together, encouraging strong social bonds and were able to execute all tasks as an autonomous unit. The mechanised method, however, put a distance between the people. The shifts that were introduced had as a side effect that no worker had the entire overview of the process. As a consequence moral problems arose, internal fights happened and workers started to resist.
The research and the published paper shows that there is a strong connection between the technology used and the social factors. It shows the importance of jointly optimise both systems to yield success.
Technology, in this case, does not refer to IT systems. Wikipedia describes technology as
Technology is the sum of techniques, skills, methods, and processes used in the production of goods or services or in the accomplishment of objectives, such as scientific investigation.
The definition shows it is broader than just the software systems that we create. It also relates to operational processes.
Society is not determined by technology, nor is technology determined by society. Both emerge as two sides of the sociotechnical coin.Wiebe Bijker
So, socio-technical systems?
While researching this subject in the past months I have found many different definitions of the term socio-technical system. And here I am adding yet another. My definition is
A socio-technical system is a network of interrelated components where people, technological and managerial components interact.
Often this is bounded in the context of an organisation, but depending on the context of the system we might want to analyse smaller or broader units.
The focus is on the relation between the various components. One of the main principles is that the interaction between social and technological factors creates the condition for the organisation’s success. The other main principle states that optimising each aspect on its own tends to increase the number on undesired relations and hurts the existing one. For example, adding a new piece of technology in your software project adds relations between the external components. For engineers involved in the project, it increases the cognitive load. They have to have more knowledge about the used tools and the interaction between them
You almost assume this is common sense right? Why should we put even more emphasise on this? Well, in our - and many other people's - observations we often see that there is a strong focus on one aspect of the socio-technical systems. Not that the other component is forgotten, but it is outsourced to a colleague or an agency. For example, a company that is transitioning to a DevOps philosophy and HR has to arrange the on-call schedules on the side.
Consciously designing and optimising the interactions and relations between social and technical components is called socio-technical engineering. As a prerequisite however it is essential to start observing the socio-technical systems in your environment. There is no such thing as a greenfield system, there are always dynamics at play. By observing this initial state you can start to evolve the socio-technical system.
Looking at the system as a whole is a crucial undertaking. Successful projects look at both components and are just as important for a development project as the developed artefacts. For example, that company that moves to DevOps is not just introducing new tools and methodologies, but also social practices as a change in work procedures, different communication paradigms and other changes. By engineering on both sides of the aisles, the optimum impact is reached.
Complexity ain’t simple
Dealing with complexity is a common theme in socio-technical systems. This complexity can come in many forms and display in different ways. Fred Brooks coined a widely-used definition of different types of complexity that helps us think about this.
Essential complexity - is the complexity of the problem you are actually trying to solve, it is irreducible unless you agree to change the scope of the initial task. In other words: ‘The Thing’ an application needs to do.
Accidental complexity - is the complexity added by tools or a selected path to solve the problem, they are not initial and can be (in theory) removed without change of the scope of the initial task.
As a socio-technical engineer, you are mainly concerned with the accidental complexity. It requires you to dissect the artificially created complexity from the complexity that belongs to the problem. For example, travelling from The Netherlands to Germany was a lot harder in the early ’90s. Not due to the distance or the method of transportation, but simply due to created complexity. We had borders, I needed to make sure I had a passport, I need to stop at a checkpoint so I could be vetted and all of these things. This complexity is artificial, it does not belong to the complexity of the essential problem. Fortunately, the Schengen Convention removed the accidental complexity. The complexity of a journey from The Netherlands to Germany has been reduced a lot.
Why should you care about this?
I believe that socio-technical engineering is one of the key instruments for anyone involved in a project. We all have the ability to influence the success or failure of our department. The structure, processes and constraints created have a huge impact on the interaction between social and technical components. Often we find ourselves focussing solely on one of the components, but this is ineffective.
While developing a new system you can think about the social component it connects to. If you optimise a process, are you aware of how this affects the people that are part of that process? When gathering requirements, are you aware of the social dynamics at play?
We all are responsible for the environment we create. Not just technically, but also socially. Sociotechnical engineering is a capability everyone should possess in order to get the most out of your organisation. To me, it is one of the key capabilities a manager should have. The environment at play in the organisation is the responsibility of a manager and as a consequence should be the main component to improve for beneficial results.
Are you interested to learn more about sociotechnical systems? These articles and books are full of interesting information or reach out to us for a chat!
- Thinking Fast & Slow by Daniel Kahneman
- Increasing Business Value By Embracing Domain-Driven Design
- Cultural needs designing bounded contexts
My colleagues Evelyn van Kelle and Kenny Baas-Schwegler talked about socio-technical complexity at FlowCon 2019 which goes more in-depth on this subject.
We empower companies to deliver reliable & high-quality software. Any questions? We are here to help! www.qxperts.io