4 ms·
Never underestimate what sorts of systems are possible to create and force to continue running by current organization management practices. I personally worke
by otakucode 11y ago
Never underestimate what sorts of systems are possible to create and force to continue running by current organization management practices. I personally worked on an extremely (and unnecessarily) large system that had no documentation. When I started, and asked for something that at least explained what the different end executables did, I found that no such document existed. When looking at a problem report which said "system X has problem Y", finding out what code was responsible for system X required talking to large numbers of different team members until you could find someone who knew where system X lived.
This system survived because no one in management could bear to pull the bandaid on doing significant rewrites and instead preferred to pay much larger amounts spread over longer time periods to continue accumulating technical debt. It basically made it take 6 months to a year before a new hire could be useful, but once someone was familiar with some corner of the system they mostly just stayed there. Keep in mind that most software engineers don't approach their job with passion. Most of the people I worked with didn't even want to touch a computer when they got home. They didn't spend their weekends contributing to open source projects, or keeping up with the latest techniques. They kept their head down and collected their paycheck. That is what the majority of companies actually want, and it's what they get.
That system has since (after a billion-dollar-plus contract to create a replacement system) moved to a 'devops' atmosphere. No automated testing or continuous integration, no, that would threaten the large test team. DevOps to them means what I suspect it means at many non-startup places. It means developers developing on the production environment. It means 10x as many problems cropping up, but management is thrilled because problems are fixed in hours instead of weeks. Development no longer consists of understanding anything, or designing anything, it's just an endless series of adrenaline fueled hasty patches while everyone keeps their fingers crossed that the data doesn't get so corrupted that everything grinds to a halt.