Zgaszam się w 100%, tak samo jest w Tesli. Zespoły są bardzo małe, więcej osób robi u nas prostą aplikację bankową niż tam cały infotainment. Dla mnie to to może być brzydkie pod maską, tylko żeby się nie sypało i co najważniejsze nie miało TONY dziur. Oni świadomie łamią GPL na każdym komponencie którego używają i płacą za to konkretny hajs. Branża automotive jest specyficzna, Tesla zrobiła rewolucję jeśli chodzi o oprogramowanie ale to już jest ten moment kiedy powinni trochę zapanować nad tym bałaganem, wypychają za dużo tych samochodów, żeby sobie pozwolić na takie fuckupy. Nigdy nie winiłbym programistów, taka "kultura" organizacji i sposób zarządzania. W sumie to fajnie by było jakby ktoś zmienił Elona na górze albo przynajmniej przejął 95% obowiązków
Niestety obecna kultura całego kapitalizmu jest jaka jest i Tesla nigdy nie będzie mogła zwolnić tempa jeśli chce się utrzymać i pchać branże automoto do przodu.
Osobiście byłem świadkiem przepisywania 5 dużych systemów (Adserwer, CRM, CMS, web analitics), bo ich "kod jest tak straszny, że nie da się rozwijać". Wyceny przepisywania na 0,5 - 1 rok. Dwa z nich po roku - dwóch zostały jednak na starym kodzie i są rozwijane mimo, że się nie dało, a całe przepisywanie wylądowało w koszu.
Jeden nowy powstał po 3 letnich męczarniach i jest gorszy w rozwoju niż stary ale wcisnęli go, bo nie było jak się przyznać do błędu - w zasadzie rozwoju nie ma kompletnie.
Jeden powstał po 3 latach i jest w miarę ok - powiedziałbym, że tempo rozwoju to połowa/ćwierć wcześniejszego (75% czasu programistów zajmuje pisanie/zmienianie testów automatycznych), a błędogenność i tak finalnie podobna jak w starym kodzie, może odrobinę mniejsza.
Jeden jest super, ale był napisany od zera bez odtwarzania założeń i w zasadzie przez 2 osoby - jedna bebechy, druga front. No i jest w miarę prosty w użytkowaniu, więc łatwo było określić proste wymagania.
Jeśli piszesz oprogramowanie szybko i pod konkretne biznesowe potrzeby chwili, to później naprawdę ciężko to wszystko zebrać w logicznym czasie w jakikolwiek opis, żeby jakiś zespół był w stanie chociaż odtworzyć funkcjonalność. Zwykle kończy się to tak, że powstaje taki upośledzony podziurawiony klon, który w dniu wchodzenia na produkcję już wymaga łatania na szybko (bo pieniądze z biznesu ciekną przez te dziury) i po 6 miesiącach takiego łatania robi się z tego większy bałagan niż był wcześniej. Finalnie zespół, który pisał nową wersję ma już dość, zaczyna się rozpadać i przychodzą nowi ludzie, którzy mówią, że tego kodu nie da się rozwijać
Ja obecnie wszędzie, gdzie tylko mogę, staram się pracować z jednym full stack deweloperem na jeden system, a systemy dzielić na możliwie małe właśnie pod tym kontem.