News for hackers. Stuff that matters.
Re:Feature Flags: Theory vs. Reality by marcosdumay on Monday July 10, 2023 @02:11PM (#36670538)
> getting a team to prioritise cleanup is difficult

This is the limitation that breaks every development practice people come up with.

That idea of formalizing the cleanup and requiring it for deployment is very interesting. It may be possible to extend it to other contexts.

[dead]
Re:Feature Flags: Theory vs. Reality by marcosdumay on Monday July 10, 2023 @07:36PM (#36674543)
> products only last 3-4 years before a replacement gets made

Is that your experience?

I imagine it can be a kind of self fulfilling prophecy, but even then I can't imagine people replacing everything each 4 years. And if that's not your experience, then the point is moot.

Re:Feature Flags: Theory vs. Reality by 6D794163636F756 on Monday July 10, 2023 @08:02PM (#36674799)
That's how long it takes before the person who signed off on it has moved to another job and made the product someone else's problem. At that point the new person will usually kick off a new project because the old one is bad and releasing a new product is better for their chances of promotion
Re:Feature Flags: Theory vs. Reality by IggleSniggle on Tuesday July 11, 2023 @09:07AM (#36680439)
I worked at a software shop with very high retention rates (like, 30 years, 10 years on average), and the inverse can also be an issue, "I own this product and it's my problem not yours." Having seen both situations, I personally believe that it can also be that a new project comes to exist simply because the old one is too complicated to understand; some things you need to work through in order to get. Someone here on HN said recently, "people forget that the primary job of the software engineer is as a learning agent for the org" or similar, and the more I see, the more I believe it. I used to think it was all about efficient automation, but I'm not so sure anymore.
Re:Feature Flags: Theory vs. Reality by q7xvh97o2pDhNrh on Monday July 10, 2023 @08:43PM (#36675086)
> I've at times been told that tech debt is fine because products only last 3-4 years before a replacement gets made.

Translating from corp-speak, whoever said that probably meant: "I plan to get promoted before we need to pay this tech debt down."

Re:Feature Flags: Theory vs. Reality by IggleSniggle on Tuesday July 11, 2023 @09:01AM (#36680373)
You also see this corp-speak from devs, although usually in the form of "I plan to get hired somewhere else before we need to pay this tech debt down."
Re:Feature Flags: Theory vs. Reality by rewmie on Tuesday July 11, 2023 @02:15AM (#36677031)
> I've at times been told that tech debt is fine because products only last 3-4 years before a replacement gets made.

Here am I, sipping on my coffee and catching up on HN while waiting for my 10+ year project to finish building.

Building what? A feature flag, of all things.

Re:Feature Flags: Theory vs. Reality by VincentEvans on Monday July 10, 2023 @10:43PM (#36675829)
Shops could have people dedicated to such tasks rather than the usual feature work. Same as we now have devops teams, or even devex teams. For example I actually enjoy refactoring, cleaning up, and tending the garden. And I am sure I am not the only one - but the pressure is always to deliver features, so housekeeping is rarely done.
Re:Feature Flags: Theory vs. Reality by victorNicollet on Tuesday July 11, 2023 @06:56AM (#36679197)
It's a matter of dev team culture: always leave the code cleaner than you found it. Hire people who understand this, and remind each other through reviews.

As for external pressure from shareholders to skip cleanup: it's better to not describe cleanup as a separate step, but as just another part of feature implementation. It is a fact of software development that work on a feature must be done both before and after that feature is first available in production (whether it's to ensure that all is fine with a finger on the rollback button, to set up relevant production monitoring, or to clean up any scaffolding that was required for the release), and it is possible to have features that are available in production but are not yet _done_. Finishing the work is not optional.