> the worst case, you end up with brittle spaghetti 'abstractions' where the old-timers swear up and down that everything is perfectly sensible and necessary.
i had this at last place. all previous members of the original team were gone. it was myself and a part time dev (1/2 days per week).
writing new tests would take longer than writing a change - not because we were writing a significant amount of tests. because the “factory” spaghetti code god class used to create all tests was just a nightmare.
got to the point where i just focussed on manual QA. was faster for each change (small team helped there).
and rewriting from scratch on 20k existing LoC for that repo wasn’t gonna work as we just didn’t have the people or time.
basically — we didn’t have time to deal with the bullshit.
keep it stupid.
for the love of everything good and sacred in the world, please, i beg you, keep it stupid (addressing this generally, not at the parent).
it’s easier to get it right, quickly, when it’s done stupidly.
—
i now want to have a moan into the vast empty space of the interwebs:
the data/mental model for the whole thing was just wrong. split tables for things that had a 1:1 relationship. code scheduling for worker tasks spread across multiple services. multiple race conditions i had to redesign to fix.
oh and no correct documentation. what was there was either wrong or so high level that it was essentially useless.
and roll-your-own-auth.
apparently thus was all done under the clean code cargo cult. which tracks cos there were so many 10 line methods everywhere which meant jumping around constantly.