When it comes to platform engineering or internal developer platforms at some point, the topic of cognitive overload comes to the forefront, but what is it about in detail?
First of all, let’s move on to what cognition is:
What is cognition?
Cognition is the human ability to process information and transform it into knowledge. In this process, the human being has the basis for the development of his abilities, such as perception, imagination, value judgment, attention, reasoning, and memory. Therefore, cognition is one of the elementary concepts of the theory of knowledge.
Human cognition is limited, each person experiences different levels of information overload. Such overload happens when the volume of information exceeds the theoretically optimal time for decision-making. The more information is added after this time, the higher the cognitive overload will be.
Consequences of cognitive overload
Low cognitive performance is a factor that groups the consequences related to low mental performance, specific consequences include lack of focus, decreased cognitive skills, frustration, and mental exhaustion.
What can cause cognitive overload in a developer’s daily life?
Technological evolution undoubtedly brings with it several benefits for society as a whole. Never before in history have we had access to information and technology with ease and quality, however, the layers that support such technologies also demand more and more ultra-specialized labor.
At the dawn of computing, developers packaged their code and delivered it to the infrastructure team, from there, their responsibility in theory ended, and in many cases, the speech “on my machine it works” was used and further heated interactions.
For this and other reasons, the DevOps movement came to add fluidity to the application lifecycle, now, increasingly the line between development and operations is increasingly blurred and Verner Voegls’ iconic phrase “you build it, you run it” further corroborates the dynamic scenario between development and operations.
In the meantime, technologies and architectures have improved along with the complexity of operating this entire ecosystem, and here already lies a leap in cognitive overload.
Nowadays, in a cloud computing universe, highly scalable and distributed applications need multidisciplinary specialists to keep everything running, and with that, technologies, languages, frameworks and tools come together becoming prerequisites for any type of software architecture. It is not uncommon to see job offers that require the developer to have full stack, cloud, containers, and infrastructure proficiency. What was once required for at least half a dozen people is now a prerequisite for one.
Some data for context
A survey made by GitLab (The GitLab 2022 Global DevSecOps Survey) brings some interesting data.
A bit of data (the good side of the story)
Fear of the future aside, almost 60% of developers said they are releasing code faster than before, continuing a release pace trajectory that has done nothing but increase in recent years.
A total of 35% said they are releasing code twice as fast, while 15% are releasing code between three and five times faster, and 8% said code is going out the door more than five times faster.
To find out why code is being released faster, the developers were asked what has changed in their process. Most said that using a DevOps platform was the number one reason for the increased pace of code release, followed by automated testing, source code management, planning tools, and observability.
A bit of data (the not-so-good side of the story)
Developer roles continue to change, taking on more responsibility for what were traditionally operations roles.
For example, 38% said they instrument the code they wrote for production monitoring (up from 26% in 2021 and just 18% in 2020), while 36% define and/or create the infrastructure from which their application runs, about the same as in 2021. But 38% now monitor and respond to that infrastructure (up from 25% in just one year) and 36% say they are on call for alerts from apps in production.
Developers also said they are writing the runbooks for applications in production and that they are now serving as an escalation point when incidents occur.
Developers are also spending more time than ever on maintenance or integration of toolchains. Almost 40% said they spend between a quarter and a half of their time on these tasks (more than double the 2021 percentage), while 33% are spending at least half their time and as much as all of their time on toolchain integration and maintenance.
Needless to say, all these tasks, technologies, frameworks, and ecosystems treated as commodities generate immense cognitive overload.
How to decrease cognitive overload
To minimize the side effects of architectures installed in Cloud Native environments and all the cognitive overload we have seen here, Platform Engineering has emerged.
With the use of a development platform, it is possible to establish technical standards, centralize information, and create automation so that the team can “free their minds” for other activities that will add value to the business and satisfaction to their day-to-day work.
Internal developer platforms and the associated role, platform engineer, are ultra-hyped topics today, tested and used by large companies that aim to test hypotheses quickly, allow self-service of the development team, as well as abstract the entire chain of technology, tools, and configurations, significantly reducing the cognitive load.
If the work becomes more complex, it is the leader’s job to help the team navigate it. And that’s when an engineering platform is the most needed.
- ACM Queue: Interview with Amazon’s Werner Vogels | AWS News Blog
- A Conversation with Werner Vogels – ACM Queue
- Cognição: significado e campo de estudos – Psicanálise Clínica
- Os efeitos da (in)felicidade no processo de desenvolvimento de software
- Sobrecarga cognitiva e tomada de decisão em grupo em situações extraordinárias de risco
- The GitLab 2022 Global DevSecOps Survey: Thriving in an insecure world