Alleviating the Cognitive Load on Software Developers
Article initially published on the Software Intelligence Pulse
Gartner, the global research and advisory firm, recently hosted an impressive event in the bustling city of London, bringing together leaders in the realm of application and software engineering. With over 1,500 attendees, and a lineup of reputed analysts, the event featured prime exhibitors, including us at CAST . While many topics captured the attendees' attention (low-code/no-code, Generative AI, etc.), one concept stood out as particularly intriguing: cognitive load.
Understanding Cognitive Load
Cognitive load, defined as the mental effort required to perform a task, holds significant importance in the realm of software development. This cognitive load experienced by developers is influenced by various factors:
The Impact of Cognitive Load
The consequences of this ever-increasing cognitive load on developers are profound. Cognitive load results in fatigue, errors, and frustration, and makes it challenging for developers to learn new concepts and be creative. Additionally, it has significant business implications, including:
领英推荐
A Solution: Platform Engineering
To counter the challenges posed by cognitive load, Gartner recommends forward-thinking enterprises to adopt platform engineering. Platform engineers collaborate closely with developers, supplying them with the tools and resources needed to boost productivity and efficiency as they build more reliable products quickly. For instance, they design and build self-service tools and workflows for developers, such as continuous integration and continuous delivery (CI/CD) pipelines, infrastructure provisioning tools, and developer portals. They also establish and ensure best practices for software development and delivery.
The Key Ingredient
Study upon study has found that developers spend the over half of their time understanding existing code.
Whether creating new capabilities, maintaining existing software or modernizing legacy applications, developers spend the bulk of their time comprehending all relevant dependencies between the various code and data components, repeatedly re-creating ‘images’ of the system in their mind, and typically involving others on the team to validate their understanding, thereby affecting their productivity, too.
Thus, in my view, platform engineering should also provide capabilities allowing developers to navigate the application structures much faster, like interactive application blueprints. Such maps of applications’ inner workings – akin to what software intelligence technologies, like CAST Imaging, automatically deliver – allow developers and architects to navigate through technologies, services and APIs It helps visualize all elements (e.g., methods, classes, programs, webpages, tables, procedures, etc.) and all dependencies that make up any custom-built software. Studies have demonstrated that visual representations reduce comprehension effort – i.e., the developers’ cognitive load. What’s more, the level of accuracy and completeness of such blueprints, auto-generated from source code and database structure analysis, help software teams find answers to their technical questions rapidly AND independently, without interrupting nor burdening subject matter experts – like database administrators – who often have such knowledge.
Benefits of Platform Engineering
Embracing platform engineering leads to a range of benefits:
In a rapidly evolving software landscape, managing cognitive load is essential for developer wellbeing and business success. Platform engineering, as advocated by Gartner, emerges as a compelling solution to empower development teams, reduce cognitive load, and ultimately deliver superior software products. As businesses strive for greater agility and innovation, investing in platform engineering is a strategic move toward achieving these goals.
* - see the references in our developer productivity guide.
totally on the money as always Luc