Bei der Implementierung von Projekten stehen Teams hĂ€ufig vor der Frage: Worauf sollte mehr geachtet werden - auf die Veröffentlichung neuer Funktionen oder auf die Verbesserung der CodequalitĂ€t? In der Regel entscheiden sich Manager fĂŒr Funktionen. Oft sind Entwickler mit diesem Zustand unzufrieden und glauben, dass sie nicht genug Zeit haben, um an der Architektur und QualitĂ€t des Codes zu arbeiten.
Das Gesetz von Betterridge besagt: "Jede Ăberschrift, die mit einem Fragezeichen endet, kann mit dem Wort" Nein "beantwortet werden." Diejenigen, die mich persönlich kennen, wissen, dass ich diesen Gedanken nicht teile. Aber in diesem Artikel möchte ich noch weiter gehen und beweisen, dass es einfach keinen Sinn macht, die Frage aus dem Titel dieses Artikels zu stellen. Eine solche Formulierung der Frage legt nahe, dass es einen Kompromiss zwischen Kosten und QualitĂ€t gibt. Und Sie mĂŒssen stĂ€ndig das Gleichgewicht halten. In diesem Artikel werde ich beweisen, dass dieser Kompromiss nicht auf die Welt der Entwicklung von Computersystemen anwendbar ist und dass die Erstellung hochwertiger Software letztendlich billiger ist.
Trotz der Tatsache, dass die Hauptzielgruppe des Artikels Entwickler sind, sind keine besonderen Kenntnisse erforderlich, um ihn zu verstehen. Ich möchte, dass dieser Artikel allen zugute kommt, die in irgendeiner Weise mit dem Entwicklungsprozess verbunden sind, insbesondere den Managern, die den Produktentwicklungsvektor bilden.
Wir sind es gewohnt, zwischen Preis und QualitÀt zu wÀhlen.
Wie ich bereits geschrieben habe, muss man bei der Entwicklung von Software stĂ€ndig zwischen der QualitĂ€t des Produkts und den Kosten seiner Entwicklung wĂ€hlen. Wenn Sie ein neues Smartphone kaufen, haben Sie die Wahl. Zahlen Sie mehr Geld und erhalten Sie einen schnelleren Prozessor, mehr Speicher und einen verbesserten Bildschirm oder zahlen Sie weniger, aber opfern Sie einige Funktionen. Es gibt Ausnahmen von dieser Regel: Manchmal ist ein Produkt mit höherer QualitĂ€t billiger. Und manchmal können Menschen zwei Produkte nicht einmal objektiv vergleichen und ein besseres auswĂ€hlen. Zum Beispiel bemerken sie nicht den Unterschied zwischen Bildschirmen, die mit völlig unterschiedlichen Technologien hergestellt werden. Die Aussage âHohe QualitĂ€t ist teurerâ trifft jedoch in der Regel zu.
Bei der SoftwarequalitÀt geht es um viel.
Wenn Sie ĂŒber SoftwarequalitĂ€t sprechen, sollten Sie zunĂ€chst QualitĂ€tskriterien definieren. Was ist QualitĂ€tssoftware? Von diesem Moment an werden die Dinge etwas komplizierter, da jedes Computersystem viele Kriterien hat, anhand derer seine QualitĂ€t bewertet werden kann. Sie können UI und UX bewerten: Wie schnell und einfach kann ein Benutzer sein Problem lösen? Die ZuverlĂ€ssigkeit kann beurteilt werden: Gibt es Fehler im Programm, die zu falschem und instabilem Verhalten fĂŒhren? Ein weiteres Kriterium ist die Architektur: Wie strukturiert ist der Quellcode des Programms, wie einfach und schnell kann der Programmierer den Code finden, den er gerade benötigt?
Die obige Liste der QualitĂ€tskriterien ist natĂŒrlich nicht vollstĂ€ndig. Diese Kriterien reichen jedoch aus, um eine wichtige Sache aufzuzeigen. Einige Kriterien, anhand derer die QualitĂ€t eines Programms normalerweise bewertet wird, sind fĂŒr Endbenutzer nicht einmal sichtbar. Kunden können Feedback geben und feststellen, wie gut die Software ihre geschĂ€ftlichen Probleme löst. Benutzer können sich ĂŒber die unbequeme OberflĂ€che beschweren. Oder sie beschweren sich ĂŒber Fehler, insbesondere wenn sie zu Datenverlust oder lĂ€ngerer NichtverfĂŒgbarkeit des Systems fĂŒhren. Benutzer können die Architektur und QualitĂ€t des Codes jedoch nicht einschĂ€tzen.
Daher teile ich die QualitÀtskriterien in zwei Kategorien ein:
extern (z. B. UI / UX oder Vorhandensein von Fehlern) und
intern (Architektur). Ihr wichtigster Unterschied besteht darin, dass Benutzer die externe QualitÀt bewerten können, aber nicht verstehen können, wie gut (oder schlecht) die interne Architektur des Systems ist.
Auf den ersten Blick spielt die interne QualitĂ€t fĂŒr die Benutzer keine Rolle (sondern nur auf den ersten Blick).
Wenn Benutzer die interne QualitĂ€t der Software nicht bewerten können, ist dieses Kriterium wichtig? Stellen wir uns eine hypothetische Situation vor, in der zwei Entwicklungsteams unabhĂ€ngig voneinander beschlossen, eine Anwendung zur Verfolgung und Vorhersage von FlugverspĂ€tungen zu erstellen. Ich leite ein Team und Rebecca fĂŒhrt das zweite. Die Grundfunktionen fĂŒr die Anwendungen sind ungefĂ€hr gleich. Die BenutzeroberflĂ€che fĂŒr beide Anwendungen hat sich ebenfalls als sehr praktisch und durchdacht herausgestellt. Es gibt keine kritischen Fehler in den Anwendungen. Der einzige Unterschied besteht darin, dass der Quellcode der Anwendung von Rebecca klar strukturiert und organisiert ist und der von meinem Team erstellte Code eine unordentliche Reihe von Klassen und Methoden mit undurchsichtigen Namen und einer noch undurchsichtigeren Logik fĂŒr die Verbindung dieses Codes ist. Es gibt noch einen weiteren Unterschied: Ich verkaufe meine Bewerbung fĂŒr 6 US-Dollar und Rebecca verkauft fast dieselbe Bewerbung fĂŒr 10 US-Dollar.
Da der Quellcode von Anwendungen fĂŒr Benutzer nicht zugĂ€nglich ist und die QualitĂ€t des Codes keinen Einfluss auf die Benutzererfahrung hat, warum sollten Benutzer zusĂ€tzliche 4 US-Dollar zahlen? Mit anderen Worten - warum fĂŒr interne QualitĂ€t zu viel bezahlen, was fĂŒr Benutzer nicht wichtig ist?
Wenn Sie diese Idee weiterentwickeln, können Sie zu dem Schluss kommen, dass Investitionen in externe QualitĂ€t rentabler sind als in interne. Wenn der Benutzer zwischen zwei Anwendungen wĂ€hlt, kann er diejenige auswĂ€hlen, die teurer ist, wenn er eine bessere und bequemere BenutzeroberflĂ€che hat. Benutzer sehen jedoch nicht die interne Struktur der Anwendungen, ganz zu schweigen von der Tatsache, dass der Benutzer die Architektur der beiden Anwendungen vergleichen kann. Warum also mehr fĂŒr etwas bezahlen, das keine praktischen Vorteile bringt? Und warum sollten Entwickler Zeit und Ressourcen investieren, um die interne QualitĂ€t ihrer Programme zu verbessern?
Programme mit hoher interner QualitÀt lassen sich leichter erweitern
Warum ist es fĂŒr Programmierer so wichtig, QualitĂ€tscode zu haben? Programmierer verbringen die meiste Zeit damit, es zu lesen und zu bearbeiten. Selbst bei der Entwicklung eines neuen Systems wird fast immer im Kontext von bereits geschriebenem Code gearbeitet. Wenn ein Programmierer eine neue Funktion hinzufĂŒgt, muss er zunĂ€chst herausfinden, wie diese Funktion in die vorhandene Anwendungsarchitektur passt. Dann mĂŒssen Sie hĂ€ufig Ănderungen an der Architektur vornehmen, damit eine neue Funktion implementiert werden kann. Oft mĂŒssen Sie Datenstrukturen verwenden, die sich bereits im System befinden. Daher mĂŒssen Sie verstehen, dass diese Datenstrukturen bedeuten, welche Art von Beziehungen zwischen ihnen bestehen und welche neuen Datenstrukturen hinzugefĂŒgt werden mĂŒssen, um Funktionen zu implementieren.
Dank des hochwertigen Codes können Programmierer schnell darin navigieren. Es ist eigentlich sehr einfach, eine Situation zu erreichen, in der der Code schwer zu verstehen ist. Logische Bedingungen können miteinander verflochten sein, Beziehungen zwischen Datenstrukturen können komplex und implizit sein. Die Namen, die Tony vor 6 Monaten Variablen und Funktionen gegeben hat, waren ihm vielleicht klar, aber auch fĂŒr den neuen Entwickler unverstĂ€ndlich, sowie die Motive, die Tony dazu veranlassten, das Unternehmen zu verlassen. Entwickler nennen dies normalerweise
âtechnische Schuldenâ (
technische Schulden ) oder mit anderen Worten den Unterschied zwischen dem aktuellen Status des Codes und dem idealen Status, in dem er sich befinden kann.
Einer der Hauptvorteile der hohen CodequalitĂ€t besteht darin, dass der Programmierer schnell verstehen kann, wie das System funktioniert, und die erforderlichen Ănderungen vornehmen kann. Wenn die Anwendung in Module unterteilt ist, muss der Programmierer nicht alle 500.000 Zeilen Quellcode studieren und kann schnell die Hunderte von Zeilen finden, die er gerade benötigt. Wenn Programmierer Variablen, Funktionen und Klassen aussagekrĂ€ftige Namen geben, können Sie leicht verstehen, was jeder einzelne Code tut, ohne sich eingehend mit dem Kontext befassen zu mĂŒssen. Wenn die Datenstrukturen im Programm mit der Terminologie aus der DomĂ€nendomĂ€ne des Unternehmens ĂŒbereinstimmen, kann der Programmierer die Anforderung neuer Funktionen leicht mit der Funktionsweise des Systems korrelieren. Die technische Verschuldung erhöht auch die Zeit, die fĂŒr die Arbeit mit dem Code benötigt wird. Die Wahrscheinlichkeit, einen Fehler zu machen, steigt ebenfalls. Im Falle von Fehlern aufgrund der schlechten QualitĂ€t des Codes wird zusĂ€tzliche Zeit benötigt, um das Problem zu lokalisieren und zu beheben. Und wenn der Fehler nicht sofort bemerkt wird, fĂŒhrt dies zu Problemen im Produktionscode und der Tatsache, dass Sie in Zukunft noch mehr Zeit damit verbringen mĂŒssen, diese Probleme zu beheben.
Jede Ănderung des Codes wirkt sich auf die Zukunft des Produkts aus. Oft gibt es eine Situation, in der es eine einfache und schnelle Möglichkeit gibt, eine neue Funktion zu implementieren, jedoch auf Kosten des Bruchs der aktuellen Architektur (d. H. Aufgrund einer Zunahme der technischen Verschuldung). Wenn ein Programmierer diesen Pfad wĂ€hlt, gibt er seine Funktion schneller frei, verlangsamt jedoch die Arbeit anderer Entwickler, die diesen Code spĂ€ter unterstĂŒtzen mĂŒssen. Wenn jeder im Team dies tut, wird selbst eine gut gestaltete Anwendung mit gutem Code schnell zu technischen Schulden, und selbst einige Ănderungen werden mehrere Wochen dauern.
Benutzer möchten so schnell wie möglich neue Funktionen erhalten.
Wir nĂ€hern uns einem wichtigen Punkt, nĂ€mlich: Um die Frage zu beantworten, warum ist die interne QualitĂ€t von Software fĂŒr Benutzer immer noch wichtig? Hohe interne QualitĂ€t fördert die schnellere Veröffentlichung neuer Funktionen, da diese einfacher, schneller und billiger durchzufĂŒhren sind. Meine Bewerbungen bei Rebecca sehen jetzt fast gleich aus, aber nach ein paar Monaten wird der hochwertige Code von Rebecca es ihr ermöglichen, jede Woche eine neue Funktion zu veröffentlichen, und ich werde an Ort und Stelle bleiben, versuchen, mit den technischen Schulden fertig zu werden und mindestens eine neue Funktion zu starten. Ich werde nicht in der Lage sein, mit Rebecca in Bezug auf die Entwicklungsgeschwindigkeit zu konkurrieren, und ihre Anwendung wird meine in Bezug auf FunktionalitĂ€t schnell ĂŒberholen. Letztendlich werden Benutzer meine Anwendung löschen und die Rebecca-Anwendung verwenden, obwohl sie mehr kostet.
Visualisierung des Einflusses der internen QualitÀt
Der Hauptvorteil der hohen internen QualitĂ€t des Programms ist die Reduzierung der Kosten fĂŒr zukĂŒnftige Ănderungen. Das Schreiben von qualitativ hochwertigem Code erfordert jedoch mehr Aufwand, und dies erhöht kurzfristig die erforderlichen Ressourcen.
Die folgende Grafik zeigt schematisch, wie Sie sich das VerhĂ€ltnis der FunktionalitĂ€t und die Zeit vorstellen können, die fĂŒr die Entwicklung erforderlich ist. Normalerweise sieht eine Kurve ungefĂ€hr so ââaus:
So sieht der Entwicklungsprozess aus, wenn der Code keine sehr hohe QualitĂ€t aufweist. Die Entwicklung ist zunĂ€chst schnell genug, aber dann wird immer mehr Zeit benötigt, um die FunktionalitĂ€t weiter zu erweitern. Zu einem bestimmten Zeitpunkt muss der Programmierer zunĂ€chst viel komplexen und verwirrenden Code lernen, um auch nur eine kleine Ănderung vorzunehmen. Nachdem die Ănderung vorgenommen wurde, wird festgestellt, dass ein Fehler aufgetreten ist. Dies fĂŒhrt zu zusĂ€tzlichem Zeitaufwand fĂŒr das Testen und Beheben von Fehlern.
Eine hohe interne QualitÀt trÀgt in spÀteren Phasen zur Entwicklungseffizienz bei. Einige Teams erzielen sogar den gegenteiligen Effekt, wenn jede neue Funktion schneller als die vorherige veröffentlicht wird, da bereits geschriebener Code wiederverwendet werden kann. Dies kommt jedoch nur selten vor, da ein hochprofessionelles Team mit einer guten Arbeitsorganisation erforderlich ist. Aber manchmal passiert das immer noch.
Es gibt jedoch einen Trick. In der Anfangsphase der Entwicklung ist das Ignorieren der CodequalitÀt effektiver als das Befolgen hoher Standards. Aber wann endet diese Periode?
Um diese Frage zu beantworten, mĂŒssen Sie zunĂ€chst klarstellen, dass die Bilder
Pseudografien darstellen . Es gibt keinen wirklichen Weg, um die Teamleistung zu bewerten. Es ist nicht leicht zu verstehen, wie sich schlechter Code auf die endgĂŒltige QualitĂ€t des Produkts auswirkt (und wenn diese Korrelation besteht, wie ausgeprĂ€gt sie ist). Dieses Problem ist ĂŒbrigens nicht nur fĂŒr die IT-Branche relevant. Wie kann man zum Beispiel die QualitĂ€t der Arbeit eines Anwalts oder Arztes bewerten?
ZurĂŒck zur Frage: Ab wann lohnt es sich, ĂŒber die QualitĂ€t des Codes nachzudenken? Erfahrene Entwickler glauben, dass sich die schlechte CodequalitĂ€t innerhalb weniger Wochen nach Projektstart verlangsamt. In einem frĂŒhen Stadium des Projekts kann die Schönheit von Architektur und Code ignoriert werden.
Aus eigener Erfahrung kann ich auch sagen, dass selbst kleine Projekte einen ernsthaften Wettbewerbsvorteil erzielen, wenn sie moderne und effektive Entwicklungspraktiken in ihrer Arbeit anwenden und ĂŒber die QualitĂ€t des Codes nachdenken.
Selbst die besten Teams schreiben manchmal schlechten Code
Diejenigen, die neu im Entwicklungsprozess sind, glauben, dass schlechter Code darauf hinweist, dass das Team nicht gut arbeitet. Aber wie die Praxis zeigt, machen selbst die erfahrensten Teams manchmal Fehler und schreiben schlechten Code.
Um dies klar zu demonstrieren, möchte ich Ihnen von einem GesprĂ€ch mit einem unserer besten Teamleiter erzĂ€hlen. In diesem Moment hatte er gerade die Arbeit an einem Projekt beendet, das alle fĂŒr sehr erfolgreich hielten. Der Kunde war von dem neuen System sowohl von den neuen Funktionen als auch von den Ressourcen, die fĂŒr seine Entwicklung aufgewendet wurden, begeistert. Das Team war auch mit dem abgeschlossenen Projekt zufrieden. Der technische Leiter des Teams war ebenfalls sehr zufrieden mit dem Ergebnis, gab jedoch zu, dass die Systemarchitektur tatsĂ€chlich nicht so erfolgreich war. Ich fragte ihn: "Aber wie kommt es, dass Sie einer unserer besten Architekten sind?" Er antwortete, wie jeder erfahrene Architekt geantwortet hĂ€tte: âWir haben gute Entscheidungen getroffen, aber erst jetzt verstehen wir, wie man es richtig macht.â
Viele Menschen vergleichen die Schaffung komplexer Systeme mit dem Design von Wolkenkratzern. Anscheinend werden erfahrene Entwickler deshalb als "Architekten" bezeichnet. Bei der Erstellung von Software gibt es jedoch immer einige Unsicherheiten, die fĂŒr andere TĂ€tigkeitsbereiche untypisch sind, in denen die Unsicherheiten viel geringer sind. Typische Kunden haben ein schlechtes VerstĂ€ndnis dafĂŒr, was sie von dem Programm erwarten, und beginnen dies erst zu verstehen, wenn sie daran arbeiten. Meistens in dem Moment, in dem die ersten Versionen des Programms angezeigt werden. Die Elemente, aus denen Programme erstellt werden (Programmiersprachen, Bibliotheken, Plattformen), Ă€ndern sich alle paar Jahre. Können Sie sich eine Analogie zum Bau eines Wolkenkratzers vorstellen, in der ein Kunde einen Architekten auffordert, ein Dutzend weitere Stockwerke hinzuzufĂŒgen und das Layout der unteren zu Ă€ndern, obwohl die HĂ€lfte des GebĂ€udes bereits gebaut ist? Die Situation wird noch komplizierter, wenn sich herausstellt, dass die zur Herstellung von Beton verwendeten Technologien, ihre physikalischen Eigenschaften und Eigenschaften alle zwei Jahre aktualisiert werden.
Angesichts stĂ€ndig neuer Herausforderungen, der Zunahme ihrer Anzahl und KomplexitĂ€t mĂŒssen sich die Teams stĂ€ndig etwas Neues einfallen lassen. Zunehmend ist es notwendig, Probleme zu lösen, die noch niemand zuvor gelöst hat, und dementsprechend gibt es keine bekannte und bewĂ€hrte Lösung fĂŒr sie. Normalerweise kommt ein klares VerstĂ€ndnis des Problems erst zum Zeitpunkt seiner Lösung, daher höre ich oft die Meinung, dass das VerstĂ€ndnis, wie die Architektur eines komplexen Systems aussehen sollte, mindestens ein Jahr nach Arbeitsbeginn erfolgt. Und selbst das professionellste Entwicklungsteam der Welt wird das System nicht perfekt machen können.
Ein professionelles und organisiertes Team unterscheidet sich von einem weniger organisierten darin, dass es bei der Arbeit am System weniger technische Schulden verursacht und auch das vorhandene beseitigt. Dies hilft dem Projekt, sich schnell zu entwickeln und neue Funktionen so schnell wie möglich freizugeben. Ein solches Team investiert in die Erstellung automatisierter Tests, mit denen Probleme schneller erkannt und weniger Zeit fĂŒr das Auffinden und Beheben von Fehlern aufgewendet werden können. Die Mitglieder eines solchen Teams arbeiten stĂ€ndig daran, qualitativ hochwertigen Code beizubehalten und schlechten Code schnell zu beseitigen, bis er die weitere Entwicklung beeintrĂ€chtigt. Dazu tragen auch CI-Systeme bei, insbesondere in einer Situation, in der viele Menschen gleichzeitig an unterschiedlichen Aufgaben arbeiten. Als Metapher können Sie nach dem Kochen in die KĂŒche bringen. Es ist unmöglich, etwas zu kochen, ohne den Tisch, das Geschirr und andere KĂŒchenutensilien zu verschmutzen. Wenn Sie sie nicht sofort reinigen, trocknet der Schmutz aus und es ist viel schwieriger, ihn zu waschen. Und wenn Sie das nĂ€chste Mal etwas kochen möchten, wird es fĂŒr Sie viel schwieriger, dies zu tun, da Sie zuerst den Berg des Geschirrs waschen mĂŒssen.
DevOps Forschung und Bewertung (DORA)
Der Kompromiss zwischen Kosten und QualitĂ€t ist nicht der einzige in der Welt der Softwareentwicklung, der auf den ersten Blick einfach erscheint, aber in der Praxis stellt sich heraus, dass alles etwas komplizierter ist. Es gibt auch eine breite Diskussion darĂŒber, was am besten zu wĂ€hlen ist - schnelle Entwicklungs- und Veröffentlichungsraten oder langsamere Raten und strenge Tests. Es wird angenommen, dass die Verwendung des zweiten Ansatzes eine höhere StabilitĂ€t von Produktionssystemen ermöglicht. Die
DORA- Studie hat jedoch bewiesen, dass dies nicht der
Fall ist.
Nachdem die Forscher ĂŒber mehrere Jahre hinweg Statistiken gesammelt hatten, identifizierten sie, welche Praktiken zu einer höheren Teamleistung beitragen. Es stellte sich heraus, dass die effektivsten Teams den Produktionsserver mehrmals tĂ€glich aktualisieren und die Freigabe von Code ab dem Zeitpunkt der Veröffentlichung bis zur Veröffentlichung nicht lĂ€nger als eine Stunde dauert. Wenn Sie diesen Ansatz befolgen, können Sie Ănderungen an kleinen Teilen freigeben, und die Wahrscheinlichkeit schwerwiegender SchĂ€den wird verringert. Teams, die laut Statistik seltener Veröffentlichungen veröffentlichen, haben mit vielen ernsthaften Problemen zu kĂ€mpfen. AuĂerdem können sich Teams, die an ein hohes Tempo gewöhnt sind, nach einem Absturz schneller erholen. Studien haben auch gezeigt, dass in solchen Teams Prozesse normalerweise besser aufeinander abgestimmt sind und organisierter funktionieren.
Die UnterstĂŒtzung von Systemen mit einer guten Architektur ist billiger
Die wichtigsten Punkte aus dem, worĂŒber wir oben gesprochen haben:
- Die mangelnde Beachtung der CodequalitĂ€t fĂŒhrt zu einer AnhĂ€ufung technischer Schulden
- Technische Schulden verlangsamen die Systementwicklung
- Selbst professionelle Teams treffen manchmal schlechte Entscheidungen. Die Anwendung moderner Praktiken und die regelmĂ€Ăige "RĂŒckzahlung" technischer Schulden ermöglichen es Ihnen jedoch, diese unter Kontrolle zu halten
- Durch die Aufrechterhaltung einer hohen CodequalitÀt wird die technische Verschuldung minimiert. Dies ermöglicht es, sich auf neue Funktionen zu konzentrieren und diese mit weniger Aufwand, schneller und billiger freizugeben.
Leider ist es fĂŒr Entwickler normalerweise schwierig, dies dem Management zu erklĂ€ren. Ich höre oft Beschwerden, dass das Handbuch es nicht ermöglicht, qualitativ hochwertigen Code beizubehalten, indem die fĂŒr die Bearbeitung von Aufgaben vorgesehene Zeit begrenzt wird. Bei der Beantwortung von Managementfragen, warum zusĂ€tzliche Ressourcen fĂŒr die Schönheit des Codes aufgewendet werden, antworten Entwickler normalerweise, dass dies ein Indikator fĂŒr hohe ProfessionalitĂ€t ist. Die Verwendung nur dieses Arguments bedeutet jedoch, dass zusĂ€tzliche Ressourcen fĂŒr die Aufrechterhaltung einer hohen QualitĂ€t aufgewendet werden, die fĂŒr andere Aufgaben verwendet werden könnten. Und das untergrĂ€bt das Argument fĂŒr ProfessionalitĂ€t. Die Wahrheit ist, dass aufgrund der schlechten ArchitekturqualitĂ€t und des schlechten Codes das Leben fĂŒr alle schwieriger wird: Es ist fĂŒr Entwickler schwieriger, damit zu arbeiten, und fĂŒr Kunden kostet es mehr. Bei der Erörterung der QualitĂ€t des Kodex mit dem Management fordere ich, dass er ausschlieĂlich als wirtschaftlicher Indikator betrachtet wird. Wenn das Programm in hoher QualitĂ€t ausgefĂŒhrt wird, ist es einfacher und billiger, neue Funktionen hinzuzufĂŒgen. Dies bedeutet, dass die Investition in das Schreiben von QualitĂ€tscode letztendlich die Gesamtentwicklungskosten senkt.
Dies ist der wahre Grund, warum die Frage aus dem Titel des Artikels einfach keinen Sinn ergibt. Aus wirtschaftlicher Sicht ist es letztendlich rentabler, zusĂ€tzliche Ressourcen fĂŒr Architektur und guten Code auszugeben. , , , . , . ( ). , .
. :
, , . â . . , . .