Fix your tools
81–90 of 100 posts
Re: Fix your tools
#82Engineering is a continual lesson in axe-sharpening (if you have 6 hours to chop down a tree, spend the first 4 sharpening your axe). My favorite framing, from Kent Beck: “first make the change easy, then make the easy change.”
Sometimes sharpening the axe means breaking it completely for people still trying to cut down trees on WinXP, but you don't know that because you can't run those tests yourself, and grovelling through old logs shows nobody else has either since 2017 so it's probably no big deal.
Sometimes it's not clear which part is actually the cutting blade, and you spend a long time sharpening something else. (If you're really unlucky: the handle.)
Re: Fix your tools
#83The caveat is that you might end up shaving a yak. More often than not I end up three or four tasks deep while trying to fix a tiny issue. https://m.youtube.com/watch?v=_UZFI-8D5uA
I don't like that 'yak shaving' has degenerated into a synonym for boondoggle. Some explanations of yak shaving split it into a complex form of procrastination and also necessary annoyances - friction - obstacles. Sharpen your Tools often falls into the latter category, and it's always useful to question whether those 'necessary annoyances' are actually necessary. It is, like you say, not always necessary to tackle t…
What do you mean "degenerated"? The term was always a synonym for procrastination and slacking off. It's just that in some cases the procrastinator/slacker argued otherwise.
https://web.archive.org/web/20210112174206/http://projects.c...
Re: Fix your tools
#84OP here, thanks for submitting!
Re: Fix your tools
#85Re: Fix your tools
#86I write a bunch of my code on Linux with Clio and for the last several years that "tool" has gotten buggier abd buggier. Sometimes there's a similar issue with breakpoints not breaking.
But I just can't be bothered anymore. If something doesn't work out of the box it doesn't work and I simply move on and find another way around the issue. Life's too short to fix other people's code too.
Re: Fix your tools
#87Engineering is a continual lesson in axe-sharpening (if you have 6 hours to chop down a tree, spend the first 4 sharpening your axe). My favorite framing, from Kent Beck: “first make the change easy, then make the easy change.”
This approach is also what I'm still missing in agentic coding. It's even worse there because the AI can churn out code and never think "I've typed the same thing 5x now. This can't be right.". So they never make the change easy because every change is easy to them... until the lack of structure and re-use makes any further changes almost impossible.
The "make the change easy first" mindset requires understanding what already exists, which is fundamentally a compression/abstraction task. Current models are biased toward generation over refactoring because generating new code has a clearer reward signal than improving existing structure. Until that changes, the human still needs to be the one saying "stop, let's restructure this first."
Re: Fix your tools
#88Re: Fix your tools
#89Earlier quoted context omitted.
It's not about incentives; it's just bad management. As you said, the business just wants trees on trucks, so good management would realise that you need to spend some time sharpening axes to get trees on trucks quickly. It just seems to be something that a lot of software managers don't get. I don't think every company is like this though. E.g. Google and Amazon obviously have spent a mountain of time sharpening the…
There is some amount of time to spend on sharpening that, if you spend either more or less time sharpening, net amount of trees on trucks goes down. Smart businesses look for that amount. Really smart businesses know what the amount is, and make sure that they spend very close to that amount of time sharpening.
I think part of the problem is people get... I guess "speed blindness". When stuff is taking ages they just think that's how long it takes. They don't realise that they could be twice as fast if they spent some of their time fixing & improving their tooling.
Re: Fix your tools
#90Earlier quoted context omitted.
I don't like that 'yak shaving' has degenerated into a synonym for boondoggle. Some explanations of yak shaving split it into a complex form of procrastination and also necessary annoyances - friction - obstacles. Sharpen your Tools often falls into the latter category, and it's always useful to question whether those 'necessary annoyances' are actually necessary. It is, like you say, not always necessary to tackle t…
> I don't like that 'yak shaving' has degenerated into a synonym for boondoggle. What do you mean "degenerated"? The term was always a synonym for procrastination and slacking off. It's just that in some cases the procrastinator/slacker argued otherwise. https://web.archive.org/web/20210112174206/http://projects.c...
Yes, it's about procrastination, but not of the task at hand. You procrastinate in some older task that's really blocking what you need to do now.
It's chain procrastination. Oldest task blocks older task that blocks old task that blocks current task. It's evil because it overflows the task planning buffer. Also you get used to say nah when you start to think in a task in that general direction.
Maybe you should shave the fricking yak already. Or maybe you should use fake yak hair, idk.