
Code-Qualität - Was ist guter Code und warum ist er wichtig für Ihr Unternehmen?
Es wurden viele Artikel darüber geschrieben, was guten Code auszeichnet, wie man guten Code schreibt und warum guter Code aus der Programmierperspektive gut ist. Wir können sie leicht online und auf unserem Blog finden. Heute wollen wir uns jedoch der Auswirkung von gutem (oder schlechtem) Code auf Software aus der geschäftlichen Perspektive nähern. Warum lohnt es sich nicht, am Anfang bei Erstellung eines neuen Systems Geld zu sparen und wie schlechter Code in der Zukunft enorme Kosten verursachen kann?
Codequalität - was macht guten Code aus?
Hier kommt das erste Problem. Als Entwickler können wir leicht, selbst nach einer ersten groben Analyse, beurteilen, ob der Code gut ist oder nicht. Wir sind in der Lage, spezifische Fehler aufzuzeigen und zu erklären, warum die verwendeten Lösungen falsch sind. Wie kann jedoch die Qualität des Codes von der Person beurteilt werden, die die Software kauft, d. h. vom Kunden, der sich überhaupt nicht damit auskennt?

Beim Benutzen der Anwendung ist es schwierig zu beurteilen, ob sie auf gutem Code basiert, insbesondere wenn sie noch nicht öffentlich gemacht und weit verbreitet wurde. Es gibt jedoch zwei Anzeichen, die auftreten können und uns darauf hinweisen, dass es ein Problem mit der Software gibt.
Geschwindigkeit des Betriebs
Wenn wir gerade ein System von einer Softwarefirma gekauft haben (egal ob es sich um eine mobile Anwendung, eine Website oder eine Webanwendung handelt), sollten wir besonders auf die Geschwindigkeit des Betriebs achten. Wenn es gleich zu Beginn Leistungsprobleme gibt, werden sie in der Zukunft sicherlich schlimmer. Eine frisch geschriebene Anwendung sollte nicht langsam laufen. Wenn der Server, auf dem diese Software liegt, Probleme hat, einen einzigen Besucher zu bedienen, wird er sicherlich nicht in der Lage sein, alle seine Benutzer zu bedienen, wenn tausend oder sogar mehrere tausend Menschen gleichzeitig die Anwendung nutzen.
Stabilität des Betriebs und Fehlerfreiheit
Typischerweise wird der Aufbau einer Anwendung in mehreren Phasen durchgeführt. Zuerst erstellen die Entwickler die Alphaversion, dann die Betaversion, dann die RC (Release Candidate) Version und schließlich die Produktionsversion. Die ersten beiden Versionen (Alpha und Beta) können Fehler enthalten, und die Nutzung solcher Anwendungen kann lästig sein. Diese sind jedoch nicht für den öffentlichen Gebrauch bestimmt, sondern für Tester. Jede zuverlässige Softwareentwicklungsagentur verfügt über geeignete Verfahren, um Fehler in den ersten Versionen zu finden und zu beheben.
Wenn wir also ein Endprodukt erhalten, das Fehler enthält, bedeutet das, dass das Testteam entweder nachlässig war oder die Firma gar keines hat und Anwendungen ohne Überprüfung veröffentlicht werden.
Leider können die oben genannten Symptome schnell auftreten, müssen es aber nicht. Wenn wir dann eine Anwendung bekommen, die zwar schlecht geschrieben ist, aber trotzdem schnell und stabil funktioniert, worin liegt dann das Problem? Lassen Sie uns das erklären.
Schlechter Code kann Ihr Budget ruinieren
Die Tatsache, dass Probleme mit der Geschwindigkeit und Stabilität der Anwendung seit Beginn ihrer Nutzung nicht aufgetreten sind, bedeutet nicht, dass sie in Zukunft nicht auftauchen werden. Probleme, die nicht gleich zu Beginn erkannt wurden, werden sich bemerkbar machen. Wenn wir jedoch noch nichts davon wissen, nehmen wir als Softwareeigentümer eine Art technischen Schulden auf (eine Situation, in der scheinbar einfachere und unkompliziertere Lösungen sich langfristig als weniger rentabel herausstellen). Wir verschieben die Lösung der Probleme auf später. Leider wird es im Laufe der Zeit immer mehr davon geben, und ihre Behebung wird mühsamer. Schauen wir uns ein Szenario an, das sehr oft passiert.
Am Anfang wählte der Kunde das günstigste Angebot unter den Softwarefirmen und bekam eine Anwendung mit schlechtem Code. Anfangs funktionierte alles gut, aber mit der Zeit begannen immer mehr Probleme aufzutauchen. Die Software wurde langsamer und die Kunden wanderten ab, weil sie aufgrund von Instabilität und ständigen Abstürzen unzufrieden waren. Der Anwendungsbesitzer hatte schließlich genug und beschloss, ein weiteres Entwicklungsteam zu engagieren, jetzt zu einem höheren Preis, in der berechtigten Erwartung, dass die Qualität der erbrachten Dienstleistungen zusammen mit dem Preis ebenfalls höher wäre. Der Kunde setzte große Hoffnungen in das neue Entwicklungsteam, da er wusste, dass der Code verbessert werden musste. In dieser Situation waren nur zwei Szenarien möglich:
- Das Schreiben der gesamten Anwendung von Grund auf, was mit enormen Kosten verbunden wäre.
- Die Reparatur, Stück für Stück, dessen, was bereits vorhanden ist (was ebenfalls sehr hohe Kosten bedeuten würde).
Die Anwendung von Grund auf neu schreiben
Das Schreiben der gesamten Anwendung von Grund auf mag wie eine gute Idee erscheinen. Wir werden endlich sicher sein, dass die Codequalität hoch wird und die Anwendung stabil funktioniert. Leider, wie wir schon früher schrieben, wird dies mit enormen Kosten verbunden sein. Das Geld, das wir ursprünglich für die Erstellung neuer Software ausgegeben haben, wird verloren sein, und wir werden mehr investieren müssen.
Erinnern wir uns auch daran, dass wir ein Szenario betrachten, in dem die Anwendung bereits läuft und Kunden sie nutzen. Selbst wenn wir gleichzeitig mit dem Bau einer neuen Anwendung beginnen, müssen wir trotzdem die Kosten für das laufende „Flicken“ der Fehler im alten System übernehmen. Darüber hinaus wird die Erstellung einer neuen Lösung den Datentransfer, die Änderung ihrer Struktur usw. beinhalten. Während dieses Prozesses muss die laufende Anwendung für mindestens einige Stunden abgeschaltet werden, und die Kunden werden darüber nicht glücklich sein.
Die aktuelle Anwendung reparieren
Das zweite mögliche Szenario besteht darin, den bestehenden Code Stück für Stück zu reparieren. Diese Lösung hat ebenfalls ihre Nachteile. Erstens werden wir, wie im vorherigen Szenario, immer noch die bestehenden Fehler laufend beheben müssen, was natürlich die Kosten erhöht. Zudem muss eine solche Operation mit chirurgischer Präzision geplant werden. Es erfordert viel Zeit, um jeden Schritt zu analysieren und herauszufinden. Es sollte auch viel Zeit in das Schreiben automatischer Tests investiert werden, damit wir, wenn wir eine Funktionalität reparieren, sicher sein können, dass wir nicht versehentlich etwas in einem völlig anderen Bereich brechen. Der gesamte Reparaturprozess ist sehr zeitaufwändig und riskant.
Wir können nicht einfach sagen, welches der beiden beschriebenen Szenarien besser ist. Jedes von ihnen hat seine Nachteile. Eine Entscheidung muss von einer detaillierten Analyse der Situation, der Anwendungsmerkmale, der Codequalität und der Kosten begleitet werden.
Guter Code ist eine Investition
Sehr oft bittet der Kunde während der Suche um eine Projektabschätzung durch verschiedene Unternehmen und vergleicht dann die Angebote. Daran ist nichts Ungewöhnliches oder Schlechtes. Das Problem entsteht erst, wenn der Preis das einzige oder wichtigste Kriterium bei der Auswahl eines Unternehmens ist. Es ist schwierig für eine Person, die sich nicht mit Programmierung auskennt, zu verstehen, warum ein Unternehmen den Auftrag für 3.000 Euro ausführt und das andere für 15.000 Euro. Was ist der Grund für einen solchen Preisunterschied? Warum ist es keine gute Idee, gleich zu Beginn Geld zu sparen, sondern es ist besser, diesen Kauf als eine Investition zu betrachten, die sich in der Zukunft auszahlt?
Ein gutes Unternehmen bietet mehr als nur Code-Schreiben an
Wie wir früher schrieben, verfügt eine zuverlässige Softwarefirma über geeignete Standards, die entwickelt wurden, um die Veröffentlichung von minderwertigem Code zu verhindern. Diese Verfahren umfassen:
- Code-Review. Jede von einem Programmierer geschriebene Codezeile wird vor der Veröffentlichung von mindestens einem anderen Entwickler überprüft. Wenn sie Anmerkungen haben oder Fehler finden, kann der Code erst veröffentlicht werden, wenn alle Anmerkungen berücksichtigt wurden.
- QA (Qualitätssicherung). Dies ist ein Team von Testern, die die Stabilität und Sicherheit der Anwendung gründlich überprüfen. Solche Tests können mehrere Tage dauern und zeigen selbst die kleinsten Fehler auf.
- Automatisierte Tests. Neben einem separaten Team, dessen Aufgabe das manuelle Testen ist, gibt es auch automatisierte Tests. Dank ihnen können wir mit einem einzigen Befehl überprüfen, ob der Code, den wir gerade geschrieben haben, nicht versehentlich die Anwendung in einem völlig anderen, unerwarteten Bereich gebrochen hat (das passiert ziemlich oft).
- Dokumentation. Eine gute Dokumentation ermöglicht es uns, neue Programmierer schnell in das Projekt einzuführen und zu verstehen, wie die einzelnen Komponenten der Anwendung funktionieren. Das mag trivial erscheinen, aber das Fehlen von Dokumentation ist ein echtes Problem, insbesondere bei großen Systemen.
Anwendungswartung und -entwicklung
Lassen Sie uns im Hinterkopf behalten, dass sich die Technologie sehr schnell entwickelt. Der Code unserer Anwendung sollte sich ebenfalls mitentwickeln. Selbst wenn wir zu Beginn eine großartige Anwendung mit hochwertigem Code haben, kann sich nach ein paar Jahren herausstellen, dass sie keinen Wert mehr hat. Eine gute Softwarefirma führt Aktualisierungen laufend durch und passt den Code an aktuelle Trends und Technologien an. Eine Website, die vor fünf Jahren noch super modern aussah, aber keine laufende Entwicklung hatte, wird heute veraltet und nicht mehr auf dem Stand der modernen Standards sein.
Qualität des Codes - Zusammenfassung
Codequalität wirkt sich direkt auf die Qualität der Softwareoperation aus. Keiner von uns würde eine Anwendung verwenden wollen, die ständig abstürzt, langsam ist und Fehler enthält. Leider geht der Preis mit der Qualität Hand in Hand. Lassen Sie uns jedoch im Hinterkopf behalten, dass je mehr Geld wir zu Beginn investieren, desto geringer werden die Kosten, die wir in der Zukunft tragen werden.
Bei Droptica werden wir eine Drupal-Website oder Webanwendung für Sie erstellen, gemäß spezifischer Codierungsstandards. Die Qualität des Codes wird regelmäßig von Entwicklern, Testern und automatisierten Tests überprüft.