Share options

Links to related pages

Make it sustainable. Keep it simple. Plan properly. Use the least power. Code just in time. Do it right the first time. Make intentions clear.

Minimize cognitive footprint

Time to read

, 736 words, 5th grade

Cognitive footprint is the sum of cognitive load over the life of the item in question. This may be an application, a framework, a project, a process, or something else.

Cognitive footprint is the area under the cognitive load curve.

You can think of cognitive footprint as the boot on your neck crushing the life out of you bit by bit. It is a measure of how much effort (time, money) you will have to invest to achieve your goal.

Cognitive footprint is important in many enterprises. It appears in many forms. Too few people stop to consider its effects.

Cognitive footprint determines in part the Return on Investment (ROI). This is because it is a large factor in Total Cost of Ownership (TCO).

It is true whenever you choose between different approaches. Or services, frameworks, architectures. Or whatever. And that determines profitability.

The questions we should be asking are:

In short, how much mental energy (brain work) will we have to invest over the lifetime of this thing?

When we choose a new framework, library, service, or language, too often we contrast the price vs. the benefits and nothing else. We forget to investigate:

We should consider all the things that affect cognitive footprint. Letʼs not overlook how hard it will be to find trained workers. Or how hard it will be to train them internally. And then how hard it will be to keep those workers and to keep that training current.

For learners, cognitive footprint determines the time and effort needed to learn the skill. And it determines how much of our working day we will need to devote to maintaining that skill.

And it is not only a matter of the cognitive footprint involved. We should also be asking both do we need it and do we need it now? Best to learn just in time.

It goes well beyond choosing the right language, framework, service, etc. How you write your code is as important.

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Martin Fowler

Do you make your intentions clear? Can you keep it simple? Did you use the least power? Will you plan properly and do it right the first time? Are you coding just in time or have you gotten way ahead of yourself?

The previous Craft Code methods have all been leading to this one.

Minimizing cognitive footprint means writing easier to understand code. That means creating fewer bugs. It means easier maintenance and evolution. It means limiting features to the necessary ones — avoiding feature creep. It means a design, both visual and mechanical, in which every item has a purpose.

In short: as simple as it can be, but no simpler. Put another way:

Minimizing cognitive footprint is about making everything we do much, much easier.

Hence, it is great for developer experience (DX) as well. And it benefits the bottom line for both the business and the end user. Nice! Itʼs win-win-win!

Understandable code frees mental bandwidth from having to puzzle out inconsistencies, making it easier to maintain and enhance projects of all sizes.
Daniel Roy and Audrey Roy Greenfeld

We recommend that you keep cognitive footprint in mind in everything you do. It is more than the cognitive load of this moment. Itʼs the sum of that load — the footprint — over the life of the evolution, whatever that evolution may be.

Look down those paths before you tread them. Then choose the shortest, simplest, easiest path that still gets you to your desired destination.

Links to related pages

Make it sustainable. Keep it simple. Plan properly. Use the least power. Code just in time. Do it right the first time. Make intentions clear.

Get notified form

Get notified of site updates
Button bar

Carbon emissions for this page

Cleaner than 99% of pages tested
0.016g on first visit; then on return visits 0.008g
QR Code

Scan this code to open this page on another device.