Software Dev. is a Racket (yes, an “old guy” rant) : softwaredevelopment
- by admin
- Posted on November 5, 2021
I notice the amount of code and time to create small and medium-sized business software has been going noticeably up since the 1990’s, not down. It’s like Moore’s Law in reverse. CRUD principles haven’t changed that much, but stacks ignore YAGNI, DRY, and KISS and have made CRUD harder instead of easier. One spends too much development time on tech minutia and battling UI’s instead of domain logic itself.
I will agree there’s more choice now, but the cost of choice seems huge. Most apps don’t need all the what-if’s the bloaters brag about. I doubt most biz owners would want to pay 3x more for all those what-if’s. (Nor am I sure it’s an either-or choice.)
Warren Buffett noticed the same about finance: it’s a fad machine that processes suckers. He got rich by letting his competitors waste into fads. He’s not afraid to say “no” to industry peer pressure or Fear-Of-Being-Left-Behind 🕰️👹. The hucksters use the same techniques that trick 35% of the population into thinking the vaccine and election are rigged. Humans are suckers, and IT fad pushers know this.
The industry is pressured to sell books, new software versions, how-to videos, video ads, etc. Publishers of how-to content would lose their livelihood if new features or techniques were vetted in a more scientific way rather than “it’s what all the kool kids are doing!”. Here’s a partial list of resource-wasting fads:
-
Microservices are mostly a JSON-ized version of the XML-web-services-everywhere fad of the early 2000’s. It mostly failed for the same reasons Microservices often go sour. Microservices are a sub-fad of the “Netflixification” of our stacks. What works for a billion users (Netflix) is mega-overkill for 1,000 users. Bloating code with “Async/await” everywhere is also a symptom of this disease.
-
People started throwing out RDBMS for the “NoSql” movement in the early 2010’s, and when the systems matured, they realized they actually needed many features of traditional RDBMS after all. And RDBMS have since added more distributed features. (It was more about “DBA’s don’t let us move fast and brake things”, but when your biz matures, you do want to stop breaking things.)
-
Space-wasting UI’s optimized for fingers (mobile) instead of mouse. This results in more scrolling, paging, and more screens to get things done. It maybe okay for bedroom social media, but are crappy for in-office productivity where 90% still use mice. 🐭 Mice didn’t die, only productivity did. The web still can’t do real GUI’s for office work without bloated buggy JS libraries.
-
“Responsive design” turned the bicycle science of WYSIWYG into rocket science. Now you need to hire a dedicated UI expert to get decent UI’s. I’ve rarely seen a generalist master responsive. Most businesses I know only need about 10% of screens on mobile, so why drag down the other 90%? Because they were told real GUI’s are “obsolete”.
-
OOP was poorly understood yet was shoehorned into everything when it first came out because everyone feared being left off the OOP Train. It’s since been learned it’s not very good at domain modelling, which is where it was first pushed. Many companies were left with OOP spaghetti code. OOP has its place, but took a while to figure out where that is.
-
“Functional programming” keeps coming back in style every 25 years or so, looks great on paper, but fails on real teams. One problem is it’s harder to debug because it lacks intermediate “state” to x-ray via debuggers for clues.
Yes, I know there are exceptions, but in general these are what happened. [Edited.]
I notice the amount of code and time to create small and medium-sized business software has been going noticeably up since the 1990’s, not down. It’s like Moore’s Law in reverse. CRUD principles haven’t changed that much, but stacks ignore YAGNI, DRY, and KISS and have made CRUD harder instead of easier. One spends too…