|
downout posted:Contact them on your employers time since this is their fault. Well obviously. Much like you should always poo poo on company time for the way they poo poo on you.
|
# ? Jun 28, 2023 16:24 |
|
|
# ? May 10, 2024 00:46 |
|
Anyone have any good resources on how to think about the decision of rewriting a legacy code base? I have an engineer moving to a new codebase and reacting with "this is all poo poo, let's start over". Of course he's right, it is poo poo, but so will be whatever he replaces it with I'm sure. I've read some articles or heard discussions on podcasts or YT or whatever about this, but can't find them now. E.g. about taking into account the contexts of how the codebase originally evolved, especially if the original authors are no longer around, realizing that a rewrite will also face challenges, perhaps even the same ones, and also under time constraints so probably will also take less-than-optimal long-term design choices. I also remember seeing a study that an unfamiliar code base will always be rated as having a ton more technical debt than a familiar one even if they are similar quality (as difficult as that is to quantify). I'm open to what this engineer wants to do but I'd like to push them to think a little deeper on some of these issues. Any suggestions?
|
# ? Jun 28, 2023 17:34 |
|
The great rewrite in the sky is never as effective as you want it to be, but every once in a long while it's still worth it. Things to keep in mind:
|
# ? Jun 28, 2023 17:43 |
|
Bongo Bill posted:
|
# ? Jun 28, 2023 17:52 |
|
America Inc. posted:I just got hired for a new senior frontend job in April but I would like a raise. In 3 months there will be a performance review and a bonus, but I want a raise in salary too if possible. What can I do to make that happen? At most companies, the things necessary to get a raise are at best sort of vaguely adjacent to doing your job well. They don't necessarily detract from doing a good job, but don't fall into the common trap of trying to be really good at your job and expecting your employer to reward you with money. If your manager is good they'll come up with a plan to get you a raise, but don't be surprised if this plan is long and tedious and ultimately less efficient than just getting a new job.
|
# ? Jun 28, 2023 17:53 |
|
Love Stole the Day posted:Sorry mate, Product won't agree to retire the old features because it'd be too much revenue loss, and so now we're stuck 10 years later with an old component that nobody understands or knows how to maintain. Customer won't upgrade their integrations to the new APIs. If you're not able to cut features, a rewrite from scratch cannot succeed.
|
# ? Jun 28, 2023 17:58 |
|
SurgicalOntologist posted:Anyone have any good resources on how to think about the decision of rewriting a legacy code base? I have an engineer moving to a new codebase and reacting with "this is all poo poo, let's start over". Of course he's right, it is poo poo, but so will be whatever he replaces it with I'm sure. I've read some articles or heard discussions on podcasts or YT or whatever about this, but can't find them now. E.g. about taking into account the contexts of how the codebase originally evolved, especially if the original authors are no longer around, realizing that a rewrite will also face challenges, perhaps even the same ones, and also under time constraints so probably will also take less-than-optimal long-term design choices. I also remember seeing a study that an unfamiliar code base will always be rated as having a ton more technical debt than a familiar one even if they are similar quality (as difficult as that is to quantify). I like Working Effectively with Legacy Code, one of my teams just did a book club reading of it. Basically evolve don't rewrite, and only with a full test suite, to ensure the functionality isn't broken. Oh and here's how you add tests to legacy code that never had them without breaking the whole drat thing.
|
# ? Jun 28, 2023 18:04 |
|
Falcon2001 posted:Best way to get a raise in a year is probably to job hop to a higher paid position. Is the pay untenable or do you just want more? Money is tight for me this summer but things will clear up. I'd like more money so I can build up savings.
|
# ? Jun 28, 2023 18:25 |
|
America Inc. posted:Money is tight for me this summer but things will clear up. I'd like more money so I can build up savings. I too would like more money so I can have more money.
|
# ? Jun 28, 2023 18:27 |
|
raminasi posted:If your manager is good they'll come up with a plan to get you a raise, but don't be surprised if this plan is long and tedious and ultimately less efficient than just getting a new job. the one time this has worked out for me it was because I was working on the building facilities team, HR had ordered new office furniture, and my boss took it hostage for 8 months.
|
# ? Jun 28, 2023 18:34 |
|
I hate rewriting code. I mean, I love it, but I also know I shouldn’t do it. I look at it like this. There’s either one of two possibilities: - The original programmer is doing the rewrite, in which case they’ll fall prey to the second system effect. - The original programmer is not doing the rewrite, in which case they probably don’t know why the code got so bad in the first place, and why it’s so hairy, and what problems they’re going to encounter. The old Joel Spolsky essay is a classic on this topic . https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ quote:Well,” they say, “look at this function. It is two pages long! None of this stuff belongs in there! I don’t know what half of these API calls are for.” There’s something to be said for rewriting software if a lot the code would just not necessary with a more modern library or framework. But even then I’d still rather move the code into a black box than start fresh.
|
# ? Jun 28, 2023 18:46 |
|
I wonder if anyone has tried just rewinding the git history to when the code went to poo poo and rewriting from there?
|
# ? Jun 28, 2023 18:49 |
|
lifg posted:I hate rewriting code. I mean, I love it, but I also know I shouldn’t do it. I think that was exactly the article I was thinking of, thanks! Edit: one of them at least SurgicalOntologist fucked around with this message at 19:00 on Jun 28, 2023 |
# ? Jun 28, 2023 18:54 |
|
SurgicalOntologist posted:Anyone have any good resources on how to think about the decision of rewriting a legacy code base? I have an engineer moving to a new codebase and reacting with "this is all poo poo, let's start over". Of course he's right, it is poo poo, but so will be whatever he replaces it with I'm sure. I've read some articles or heard discussions on podcasts or YT or whatever about this, but can't find them now. E.g. about taking into account the contexts of how the codebase originally evolved, especially if the original authors are no longer around, realizing that a rewrite will also face challenges, perhaps even the same ones, and also under time constraints so probably will also take less-than-optimal long-term design choices. I also remember seeing a study that an unfamiliar code base will always be rated as having a ton more technical debt than a familiar one even if they are similar quality (as difficult as that is to quantify). If that doesn't work, putting them on one of our 6 hour long "deep dive" webinars that we do every few months will usually convince them that a rewrite is gonna be 1000x more work than they thought it be. We did once have a senior developer who decided that any new development was throwing good money after bad and dedicated his time to arguing with the CTO and spreading fud about the software's future to the COO and CEO. I regret not firing him sooner. I always want to refactor some of the hairier parts of the codebase, but getting buy-in for that is always difficult and usually seems less appealing to the let's-rewrite-everything types.
|
# ? Jun 28, 2023 19:30 |
|
smackfu posted:I wonder if anyone has tried just rewinding the git history to when the code went to poo poo and rewriting from there? Git... History? Is that like when I make a copy paste of the folder with the app every month?
|
# ? Jun 28, 2023 20:30 |
|
A thing I heard was something along the lines of if you have a poo poo codebase and it's preventing you from iterating and adding new features and you don't rewrite, eventually a competitor will rewrite it themselves and steal your customers. They gave the example of some salon management tool that everyone in the industry used but hated that got absolutely bodied by a competitor who offered more or less the same thing but not poo poo.
|
# ? Jun 28, 2023 20:47 |
|
prom candy posted:A thing I heard was something along the lines of if you have a poo poo codebase and it's preventing you from iterating and adding new features and you don't rewrite, eventually a competitor will rewrite it themselves and steal your customers. They gave the example of some salon management tool that everyone in the industry used but hated that got absolutely bodied by a competitor who offered more or less the same thing but not poo poo. That's just every niche industry software though.
|
# ? Jun 28, 2023 20:49 |
|
prom candy posted:A thing I heard was something along the lines of if you have a poo poo codebase and it's preventing you from iterating and adding new features and you don't rewrite, eventually a competitor will rewrite it themselves and steal your customers.
|
# ? Jun 28, 2023 20:56 |
|
“The same thing I already use but not poo poo” is the kind of killer feature customers will crawl over broken glass to get. (Un)fortunately it’s impossible to pull off because all software is poo poo.
|
# ? Jun 28, 2023 21:03 |
|
smackfu posted:I wonder if anyone has tried just rewinding the git history to when the code went to poo poo and rewriting from there? they tried but Ada Lovelace had never checked anything in to the repo
|
# ? Jun 28, 2023 21:08 |
|
smackfu posted:I wonder if anyone has tried just rewinding the git history to when the code went to poo poo and rewriting from there? I have done this with unmaintained third-party things. In one case the developer tried to do things which would have made it a lot better but burned out on the project while it was in a rough state and we didn't want to take on the task of trying to finish that work. In another it was an already-dead project that we expected to mostly rewrite but thought would be an easier starting point than starting from scratch. All of the functionality we cared about was added fairly early on so we started from a version from before it scope-crept to do a bunch of other things.
|
# ? Jun 28, 2023 21:16 |
|
shame on an IGA posted:they tried but Ada Lovelace had never checked anything in to the repo Well, she did make a pull request: https://twitter.com/ninabegus/status/1574434557973012480
|
# ? Jun 28, 2023 21:18 |
|
i had a long rant but gently caress react
|
# ? Jun 28, 2023 22:05 |
|
Was it a whole megabyte before compression?
|
# ? Jun 28, 2023 22:16 |
|
JavaScript code:
|
# ? Jun 28, 2023 22:28 |
|
ThePopeOfFun posted:i had a long rant but gently caress react I love that all programming is slowly becoming web development
|
# ? Jun 28, 2023 22:38 |
|
lmao. Just growing pains. I’m very new, and while learning eventing, states, useEffects, components, etc. I feel insane knowing I could whip up the same thing in a fraction of the time. Of course it wouldn’t be reusable or scale, but ya know.
|
# ? Jun 28, 2023 22:38 |
|
Ah, you want to build software? Well we call them apps now first of all, but secondly, would you like to use Node.js, or React.js?
|
# ? Jun 28, 2023 22:41 |
|
The backend needs to be highly scalable and also Python
|
# ? Jun 28, 2023 22:47 |
|
prom candy posted:A thing I heard was something along the lines of if you have a poo poo codebase and it's preventing you from iterating and adding new features and you don't rewrite, eventually a competitor will rewrite it themselves and steal your customers. They gave the example of some salon management tool that everyone in the industry used but hated that got absolutely bodied by a competitor who offered more or less the same thing but not poo poo. I believe that a company who made the industry leading product isn’t capable of making a better, nimbler version. It goes beyond a need to rewrite code. It’s institutional. They can’t even look at a simple user requirement without turning it into an enterprise-level misunderstanding.
|
# ? Jun 28, 2023 23:09 |
|
prom candy posted:A thing I heard was something along the lines of if you have a poo poo codebase and it's preventing you from iterating and adding new features and you don't rewrite, eventually a competitor will rewrite it themselves and steal your customers. They gave the example of some salon management tool that everyone in the industry used but hated that got absolutely bodied by a competitor who offered more or less the same thing but not poo poo. The last place I worked at had a 30+ yr codebase of lasagna layers of C and C++ and adding new features often required working around tech debt. The pace of development was glacial. Despite that, they're still the industry leader with a lot of buy-in from big companies and healthy profit margin. So I don't think that's true, it's more about the product itself than the code.
|
# ? Jun 28, 2023 23:24 |
|
SurgicalOntologist posted:Anyone have any good resources on how to think about the decision of rewriting a legacy code base? I have an engineer moving to a new codebase and reacting with "this is all poo poo, let's start over". Of course he's right, it is poo poo, but so will be whatever he replaces it with I'm sure. I've read some articles or heard discussions on podcasts or YT or whatever about this, but can't find them now. E.g. about taking into account the contexts of how the codebase originally evolved, especially if the original authors are no longer around, realizing that a rewrite will also face challenges, perhaps even the same ones, and also under time constraints so probably will also take less-than-optimal long-term design choices. I also remember seeing a study that an unfamiliar code base will always be rated as having a ton more technical debt than a familiar one even if they are similar quality (as difficult as that is to quantify). https://www.amazon.com/Kill-Fire-Manage-Computer-Systems/dp/1718501188 This book is basically a very detailed discussion of that specific topic; I can't recommend it enough for what you're asking. It specifically does a good job of talking about the risks people underestimate with greenfield solutions.
|
# ? Jun 29, 2023 02:56 |
|
Turambar posted:Well, she did make a pull request: I honestly just want to print this out, crumple it up, and throw it at relevant parties.
|
# ? Jun 29, 2023 05:50 |
|
cum jabbar posted:The backend needs to be highly scalable and also Python you're losing out on the incredible benefits of isomorphic js
|
# ? Jun 29, 2023 06:06 |
|
Bongo Bill posted:Don't attempt feature parity with the old version. You are building a new product for the same market, so you still want to just target "minimum viable" Feature parity is by definition the minimum viable for any rewrite (for most stakeholders). I agree with you, but lol. thotsky fucked around with this message at 10:48 on Jun 29, 2023 |
# ? Jun 29, 2023 10:44 |
|
lifg posted:I believe that a company who made the industry leading product isn’t capable of making a better, nimbler version. It goes beyond a need to rewrite code. It’s institutional. They can’t even look at a simple user requirement without turning it into an enterprise-level misunderstanding. Can't even make a six panel cartoon of a fake user using a fake product without shoving in ten extra things each with a redundant conversation about what this person is trying to do.
|
# ? Jun 29, 2023 10:59 |
|
redleader posted:you're losing out on the incredible benefits of isomorphic js My favorite part of isomorphic js is that you have to run your interpreted JavaScript code through a build step so it can run in both places.
|
# ? Jun 29, 2023 13:00 |
|
thotsky posted:Feature parity is by definition the minimum viable for any rewrite (for most stakeholders). That’s if it’s a rewrite, and not a replacement. If the reality is that what stakeholders want can be achieved with a significantly streamlined or simplified product, that would not be feature parity, but it would be minimum viable. I think a shitload of products could be replaced by something simpler and streamlined. But I also think few benefit from a rewrite instead of smaller refactors or, better yet, revised architecture and product design.
|
# ? Jun 29, 2023 13:36 |
|
Pollyanna posted:That’s if it’s a rewrite, and not a replacement. If the reality is that what stakeholders want can be achieved with a significantly streamlined or simplified product, that would not be feature parity, but it would be minimum viable. One of my favorite things about doing webapps is rewriting code for a specific URL. Leave the other legacy poo poo in place and make just one slow or heavily used thing fast and reliable (unless it's the database that's choking lol)
|
# ? Jun 29, 2023 14:18 |
|
|
# ? May 10, 2024 00:46 |
|
This guy at work just unironically added me to four slack channels that haven't seen use since April at the latest, and then left two of them because "I am doing some clean up in my Slack channel chaos." Two can play that game motherfucker
|
# ? Jun 29, 2023 16:22 |