Discussion about this post

User's avatar
Dennis Nehrenheim M.Sc.'s avatar

Hey Alex,

I really like your punch line: “Never begin the work on a new item if we’re not very sure that we will be able to deliver it without having to place it in a waiting queue.”

However, I’d like to challenge you a bit on this.

Firstly, not all stale branches represent unfinished work. Some may simply have been forgotten, or are duplicates or residual artifacts—like completed spikes—that should have been cleaned up.

More importantly, though, there’s a significant issue in your argument: it overlooks the sunk cost fallacy. I understand your advice to “only work on completable stuff,” but your solution somewhat requires us to predict the future—which isn’t always feasible. Work is often initiated at the customer’s request, and if a customer changes their mind midway, the time and resources already invested become sunk costs and shouldn’t influence our decision on what to do next.

In personal productivity, I refer to this principle as “not all work has to be completed,” emphasizing that we shouldn’t become slaves to our to-do lists. I believe this concept also holds true within a software engineering team.

So, in addition to your punch line, I think it’s important not to demonize “unfinished work” or “stale branches” per se.

Expand full comment
2 more comments...

No posts