Sometimes when I'm working with people the smallness of the steps I take frustrates them

They can *see* where to go
They could just *do it*

But, not without breaking functionalities, breaking tests, and having to go back to "clean it up later"

I prefer going green-to-green
The reason I take the smaller step path has to do with avoiding *all the other things* that frustrate people
When I work small, always keeping the work shippable, distractions are less of a problem. I can check in, push my work-in-progress, and feel safe that I've made the code a step better.

All tests pass, no waste, very safe.
If I work larger and priorities change I have to choose between quickly getting my code back to a working state (possibly in an unsafe way), leaving it in a branch to rot (possibly causing even more work to merge later), or reverting my changes and wasting all the time I put in
Working small and "never being more than 5 minutes from going home" (5 minutes from the last commit where all tests passed) - at most I lose 5 minutes of work to a distraction or priority change
And honestly, since I've been practicing small green-to-green changes I've found that it only *feels* slower. Mostly because I'm never scrambling to get back to working, or trying to hold way too much in my head.
I tend to get more done this way. I make fewer mistakes. I have fewer bugs. I learn more about the code as I go. I'm able to chunk the code in ways that fit in my head.
That feeling isn't slowness. It's calm. It's clarity of purpose. It's mindfulness.

It's how I work
You can follow @mcarlson_sb.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: