All posts
Published in Latest Articles

Cognitive load in software engineering

Profile image of Atakan Demircioğlu
By Atakan Demircioğlu
Fullstack Developer

Here are my notes about cognitive load in software engineering.

Cognitive load in software engineering image 1

Here are my notes about cognitive load in software engineering.

“Our codebase is easy to understand”
“It is easy to understand, you won’t need more than a couple of hours”

Did you even hear sentences like that?

Probably YES.

Bingo, that is about the cognitive load.

What is Cognitive Load In Software Engineering?

  • The cognitive load theory was coined by John Sweller in 1988, in the paper Cognitive Load During Problem Solving: Effects on Learning.
  • Cognitive load in software engineering refers to the mental effort users spend while reading software artifacts.
  • Comprehending code requires that developers spend mental effort
  • Developers also apply cognitive load to solve math equations
  • Making code easier to read will allow you to work faster and better, and also improve your mental state and mood.

Types Of Cognitive Load

  1. Intrinsic cognitive load is the difficulty of learning the task itself. It is determined by the number of existing elements, and the level of interactivity between them.
    Ex: How is a class defined?
  2. Extraneous cognitive load, which relates to the environment in which the task is being done. Unnecessary details have an impact on the cognitive capacity that an individual has.
    Ex: How do I deploy this component, again?
    Ex: It also imposes extraneous load when the learning material or the teacher uses poor fonts, speaks in a monotone, or uses complicated vocabulary. It’s anything included that does not directly contribute to the learning goal.
  3. Germane cognitive load, which relates to aspects of the task that need special attention for learning or high performance. This type of cognitive load allows people to focus on the task at hand and reduces distractions. This is the business domain we must know. If our application is a banking system we need to understand how that works. This can have subtle changes for each company.
    Ex: How should this service interact with the ABC service?

Reducing cognitive load

  • To manage how complicated a learning task is for our students — Intrinsic load,
  • Reduce distracting material — Extraneous load,
  • And encourage Germane load.
  • Intrinsic cognitive load can be reduced by breaking down the subject content
  • Extraneous cognitive load can be reduced by the way in which instructions are presented.
  • For example, lessons that use PowerPoint with excessive writing and the teacher talking at the same time, can inadvertently generate excessive cognitive load and lead to working memory failures

References