David Jiangwritingprojectscontact

Gumption Trap Cheatsheet

The ultimate test’s always your own serenity. If you don’t have this when you start and maintain it while you’re working you’re likely to build your personal problems right into the machine itself - ZAMM


What is a Gumption Trap?

A gumption trap is an event that causes us to lose passion and craftsmanship for a project. While a regular setback makes us want to take a break, a gumption trap makes us want to set the project on fire and throw it off a cliff.

It was first used in Robert Pirsig's cult classic "Zen and the Art of Motorcycle Maintenance".

Why do they occur?

Pirsig defines it as anything that causes us to lose sight of "Quality" and no longer care about how well something is done. We just want to get it over with, even if it means walking away altogether.

Gumption traps occur because passion is a non-renewable resource. It's near impossible to "force" ourselves to care about something. We can only increase our sophistication at acting like we care.

Energy can be renewed with a break. Time can be increased by re-scoping expectations. But running out of gumption is a game over. So it's the most important thing to safeguard.

image


Examples of Gumption Traps

Forced Backtracking

When you're almost at the end of a project that involves a complex sequence of steps but discover something that requires you to basically start all over.

This occurs usually at a time when you think you're almost done. After days of work you finally have it all together except for: What's this? A connecting-rod bearing liner?! How could you have left that out? Oh Jesus, everything's got to come apart again! - ZAMM

Gumption Desperation

When you realize you're about to lose motivation for the project so you hurry up wildly in an effort to make up for lost time. This rarely works as it just creates more mistakes. It's the "Hail Mary" strategy of negative expected returns but high potential reward. Buying lottery tickets and trolling online are examples in real life and in online games where you internally give up on at succeeding using the conventional path

Intermittent Failures

These are failures that disappear as soon as you try to debug them and can't be consistently reproduced. You don't know why they happen and you can never sure that they are 100% fixed. They're discouraging when they happen over and over again despite multiple layers of duct tape attempts. They exist in the background like an constantly looming shadow, threatening to sabotage all future initiatives.

Value Rigidity

This is a inability to re-value what you see because of a commitment to previous values. An example is a pre-mature diagnosis that prevents you from making new discoveries as new information is discovered. It's like a jigsaw that you're sure you have the pieces to but is actually missing a few.

Like a monkey with its fist in a jar, it's impossible to escape the currently situation without letting go of something valuable.

Anxiety

This gumption trap of anxiety, which results from overmotivation, can lead to all kinds of errors of excessive fussiness. You fix things that don't need fixing, and chase after imaginary ailments. You jump to wild conclusions and build all kinds of errors into the machine because of your own nervousness. These errors, when made, tend to confirm your original underestimation of yourself. This leads to more errors, which lead to more underestimation, in a self-stoking cycle. - ZAMM


Boredom

> Boredom means you’re off the Quality track, you’re not seeing things freshly, you’ve lost your “beginner’s mind” and your motorcycle is in great danger. Boredom means your gumption supply is low and must be replenished before anything else is done. When you’re bored, stop! Go to a show. Turn on the TV. Call it a day. Do anything but work on that machine. If you don’t stop, the next thing that happens is the Big Mistake, and then all the boredom plus the Big Mistake combine together in one Sunday punch to knock all the gumption out of you and you are really stopped. - ZAMM

image


Examples in Software Engineering

1. Legacy Code Labyrinth

You're given the responsibility to modify or extend a piece of legacy software. As you delve deeper, you realize there's minimal documentation, no unit tests, and the original developers are long gone. Every modification seems to break another feature, and the entire codebase feels like a fragile house of cards. You're tempted to rewrite the whole thing, but time constraints and lack of organizational support demoralize you.

2. Dependency Hell

After spending hours developing a feature, you decide to integrate a new library or tool. This results in a cascade of incompatible dependencies. Every solution you try introduces new conflicts. The more you untangle, the more convoluted it gets, leading to a strong urge to scrap everything and start over.

3. Endless Refactoring Cycle

The pursuit of the "perfect" code leads you down a rabbit hole of constant refactoring. Each change seems to make sense in isolation, but collectively, they lead to over-engineering and code that's even harder to understand. This obsession with perfection can sap enthusiasm and lead to burnout.

4. Shifting Requirements Whirlwind

Just as you're about to complete a feature, stakeholders change their minds, and the requirements shift. The new changes negate much of your previous work. This repetitive cycle not only diminishes the value of your efforts but also leads to disillusionment and dwindling passion for the project.

5. Feedback Loop Frustration

You push code, expecting it to pass all tests and checks, but it fails due to some trivial issues or flaky tests. Each iteration requires waiting for the entire CI/CD pipeline to complete. This inefficient feedback loop erodes your patience and enthusiasm for the task at hand.

6. Unrealistic Optimism Overload

You underestimate the complexity of a task, thinking it'll be straightforward. As you start, you uncover layers of intricacies. The discrepancy between your initial estimate and the actual effort required creates frustration, leading to reduced motivation and the desire to cut corners.

7. Documentation Desert

You're trying to integrate with an external service or use a new tool, but the documentation is either non-existent or woefully out of date. Every step becomes a process of trial and error, and you feel like you're groping in the dark. The lack of guidance and clarity can rapidly drain your gumption.

8. Siloed Knowledge Sinkhole

You're stuck on a critical bug or feature, but the one person who has the expertise is either unavailable or has left the company. You're left to piece together the puzzle with fragmented information, leading to a feeling of isolation and a decline in morale.