@Flaaj owszem, nie twierdze że powody wynikają tylko z niedbałości i nieudolności.
Poniekąd o braku seniorów wspomniałem (duże zapotrzebowanie na software sprawia, że jakość usług średnio maleje - miałem na myśli właśnie niewystarczającą liczbę seniorów i pisanie kodu przez mniej doświadczonych devów).
Co nie zmienia faktu, że duża cześć sortu jest pisana niedbale. Bo czas programisty jest więcej warty, niż jakość. Bo w świecie clouda mamy teoretycznie nieograniczone skalowanie, a zasoby są relatywnie tanie.
Bo stosowane są języki i frameworki obarczone sporym narzutem i przez to mniej efektywne.
W końcu też dlatego, że duża cześć seniorów robi po godzinach własne fuchy. Żeby nie było, nie mam nic przeciwko. Ale takie zlecenia robi się szybko, często powielając te istniejące „niewydajne” schematy, bez zmóżdżania się nad wydajnością.
Ostatecznie cierpi użytkownik końcowy, który de facto i tak nie ma wyjścia, bo podobny trend jest niestety powszechny.
Jeszcze inny powód - brak znajomosci backendu. Miałem w pracy taki przypadek wiele lat temu. Zewnętrzna firma pisała oprogramowanie, które miało wykonywać specyficzne zadania na backendzie (harware, db, różne OSy, wirtualizacja itd.). Wizualnie było ładnie i działało szybko przy małej skali. Gdy skala wzrosła, program zaczynał dostawać czkawki. Czkawki wystarczającej by produkt nie był użyteczny do celów komercyjnych (rozwiązanie wymagające bardzo małych opóźnień). Wszystko wynikało właśnie z niewystarczającej znajomosci wszystkiego co pod spodem (we współpracy z tą zewnętrzną firmą analizowałem ich kod i algorytmy, było tam bardzo dużo… „oryginalnych”…. rozwiązań ).