AI coding tools, managers' productivity, and tech debt 💡
Monday Ideas — Edition #131
🎯 Sleuth — alignment at all levels
When priorities change, here's a simple process every engineering leader should follow:
⚖️ Re-align — on goals and re-allocate resources as needed.
📣 Communicate — the change to the team, or the entire org.
🔍 Monitor — check if everyone is rowing towards the new direction.
This week I am happy to promote Sleuth, which makes this whole process easy.
Sleuth is a long-time partner of Refactoring, and it helps leaders align at all levels of management. Find out how 👇
1) 🤖 My favorite AI coding tools
I explored a lot of tools and workflows for coding with AI — so here are my recommendations.
As for which AI model to use, I consistently get the best results with Claude 3.5 (Sonnet). It is night and day vs GPT-4, and to me it seems still slightly better than OpenAI O1.
All the tools below (except Replit) allow you to plug your preferred model by inserting your own API key. That’s how I recommend using models, not to get locked-in by the native interfaces. I use TypingMind for regular chat for the same reason — it makes trying new models a breeze, and I keep all the context of previous chats:
🏆 Cursor — in my opinion, the current best IDE for AI. It is a fork of VS Code, has better support for chat, full context into the whole codebase (if you want it to), and it displays changes as diffs.
🥇 Zed — a refreshing take on AI and IDEs in general. It is written in Rust and is a super fast editor by itself, and the way it integrates AI is very interesting. You get more granular control on the context you give to the model, supports workflows, and the assistant panel feels like an extension of the editor itself.
🥈 Supermaven — falls more into the code completion category, but it does so with style, thanks to two superpowers: speed & context window. Autocompletions take ~250ms (!) and context window is 1M tokens, which is just ridiculously high (Claude has 200K), and should help with large codebases.
🥉 Aider — has a different take on coding with AI, because it is a CLI, and is open source. It applies changes directly to files, and even commits to git (with a sensible commit message!). I liked a lot of it.
🎖️ Replit Agent (honorable mention) — Replit, which I am a fan of, recently added this agent capability to their already excellent AI support. Since Replit is a full environment that includes hosting, the agent can do some unique things, like deploying apps or spawning db instances. Honestly it feels like magic and sets a new bar for dx. The drawback is that these benefits are 100% tied to the Replit environment, for the better or worse. If anything, this gives us a north star for what general purpose tools should become able to accomplish.
You can find the full article I wrote about AI and coding below 👇
2) 🤷♂️ Your manager feels more productive than you
In our industry survey earlier this year, we asked people how they would rate their personal productivity from 1 to 10, and the one of their team.
For various psychological reasons, broad questions like this always average around 7, so no big insight here — but an interesting result, which probably won’t help with managers’ reputation among engineers, is that the higher people raise through the ranks, the more productive they feel — to the detriment of the rest of their team.
While software engineers feel on average less productive than their team at large — making the case for widespread impostor syndrome — the same isn’t true for managers and Staff+ ICs, which generally feel significantly better about themselves than how they feel about their teams.
As we will see, factors reported as impacting personal productivity (negatively or positively) significantly differ based on people’s roles, which, combined with the above, points at a general disconnect between the needs of regular engineers and that of their higher-ups.
More insights below:
3) 📣 How to advocate for tech debt
The biggest struggle of engineering leaders around tech debt is usually not the absolute time you have to spend on it, but rather how to advocate for it with stakeholders.
About this, I believe the word tech debt itself is a bad framing for rework. It feels like you have to do it because of a duty (repay a debt) rather than a true business opportunity — as it is instead. So here is my advice:
Present a good ROI 📏
Measure both the bad (e.g. time spent regularly on maintenance, frustration, latency, …) and the good (e.g. product improvements enabled by the rework).
Do your homework and treat it like a product initiative.
Create success stories 🏆
Big reworks are always daunting, no matter how good your story is. To create enough momentum to go after them, create a solid track record of small-scale debt that has been successfully repaid, with proven outcomes.
Whenever you do some small rework, don’t stop there, measure the outcome and make it visible. In other words, build trust 👇
Build trust ❤️
No matter how good you are, tech debt items will always be at a disadvantage when pit against regular product features.
That’s because features have immediate impact — e.g. increasing the conversion rate at checkout — while refactoring has a delayed feedback loop that is measured in efficiency, velocity, and all kinds of second-order effects.
It's not a level playing field, so trust plays a decisive role. Many times, the #1 element that enables repaying debt is strong relationships between stakeholders, as opposed to precise KPIs.
This trust, however, is earned. You earn it over time by being rigorous and by creating a good track record. These, in turn, give you room to go after bigger and bigger things.
More ideas in our majestic guide on technical debt:
And that’s it for today! If you are finding this newsletter valuable, consider doing any of these:
1) 🔒 Subscribe to the full version — if you aren’t already, consider becoming a paid subscriber. 1500+ engineers and managers have joined already! Learn more about the benefits of the paid plan here.
2) 🍻 Read with your friends — Refactoring lives thanks to word of mouth. Share the article with your with someone who would like it, and get a free membership through the new referral program.
I wish you a great week! ☀️
Luca