(no title)
timhrothgar | 4 years ago
You make a good point though. Perhaps I just miss the good ol' days of working on small teams with small codebases that were pretty easily maintained.
timhrothgar | 4 years ago
You make a good point though. Perhaps I just miss the good ol' days of working on small teams with small codebases that were pretty easily maintained.
quanticle|4 years ago
peakaboo|4 years ago
99.99999% of software in big corporations will not have even 5% of the quality of the Linux kernel. The reason the kernel has such a high quality is because of Linux being a dictator, training everybody in not always so nice ways to write code that doesn't break anything and that is maintainable.
He cares about the code and he has the status and the mandate to prevent it from becoming shit.
timhrothgar|4 years ago
sllabres|4 years ago
My earliest kernel I have used in something one might call production are 1.2.12 around 1995. I must say even then, with this early kernels I had no panics at all and much higher uptimes (patching for security wasn't as much of an issue at that time ;-) )
com2kid|4 years ago
Because Google[1] and Facebook came along and scared everyone by iterating at a LOLWTF pace and companies in surrounding spaces looked at what was taking up time in their release schedules and the answer was "test passes" so they fired all their testers, and told devs to add unit tests but unit tests don't cut it.
Companies that used to have immaculate software quality had dedicated test automation engineers who had the job of abusing software in crazy bizarre ways. Then they hired armies of manual testers to go over anything that hadn't been automated.
Lots of problems existing with this system, one of which was career advancement for software engineers in test was limited because it is hard to get recognized for the two primary jobs of an SDET:
Signing off on code
Blocking a release on quality grounds
So you had a gradual rot of SDET and test orgs at companies, with pools of brilliance that slowly got drained as the best engineers got tired of being undervalued.
Start from that base, and then around ~2010 everything needs to start "moving fast".
Apple and MS both get rid of their test teams, and with two of the largest employers of dedicated software engineers in test getting out of the field, the entire field itself falls apart. Now it is career suicide, an ever shrinking career path that pays far less than doing "real" development work.
That leaves us at where we are today. Everything sucks and breaks all the time.
[1] Everyone forgets how bad the first 5 major versions of Android were.
mbrodersen|4 years ago
wrs|4 years ago
mbesto|4 years ago
Software entropy implies that software that doesn't change will always suffer entropy if the environment changes. In a vacuum, we would never need to change software once it was "feature complete". But that's not how the world works. Environments change and so that inevitably means software will corrode.
Candidly, I think you're just looking at the world through rose tinted glasses.
peakaboo|4 years ago
For big companies there is no incentive at all for a developer to personally care about and do battle over things like code quality and reduce complexity.
If they are use any kind of agile (lol) system, it will just be about polishing the turd so it doesn't break and add features in some way that doesn't require big rewrites.