Imagine you get home from the supermarket with a trunk full of groceries. Your next task is to transport shopping bags from your car to your kitchen. If you took one bag per hand you’d deliver two bags per trip. Cool.
But what if you took four bags per trip? It’s tempting. But likely one bag will split and its contents will fall to the ground. Then you’ll be on your hands and knees on the hot gravel trying to retrieve a soup can from beneath a car.
Lean software nerds will recognize the preceding example as a batching exercise. The idea behind batching is pretty simple. How you define a unit of work has a huge impact on your overall efficiency. Substitute “work in progress” for “bags per trip” and you get the general gist of lean.
Cognitive psychology nerds might also recognize the preceding example as an example of chunking. Chunking is a cognitive processing technique which organizes meaningful groupings of information to increase learning efficiency. The idea here is that you can learn more efficiently if you optimize chunk size.
Slow is smooth; smooth is fast. That’s the key idea behind both chunking and batching. The adage applies, whether you are trying to transport groceries to your kitchen, or ideas to the market.
The central challenge of all modern software companies is not software delivery, but idea delivery. You have to teach the market about what kinds of problems your software can solve. That’s why sales engineers exist. In tech, the acts of selling and teaching overlap so tightly as to be almost indistinguishable.
What that means is that the flow rate of your software delivery depends on the flow rate of your teaching pipeline. If developers aren’t picking up what you’re putting down, then you’re going to get pwned by a company that understands DevEx…look to Twilio for an example of complete pwnage.
Optimizing chunk size
Let’s get back to the grocery bag example. Imagine that your spouse has been waiting for you to get home so that he or she can bake you a birthday cake. The dumbest thing you could do would be to carry items one by one from your garage to the kitchen. A constant stream of bits without context provides no value to the recipient…it’s assaultively annoying.
A smarter approach would be to deliver the flour, eggs, sugar, and butter together in one bag. Smarter yet would be to drop a recipe into the bag. With ingredients and a recipe, you have delivered a “chunk” that someone else can assemble into a new value increment (a cake).
In consumer software settings, the press release is a great example of a well-sized chunk of information. The press release provides the context that sells the feature. How do you use the feature? What value can I expect? How is it better than what the competition offers? Easy peasy.
Chunking is not so easy with platform software. Partly that’s because your audience consists of grumpy developers. The developers are grumpy because they’re likely up against a deadline and they have to solve problems for their customers. A press release won’t help a developer. So what will? In platform software settings, there is no better way to chunk than the “how to” article.
Understanding the how-to
Psychologists believe there are two modes of thinking. Diffuse mode thinking happens when your brain is trying to make connections. Focused mode thinking happens when your brain is traversing already-formed neural pathways to make decisions and solve problems.
When a developer is doing analysis, or evaluating a product, or architecting a solution, he or she is in diffuse mode thinking. Imagine your spouse looking down at ingredients on the counter. What can I do with this flour, eggs, milk, and sugar? That’s the question you need to answer. If you can provide a recipe at this point, your spouse can then move into focused mode thinking, using already formed neural connections. In other words, how to make a bundt cake ladders up from how to crack an egg.
What happens if you don’t provide a recipe? You might end up with a bundt cake; or you could end up with a hockey puck. But the most likely outcome is indifference. If you want people to give a shit, you need to provide context for why they should.
And therein lies the problem. The flow-rate of your software delivery system is coupled to the flow-rate of your idea-delivery system. In other words, if you want to ship more software, you need to get better at chunking, which means you need to write great how-to’s.
For tips on ☝️ check out the anatomy of a how-to article.
I'm hiring software engineers! Check out the jobs page to see my open positions.