Chunking
Make things bigger to make complexity smaller
Chunking speeds up delivery by stopping your teams from getting overwhelmed. Without chunking everything is slow. If you understand where to apply chunking, you can deliver much more.
“Chunking is a way to decrease the number of items you have to remember by increasing the size of each item.” Joshua Foer. Moonwalking with Einstein: The Art and Science of Remembering Everything
What is chunking
Chunking takes smaller concepts and builds them into a single bigger concept, like how a few bricks combined become a wall. It drives down complexity by making things bigger while decreasing what you have to know and remember.
You will be familiar with this phenomenon in Software because chunking is inherent in abstraction, interfaces, and layering. Many teams use chunking intuitively, but having a mental model of it allows you to apply it early, before it overwhelms you.
Mental model for Chunking
Complexity can overwhelm us quickly. Imagine sitting at a table with four Lego bricks in front of you. It’s easy to remember the details about the bricks—their colour, shapes, and arrangement on the table. But if I tipped a bucket filled with hundreds of bricks onto the same table, it would be far too overwhelming to remember each individual brick.
Chunking drives complexity down. Take the hundred or so bricks and arrange them into a new form, like a house made of Lego. You no longer focus on the colour or shape of the individual bricks as you’ve chunked them into a house. The complexity fades into the whole, even though the hundreds of bricks are still there. You lose the detail of the individual bricks but, in turn, gain understanding by grouping them as one.
How using chunking helps us drive complexity down in Software
Chunking makes communication simple. Imagine talking about something in terms of every individual concept: many-layered neural network, multi-headed attention, positional encoding, transformer-based architecture, tokenisation… You get the picture, it’s not a good way of communicating, but it happens all the time in software as teams talk in hard-to-decipher concepts that make you sound smart but fails to communicate. If you can build those concepts into a single term—a large language model—it suddenly becomes easy to communicate.
Chunking is all about concepts, so it’s your job to notice when there are too many bricks on the table. When this happens, get your teams around a table and build those concepts into something bigger, like a house.
How to chunk
Combine smaller pieces into a single more significant piece, then name it. For example:
Step 1) Combine concepts: many-layered neural network, multi-headed attention, positional encoding, etc.
Step 2) Name it: Large language model.
People can grasp a large language model as a concept without needing to understand the pieces.
Closing thoughts
Chunking is a deep concept. There’s an excellent course on Coursera that covers chunking from a psychological point of view: https://www.coursera.org/learn/learning-how-to-learn. Chunking is a cornerstone mental model for much of this series, and we’ll return to it repeatedly.