Wie man digitale und nachhaltige Produkte entwickelt Technische Schulden einkalkulieren und vermeiden
Anbieter zum Thema
DevOps-Teams müssen immer schneller, besser und kreativer abliefern. Doch durch diesen Performance-Druck können sich Fehler während der Softwareentwicklung einschleichen. Wie gehen Developer und Projektmanager am besten damit um?

Fehler in der Softwareentwicklung nennen sich technische Schulden, in der Branche spricht man häufig von sogenannten Tech Debt oder Code Debt. Bezogen auf die Unternehmens-IT wurde dieser Begriff 1992 erstmals von Wand Cunningham verwendet und eingeführt.
Technische Schulden entstehen meist dann, wenn ein Entwicklungsteam in einer kurzen Zeit unterschiedliche Funktionen entwickelt und implementiert. Das Produkt ist anfangs darauf ausgelegt, erst einmal so gut es geht zu funktionieren – in dem Wissen, dass es noch nicht ausgereift ist. Nachdem die Software dann durch den Markt getestet wurde, müssen dann erkannte Fehler im Nachhinein ausgebessert werden.
„Sich Geld zu leihen verleiht einem die nötige Flexibilität. Denn es befähigt uns dazu bestimmte Dinge schneller oder früher umsetzen, auf die wir sonst aufgrund mangelnder finanzieller Mittel warten müssten“, so Cunningham. „Ich hielt es für eine gute Idee, sich Geld zu leihen. Genauso dachte ich, es sei eine gute Idee, eine Software möglichst schnell auf den Markt zu bringen, um damit Erfahrungen zu sammeln. Sobald man etwas über die Software gelernt hat, würde man das Darlehen anschließend sofort zurückzahlen, indem man das Programm mit den gesammelten Erfahrungen überarbeitet.“
Die häufigsten Gründe für technische Schulden
Technische Schulden sollten im besten Fall so schnell wie möglich entdeckt und bearbeitet werden. Für Unternehmen, insbesondere Entwicklerteams, ist es wichtig zu verstehen, wodurch diese überhaupt entstehen können. Ursachen von technischen Schulden sehen deshalb wie folgt aus:
- Qualitätsstandards des Codes sind unzureichend.
- Unzureichende Programmierfähigkeiten innerhalb des Teams.
- Minimale Teststandards oder keine Tests.
- Zu knappe Abgabefristen und zusätzlicher Druck von Stakeholdern.
- Übermäßig komplexe Implementierungen.
- Schlechte Führung im Team und unflexibles Arbeiten „top-down-Methode“.
- Zu starker Fokus auf nur eine Funktion.
- Verwendung eines MVP als fertige Lösung.
Bewusstes Provozieren technischer Schulden
Um schnell auf die Entwicklungen des Marktes reagieren zu können, werden sogenannte MVPs (Minimum Viable Products, z. Dt.: „minimal funktionsfähiges Produkt“) erstellt, um eine Software zu Beginn der Entwicklungsphase auf dem Markt testen zu können. Mithilfe der daraus entstandenen App können weitere Erkenntnisse wie Funktionalität und Qualität erhoben werden.
Dem Entwicklungsteam ist es durchaus bewusst, dass die App weitere Mängel aufweisen wird, die in den nächsten Schritten behoben werden müssen. Allerdings haben sie dadurch den Vorteil, das Konzept und die Idee hinter dem Produkt schnell auf den Markt zu bringen, um die bestehenden Geschäftshypothesen zu testen. So erlangt das Unternehmen unmittelbar Gewissheit und kann Reaktionen positiv oder negativ bewerten.
Aus diesem Schritt ergibt sich dann für das Team die Entscheidung, weiter an dem MVP zu arbeiten oder die Idee komplett zu verwerfen. Das sind dann also bewusst provozierte technische Schulden, die im Nachhinein durch ihre Erkenntnis einen positiven Einfluss haben, da sie den Entscheidungsprozess vorantreiben.
Sobald technische Schulden zu erkennen sind, wissen DevOps-Teams sofort, dass im Laufe des Entwicklungsprozesses Entscheidungen getroffen wurden, die das finale Produkt vom idealen Endergebnis abweichen lassen. Es ist daher von großer Bedeutung technische Schulden bei der Skalierung eines Produktes oder der Erschließung eines ganzen Marktes zu vermeiden.
Die TDD-Methode
Unternehmen müssen sich bewusst sein, dass man technische Schulden nicht komplett ausschließen kann; und dass es unterschiedliche Methoden gibt, mit denen es möglich ist, dagegen vorzugehen. Die „Test Driven Development“- oder kurz TDD-Methode kommt am besten genau dann zum Einsatz, wenn die Komplexität der Computerprogramme steigt. Dabei sorgen die Entwicklerinnen und Entwickler vorab dafür, dass das Design einer Software wirklich gut durchdacht ist, bevor sie anfangen präziseren Code zu schreiben.
Fehlfunktionen, Bugs und Datenlecks, sowie andere Sicherheitsprobleme können dennoch jederzeit auftreten. Bei der Behebung eines solchen Problems ist mit Sicherheit gesagt, dass das Team dafür viel Zeit und Aufwand betreiben muss. Deswegen ist es für ein Development-Team besonders wichtig, schnell auf solche Fälle zu reagieren.
Richtiger Umgang mit technischen Schulden
Bevor technische Schulden überhaupt entstehen, gibt es ein paar Tipps und Tricks, die dabei helfen, diese zu vermeiden. Anfangs muss natürlich erst analysiert werden, wodurch die technischen Schulden entstanden sein könnten. Erst dann werden daraus die nächsten Schritte geplant, um effektiv dagegen vorzugehen.
Eine Festlegung von Programmierstandards sorgt dafür, die Qualität auch in Zukunft sicherzustellen. Die Motivation und Produktivität des Teams sollte definitiv beobachtet werden, denn sie hat Einfluss auf die Konzentration und auf mögliche Fehler, die währenddessen passieren können. Unachtsamkeit kann einen erheblichen Einfluss auf die weitere Entwicklung haben. So ist es möglich, mit etwa einer agilen Arbeitsweise mehr Verantwortung und Eigenständigkeit an das Team zu übertragen.
Die individuellen Stärken und Schwächen der Angestellten kommen dabei stärker zur Geltung, so dass sie wiederum innerhalb des Teams effizienter eingesetzt werden können. Entscheidungen lassen sich schneller und auf Basis der eigenen Expertise treffen. Stakeholder sollten in den Prozess mit einbezogen und aufgeklärt werden, dass technische Schulden im ersten Moment auch einen positiven Einfluss haben können, damit diese im Fall nicht noch zusätzlichen Druck ausüben.
Fazit
Störungen und die Entstehung von technischen Schulden sollten zeitnah erkannt werden. Diese müssen so schnell wie möglich beseitigt werden, bevor sie sich anhäufen und so das Unternehmen belasten, weil mehr Ressourcen für die Beseitigung gebraucht werden als vorgesehen. Idealerweise arbeiten Entwicklungsteams mit viel Eigenverantwortung und auf eine systematische und durchdachte Weise, um potenzielle Risiken durch Technical Debt auszuschließen.
* Piotr Majchrzak ist Mitgründer und Co-Geschäftsführer bei Boldare, einem 180 Mitarbeiter starken Unternehmen für digitales Produktdesign und -entwicklung, das sich auf Softwareentwicklung, UX- und UI-Design, Scrum und Geschäftsentwicklung spezialisiert hat. Majchrzak ist Unternehmer, mit einem Hintergrund in Softwareentwicklung, der bereits zahlreiche Unternehmen in seinem Geschäftsportfolio hat.
(ID:47573485)