Als naiver Laie auf dem Gebiet erzeugt das bei mir den Eindruck, dass die zugehörigen Prozesse und deren Management nicht durchdacht genug und/oder nicht mit ausreichend Ressourcen versehen sind.
Fehler passieren in der Softwareentwicklung ständig, das ist jedem bekannt und wird in der Branche als gegeben hingenommen. Es gibt nur einen Weg, die Fehler im Endprodukt zu minimieren: Kluges Management im Projekt. Die Methoden sind vielfältig und müssen zum Produkt, den Ressourcen und natürlich zur Unternehmenskultur passen. Das fängt beim Teambuilding an und endet beim automatisierten Testing. Manche definieren auch zuerst die Tests und entwickeln dann. Viele Wege führen zum Ziel.
Ich habe gelegentlich am Rande mit den teils ausgefuchsten Entwicklungsprozessen größerer Softwarehäuser zu tun. Es gibt da natürlich Projekte, die schlecht laufen, aber es gibt eben auch Projekte, wo es darauf ankommt. Wichtiger Kunde oder hohe Sicherheitsanforderungen wie z.B. Wehrbereich, Versicherungen, Banken, öffentliche Verwaltung. Und da enthält das Endprodukt oft unvorstellbar wenige Fehler.
Ich halte mich beim Bashing oft zurück, aber was Apple da nach einem ganzen Jahr Entwicklerzeit, oft marginalen Änderungen und beliebigen Ressourcen an Fehlern raushaut, ist für mich zwar zu verstehen, aber kaum zu tolerieren.
Was ich sagen will: Wenn man will, bekommt man den Prozess definitiv in den Griff. Was braucht man dafür? Kompetenz, Ressourcen, Zeit und das Ziel, es wirklich perfekt hinzubekommen.
Ich glaube (!), dass Apple zwar praktisch beliebige Ressourcen hat, diese aber in einer Unternehmenskultur arbeiten, in der Werte wie Kreativität und freie Entfaltung wichtig sind (ich vermute, nur an der Oberfläche, aber das ist ein anderes Thema). So wird Softwareentwicklung nicht professionell genug, sondern als eine Art "Hacking" betrieben. Marcel Bresink berichtete hier schon zuvor von Ego-Sprints, um Komponenten für macOS zu entwickeln. Das geht gar nicht. Solche Prozesse machen das fragile Gefüge eines Betriebssystems kaputt. Zudem stören sie die Teamarbeit. Letzlich zeugen sie von völliger Ignoranz, nein Inkompetenz in Bezug auf moderne und etablierte Verfahren zur Qualitätssicherung in der Softwareentwicklung.
Konkretes Beispiel: Solche UI-Bugs wie im Festplattendienstprogramm (das Passwort wird im Klartext ausgegeben) oder die kaputte Quertastatur bei iOS können durch zeitgemäße Testverfahren sehr leicht gefunden werden. Sie fallen bereits frühzeitig in der Entwicklung dieser einen Komponente auf und werden praktisch im Keim erstickt. Solche defekten Komponenten werden erst gar nicht integriert. Wie kann es so möglich sein, dass sie ihren Weg in eine finale Version finden? Für mich ist das unvorstellbar. Dies ist nur durch völlig unzeitgemäße oder nicht vorhandene Entwicklungsprozesse zu erklären.
Falls die aktuelle Managergeneration noch wirklich in den Prozessen etwas zu sagen hat, könnte die Erklärung sein, dass diese Leute einfach aus der falschen Generation stammen. Sie haben in den 80er das Coden gelernt und so arbeiten sie noch heute. Hier muss ein Generationswechsel stattfinden, damit die Entwicklung in die richtigen Bahnen gelenkt wird. Das wird nicht einfach, aber es wäre sehr wichtig.
Als alternative Erklärung fiele mir nur ein, dass Apple den Weg wählt, unfertige Software absichtlich zu releasen. Das ist ein Trend, den es definitiv gibt, aber ich weigere mich, zu glauben, dass sie dies mit dem Anspruch an Qualität, den Apple hat sowie Millionen von wartenden Endkunden sowie der geifernden Presselandschaft wirklich ins Auge fassen.