I'm a +7 perfectionist. I don't like to walk away from work until t's are crossed, i's are dotted, tests are written, and the work is done-done.
Perfectionism is a double-edged sword. While it produces beautiful work, it also prevents me from shipping things when they're "good enough," or even from collecting helpful feedback before I consider the work "complete." Sometimes it takes a non-trivial effort to convince myself to open a PR when the edges aren't yet polished.
My perfectionism has another negative effect — it prevents me from feeling accomplished when I have only a short amount of time to put toward the work. "One hour to put toward this feature? Pfffttt that'll only get me 10% done," my brain says. I dread even starting the work because I know I'm not going to "finish" within an hour.
The trick for me is to break work into smaller slices.
Instead of setting a goal of finishing an entire feature, I treat it like a good agile team treats their work — I break the feature into sub-features, or steps, or layers, or milestones. Anything that breaks the problem down into smaller problems.
These smaller tasks shift my perspective — a small block of time was not enough to finish an entire feature, but it's usually enough to make progress on at least one or two of the smaller tasks. The reframing lowers the bar for what "meaningful progress" means. An hour of work suddenly feels much more impactful. I don't have to fight the voice in my head that tells me it's not worth starting. My milestones for progress seem more attainable.
I've also now got dopamine on my side.
Large chunks of work feel nebulous. They make me feel bad. Like I'm never going to finish. Like I'm slow. Leaving a non-tasked story in "In Progress" for a week is frustrating. It's embarrassing to give the same update in standup several days in a row — "ummm I'm still working on the edit screen."
Smaller slices allow me to check things off a list more frequently, or to drag a sub-task from "In Progress" to "Done." This simple act feels like an accomplishment, complete with dopamine rush. No matter how many tasks remain or how small the task I checked off, it literally feels good when I complete one.
I actually left you a good heuristic above for knowing when you need to break your work down. If you're repeating your daily update...it might be time to break that work smaller. It will help you feel like you're making progress, and it'll give better visibility to the rest of your team.
- It's easier for people to review a smaller scope of work. Large PR reviews often end in "LGTM" (looks good to me) because they're just too difficult to digest.
- It tightens the feedback loop of delivery & iteration. Smaller chunks can be shipped faster. We can learn from them more quickly and iterate.
Slicing my work smaller helped me answer a very specific question I was trying to answer: "How can I accomplish something meaningful in a shorter amount of time?"
In the next article I'll answer another question: "How can I take advantage of those very short blocks of time?"