
kontaktiere uns


Gutes Management der technischen Schulden macht den Unterschied zwischen einem erfolgreichen und einem erfolglosen Softwareprojekt aus. Das Ignorieren oder Nichtanerkennen von Technologieschulden kann zu höheren Entwicklungskosten und niedrigen finanziellen Renditen führen. Angesichts der Tatsache, was auf dem Spiel steht, Das Verständnis und der Umgang mit technischen Schulden sollten Priorität haben für Softwareingenieure und hochrangige Entscheidungsträger.
Technische Schulden oder Code-Schulden sind nicht unbedingt negativ — manchmal können sie strategische Hebelwirkung für Ihr Projekt auf lange Sicht. Wenn Sie sich also für technische Schulden entscheiden, stehen in der Regel eine Strategie, eine Absicht und eine Begründung dahinter. Und obwohl es riskant ist, kann es sehr vorteilhaft sein. Fast jedes Unternehmen hat einen gewissen Grad an technischen Schulden — der Trick besteht darin, zu wissen, wie man sie identifiziert und verwaltet. Dieser Blogbeitrag hilft Ihnen dabei. Schauen wir uns also an, was technische Schulden sind, welche Art von technischen Schulden es gibt, wie sie sich auf Ihren Entwicklungsprozess auswirken und wie Sie damit umgehen können.
Technische Schulden, Tech-Schulden, oder Schulden codieren ist das Konzept, Arbeiten zu verzögern oder auszulassen, um ein Projekt abzuschließen oder ein Ziel schneller zu erreichen, was aber auch später in der Lebensphase des Projekts zu mehr Nacharbeit führt. Wir können es mit dem Bau eines Hauses ohne einen vollständigen Satz von Bauplänen vergleichen. Der Bau könnte früher abgeschlossen sein, aber das Haus wird erhebliche strukturelle Probleme haben, deren Behebung später mehr Zeit und mehr Geld in Anspruch nehmen wird.
In der Softwareentwicklung ist es üblich, ein Feature sofort bereitzustellen, um zu verstehen, wie es skaliert werden kann. Sobald es deutlich skaliert ist, können wir es an die Größe anpassen, die es erreicht hat. Aber bleiben Sie auf dem Laufenden, da wir später alle Arten von technischen Schulden abdecken werden.
Alles in allem können sich technische Schulden auf jeden Teil der Web- oder App-Entwicklung beziehen, sie beziehen sich jedoch in der Regel auf die Programmierung, insbesondere Code-Refactoring. Und genau wie Finanzschulden, Code oder Für technische Schulden fallen Zinsen an - je länger sich die Schulden oder der Rückstau ignorierter Probleme ansammeln, desto kostspieliger wird die Behebung.
In einem McKinsey-Umfrage durchgeführt im Jahr 2020, CIOs berichteten, dass 10 bis 20% der Technologie Budget der neuen Software zugewiesen wird, dient der Behebung von Problemen im Zusammenhang mit technische Schulden. Noch besorgniserregender ist, dass CIOs schätzten, dass sich die Technologieverschuldung auf 20 bis 40% des Werts ihres gesamten Technologieparks vor der Abschreibung. Dies führt zu unbezahlten Schulden in Höhe von Hunderten von Millionen Dollar für größere Unternehmen.
Technische Schulden sind ein natürliches Ergebnis der Softwareentwicklung, und wenn es darum geht, es zu identifizieren, sind sich die meisten Experten in zwei umfassenderen Kategorien einig:
Vorsätzliche technische Schulden oder aktive Schulden tritt auf, wenn Teams wissentlich eine wollen schnelle, aber unvollkommene Implementierung zu 1) eine Präsenz in einem sich schnell entwickelnden Markt aufbauen oder 2) um Kundenfeedback zu sammeln. Bei der Entwicklung von Produkten mit minimaler Rentabilität (MVP) werden häufig vorsätzliche technische Schulden erhoben, die anhand des Kunden- und Kundenfeedbacks kontinuierlich weiterentwickelt und behoben werden.
Teams haben jedoch selten die Zeit, zurückzugehen und die ursprüngliche Planung neu zu gestalten. Daher ist es immer am besten, mit einem Team zusammenzuarbeiten, das das Projekt für jede Lebensphase angemessen geplant hat. Beispielsweise optimieren und verbessern Entwickler bei Imaginary Cloud den Code der App oder Software wieder, sobald sie live ist.
Ein gutes und einfaches Beispiel für vorsätzliche Technologieverschuldung So hat sich Airbnb nicht die Mühe gemacht, den Favoriten-Button seiner Website zu korrigieren. Es gab einen Moment, in dem die Schaltfläche zum Favorisieren von Häusern oder Räumen nicht funktionierte. Da der Fokus von Airbnb zu dieser Zeit auf schnellem Wachstum lag, machte es ihnen nichts aus, dieses Problem zu überspringen. Das Team hat das Problem erst behoben, als sich das Unternehmen immer größerer Beliebtheit erfreute und eine ausgereiftere Phase seines Lebenszyklus erreichte.
Unbeabsichtigte technische Schulden entstehen zufällig und tritt normalerweise auf, wenn Entwickler verstehe die Marktanforderungen nicht oder wie man eine Architektur entwirft um den Marktanforderungen gerecht zu werden.
Wenn ein Team beispielsweise ein Softwaresystem entwirft, versucht es, ein Gleichgewicht herzustellen, indem es vorausschauend denkt und seinen Plan durch Einfachheit und Umsetzung zukunftssicher macht. Wenn sich das System weiterentwickelt und sich die Anforderungen ändern, stellen sie möglicherweise fest, dass ihre Strategie fehlerhaft ist oder dass die Implementierung der neuen Funktionen schwierig und langsam geworden ist.
Tech-Schulden haben auch bestimmte Typen, von denen jede das spezifische Problem im Titel enthält:
Obwohl diese Typen sehr spezifisch sind, ist der beliebteste Martin Fowlers Quadrant für technische Schulden das beschreibt die Art der Schulden (vorsätzlich und unbeabsichtigt) und die Wahl, Schulden aufzunehmen (rücksichtslos oder umsichtig).
Wir können jeden Quadranten identifizieren, indem wir ihm eine Farbe zuweisen, die seiner Erwünschtheit entspricht: Rot und Orange (oben und unten links) stehen für Warnung; Grün und Blau (oben und unten rechts) stehen für Erwünschtheit.
Lassen Sie uns nacheinander jeden Quadranten betrachten und die Rolle eines Entwicklungsteams beim Risikomanagement berücksichtigen.
Diese Art von Schulden tritt auf, wenn Team hat das entsprechende Wissen um die Aufgabe noch umzusetzen entscheidet sich bewusst für eine schnelle und qualitativ schlechte Lösung, in der Regel zum Vorteil einer schnellen Implementierung. Dies sind einige der Fragen, die Sie sich stellen sollten, bevor Sie sich für diese Methode entscheiden:
Das Nichtmanagement von Aspekten wie den oben genannten führt dazu, dass vorsätzliche technische Schulden in den rücksichtslosen Bereich geraten.
Es bedeutet, alles Neue langsam zu beginnen, um sicherzustellen, dass Sie und alle anderen, die mit Ihnen zusammenarbeiten, genau wissen, was zu tun ist und welche Verfahren zu befolgen sind.
Bei vorsätzlicher und umsichtiger Tech-Verschuldung geht es um fundierte Entscheidungen treffen und überlegt daher, ob die Auszahlung einer früheren Veröffentlichung höher ist als die Kosten für deren Rückzahlung. Das Team erkennt das Problem und seine Folgen muss aber bieten derzeit die Funktionalität pünktlich. In diesem Fall plant das Team auch, wie mit den Auswirkungen umzugehen ist, wobei jedes Worst-Case-Szenario berücksichtigt wird.
Unbeabsichtigt und rücksichtslos ist der am wenigsten wünschenswerte Art von Schulden du haben willst - es heißt normalerweise Softwareentropie was wir im nächsten Kapitel erklären. Von den Teams wird erwartet, dass sie die Grundlagen verstehen der Technologien, die sie verwenden, und wenn sie ignoriert werden, führt dies zu einer fehlerhaften Anwendung mit unerwartetem Anwendungsverhalten oder schlechter Wartung. Ein gut ausgebildetes Team mit aktuellen Branchenkenntnissen und bewährten Verfahren sollte in der Lage sein, diese Art von Technologieschulden zu vermeiden.
Das ist der unbeabsichtigt Art von Schulden - das kann trotz einer sorgfältigen Herangehensweise an die Architektur und den Code des Projekts passieren. Oft ist es erst nachdem eine Funktion implementiert wurde oder wenn das Projekt abgeschlossen ist, stellt das Team fest, dass es, wenn es die einzelnen Komponenten der Anwendung anders gestaltet hätte, wahrscheinlich zu einer besseren Lösung kommen würde. Das Ziel besteht also darin, die Lernmöglichkeiten zu maximieren, sodass Sie für einen größeren Teil Ihrer technischen Schulden von „unbeabsichtigt“ zu „umsichtig“ wechseln können.
Bitfäule oder Softwareentropie ist die Art von Tech-Schulden, die Sie vermeiden möchten, wie wir oben erwähnt haben. Es passiert im Laufe der Zeit, wenn eine Komponente oder ein System langsam wird führt durch viele inkrementelle Änderungen zu unnötiger Komplexität, oft, wenn mehrere Entwickler daran gearbeitet haben, die die ursprüngliche Architektur möglicherweise nicht vollständig verstehen. Dieser Mangel an Fähigkeiten ist eine unbeabsichtigte und rücksichtslose Form der Verschuldung wird auf schlechte Logik- und Codierungspraktiken zurückgeführt.
Sie möchten Softwareentropie vermeiden, weil:
Wir empfehlen Ihnen, nach Teams mit einem engagierten Projektmanager zu suchen, der seine Entwickler zur Rechenschaft ziehen kann, indem er sicherstellt, dass der Entwicklungsprozess keinen Raum für Bitfäule lässt.
Lesen Sie auch:
Laut einem Studie durchgeführt von Stepsize, 61% der Entwicklungsteams geben an, dass der größte Teil der technischen Schulden aus dem Backend stammt, insbesondere in Webserver-Endpunkten. Unternehmensanwendungen und Websites sowie die allgemeine Infrastruktur sind ebenfalls Teil der Codebasis, die eine große Menge an technischen Schulden anhäufen. Die Ergebnisse deuten darauf hin, dass Unternehmen könnten ihre Produktivität dramatisch steigern, indem sie Technologieschulden abzahlen in diesen Bereichen ihrer Codebasis.
Zu den weiteren Hauptfaktoren, die zur technischen Verschuldung beitragen, gehören:
Diese Probleme können sammeln sich im Laufe der Zeit an, wenn sie nicht überwacht werden, was zu technischen Ineffizienzen führt, die in Zukunft behoben werden müssen. Es ist am besten, mit einem kompetenten Team oder Partner zusammenzuarbeiten, der die richtigen Prozesse, Pläne und Zeitpläne hat. Dieses Team sollte die Objekte sichtbar machen, indem es Einträge im Software-Backlog registriert, in dem die Probleme bewertet und zur Lösung priorisiert werden.
Nehmen wir das Beispiel von Twitters berühmter Fall Fail Whale. Früher stürzte die Plattform mehrmals ab und ging in den „Notfallwartungsmodus“, was dem Geschäft schadete. Das Erscheinen des heiteren, optimistischen Belugas wurde immer besorgniserregender, als Twitter ein breiteres Publikum erreichte. Daher beschloss Twitter, ein Entwicklungsteam zu integrieren, das das gesamte System instrumentierte, und begann, jeden Teil, der kurz vor dem Ausfall stand, neu aufzubauen, indem es seine Backend-Prozesse auf eine Reihe von Programmiersprachen umstellte, die besser mit dem Java Virtual Machine-Framework kompatibel waren.
Nach der Implementierung dieser Änderungen konnte das Team von Twitter weniger Zeit mit der Behebung von Ausfällen verbringen und mehr Zeit mit der Entwicklung neuer Funktionen verbringen, technische Schulden reduzieren, technische Ineffizienzen beseitigen und schließlich ein besseres Nutzererlebnis bieten.
„Schleifen ist nicht sehr befriedigend. Es ist schwer, vor allen aufzustehen und zu sagen: „Wir werden die Dinge hier Stück für Stück mit viel harter Arbeit reparieren.“ Große, auffällige Moves lassen sich meistens leichter verkaufen. Aber sie funktionieren bei weitem nicht so gut und neigen dazu, vollständig und kläglich zu scheitern.“
Es ist wichtig, das zu erwähnen Tech-Schulden kommen nicht immer von Entwicklungsteams. Einstellungsunternehmen oder Kunden werden oft auferlegen Einschränkungen führende Entwickler, die keine andere Wahl haben, als sie auf sich zu nehmen. Das sind in der Regel:
Lesen Sie auch:
Wenn es beabsichtigt ist:
Entwicklungsteams können vorsätzliche technische Schulden verwalten, indem sie den Backlog verfolgen wenn Arbeiten, die abgeschlossen werden müssen, bewusst verschoben werden. Wenn ein Team sein Versprechen, den Code erneut zu überprüfen, nicht einhalten kann oder es nicht über die Mittel verfügt, dies zu tun, ist es unwahrscheinlich, dass es zurückgezahlt wird, und im Laufe der Zeit wird es zu einer versehentlichen Designschuld.
Diese Schulden entstehen in der Regel aus Geschäftsentscheidungen; daher Interessengruppen und Produkteigentümer sollten für die Rückstellung zur Rechenschaft gezogen werden.
Wenn es ein Unfall ist:
Ein System erfolgreich umzugestalten ist eine riesige Aufgabe, aber das sollte hin und wieder durchgeführt werden, wenn sich das System in einem stabilen Zustand befindet. Andernfalls könnte das Team das System überdimensionieren und unnötige Verlangsamungen hinnehmen.
In diesem Fall Tech-Leads und Product Owner sollten dafür verantwortlich sein, dass Zeit für die Begleichung dieser Art von Tech-Schulden eingeplant wird. verursacht durch Konstruktionsentscheidungen und sich häufig ändernde Anforderungen.
Lesen Sie auch:
Technische Schulden sind nicht immer eine Belastung — sie können oft ein strategischer Erfolgshebel sein, wenn sie gut verwaltet werden. Bei Imaginary Cloud können wir in jeder notwendigen Entwicklungsphase mit Ihnen zusammenarbeiten, um Sie von unnötigen technischen und gestalterischen Schulden zu befreien. Egal, ob es darum geht, Ihre Idee durch Web- und App-Softwareentwicklung zum Leben zu erwecken oder die Fähigkeiten Ihres Teams durch Teamerweiterung zu verbessern, wir sorgen dafür, dass Ihre technischen Schulden bei jedem Schritt gut verwaltet werden.
Vielseitiger und datengesteuerter Wachstumsvermarkter mit fundierten Geschäftskenntnissen, der über die neuesten Entwicklungen in der digitalen Marketinglandschaft auf dem Laufenden gehalten wird.
People who read this post, also found these interesting: