So verschwenden Sie keine Zeit mehr mit technischen Schulden


Du weißt was das ist. Alles, was Sie brauchen, in den Sprint zu schieben, ist schon sehr schwierig, aber Sie müssen immer noch 10-20% der Zeit der Entwickler an einem anderen Ort finden, um die technischen Schulden zurückzuzahlen . Wenn Sie jemals die Notwendigkeit verteidigt haben, sich dafür Zeit zu nehmen, dann wissen Sie, dass dies wie ein Kreuzzug von epischen Ausmaßen ist.


Aber Sie können dies tun, und in dieser Anleitung erfahren Sie genau, wie.


Ich habe zu viele Besprechungen gesehen, in denen genau diese Frage zu viel Zeit aufgewendet wurde. Argumente sind in der Regel unbegründet, und Emotionen können überhand nehmen - und derjenige mit der lautesten Stimme im Raum gewinnt.


Das Dilemma lautet: Wenn der Geschäftsdruck die Oberhand gewinnt, läuft Ihr Unternehmen Gefahr, zu viele technische Schulden zu machen - und dann verlieren die Entwickler ihre Motivation, das Unternehmen geht in den technischen Bankrott und Ihre Konkurrenten triumphieren über Sie. Wenn Sie den Druck der Entwickler überwinden, besteht für das Unternehmen die Gefahr, dass zu wenig technische Schulden eingegangen werden. Ihre Konkurrenten können dann Produkte und Funktionen schneller bereitstellen, den Markt erobern und den erzielten Gewinn später zur Rückzahlung ihrer technischen Schulden verwenden. Du verlierst wieder.


Der gesunde Menschenverstand legt nahe, dass Entwicklungsteams ein intuitives Verständnis der Codebasis, in der die technischen Schulden lauern, sowie ihrer Konsequenzen für das Unternehmen entwickeln sollten, um so das Vertrauen in die Organisation zu stärken. Wenn Ihr Hauptarchitekt und Gründer sagt, dass Sie gerade jetzt umgestalten müssen, nehmen Sie es (normalerweise) einfach und tun es.


Es ist sinnvoll, Ihre Entwickler zu binden, um eine Kultur des Wissens, Austauschs und Vertrauens zu schaffen. Aber es wird Jahre harter Arbeit erfordern, und nach Abschluss der Umgestaltung wissen wir immer noch kaum, ob wir unsere Zeit verschwendet haben. Vielleicht haben wir nur ein paar Tage vor der zukünftigen Entwicklungszeit gespart? Oder könnten wir etwas warten, um die technischen Schulden später zu begleichen und stattdessen einige neue Funktionen hinzuzufügen? Wir wissen es nie genau und führen unsere Ignoranz auf die Tatsache zurück, dass Produktentwicklung mehr eine Kunst als eine Wissenschaft ist.


Nun, es ist Zeit, dem Prozess etwas Wissenschaft hinzuzufügen.


Was sind die ähnliche Zuverlässigkeit des Standorts und das Budget der technischen Schulden


Ordnungsgemäß verwaltete und zielgerichtet geplante technische Schulden können ein unschätzbares Instrument sein. Wenn wir erkennen, was wir tun, können wir es genauso nutzen, wie wir Finanzschulden als Hebel einsetzen. Aber wenn wir, ohne es zu ahnen, zu viel unternehmen - zum Beispiel verstehen wir die Bedingungen der Transaktion nicht vollständig (dh die Auswirkungen, die technische Schulden auf unsere Codebasis, unsere Kunden, unser Team und unser Geschäft haben) -, kann das Geschäft mit dem Zusammenbruch unseres Unternehmens enden.


Die besten Teams für das Management der Standortzuverlässigkeit arbeiten mit ihrem Budget für die Standortzuverlässigkeit in Bezug auf die verwalteten technischen Schulden. Site Reliability ist ein von Google verbreitetes Konzept. Sie ist dafür verantwortlich, dass die Software in einem "betriebsbereiten" Zustand bleibt. Interessanterweise ist es jedoch nicht das Ziel von Unternehmen wie Google, die Betriebszeit auf 100% zu bringen. Der Grund dafür ist, dass eine Verfügbarkeit von 99,99% ausreicht, damit Google-Produkte für echte Nutzer äußerst zuverlässig sind. Und diese letzten 0,01% sind exponentiell schwer zu erreichen, und es macht einfach keinen Sinn, dafür zu kämpfen.


Wenn dies insgesamt 52 Minuten Ausfallzeit pro Jahr ergibt, wird Google versuchen, dieser Zahl so nahe wie möglich zu kommen. Alles, was weniger als 52 Minuten im Jahr dauert, ist jedoch eine verpasste Gelegenheit, zusätzliche Risiken einzugehen und seinen Kunden schnell vielversprechende Funktionen bereitzustellen.


Stellen Sie sich Ihr technisches Schuldenbudget als Budget für die Standortzuverlässigkeit vor. Vorausgesetzt, Sie übernehmen eine angemessene technische Verschuldung und bleiben unter der maximalen Verschuldung, die Sie sich leisten können, bevor dies Auswirkungen auf Ihre Kunden und Ihr Geschäft hat, müssen Sie die Verschuldung erhöhen, um mehr Risiken einzugehen und zu gewinnen ihre Konkurrenten.



Wenn sich Ihre technischen Schulden in der roten Zone befinden, müssen Sie sie teilweise zurückzahlen. Wenn er im grünen Bereich ist, können Sie mehr Risiken und mehr Schulden eingehen. Ihr Ziel ist es, die Höhe der Verschuldung so nahe wie möglich am Idealwert zu halten. wenn Sie an der Spitze des roten Teils des Plans, die perfekten Budget Technische Schulden A ⇒ B. In anderen Worten, wenn Sie in einem hohlen Grün des Diagramms sind, erinnert die ideale Budget C ⇒ B. Nur, dass A ⇒ C - es ist zu Big-Budget-technischen Schulden .


Da die technische Verschuldung gemessen werden kann (wir haben darüber in einem anderen Artikel geschrieben ), handelt es sich nicht nur um ein Konzept, sondern es erfüllt alle praktischen Anforderungen.


So holen Sie das Beste aus Ihrem technischen Schuldenbudget heraus


Sie sollten ein Budget für technische Schulden anstreben, mit dem Sie die maximale Höhe der technischen Schulden erreichen, die Sie sich leisten können. Um dieses Budget zu ermitteln, geben Sie in Ihren Codebasisbereichen an, in welchen Bereichen die technischen Schulden sofort zurückgezahlt werden sollen, dh Schulden, die Ihr Unternehmen daran hindern, seine aktuellen Ziele zu erreichen. Es ist nicht ratsam, zu wenig oder zu viel Schulden zurückzuzahlen.


Andreas Klinger , Remote-Teamkoordinator bei AngelList, erläutert dies in seinem Artikel Refactoring Large Bases of Inherited Code :


Nicht alles muss umgestaltet werden. Wenn dies kein kritischer Teil ist oder wenn in den kommenden Monaten niemand diese Funktionalität verbessern muss oder es einfach zu kompliziert ist, ziehen Sie in Betracht, diesen Ort als technische Schuld zu erkennen.


Kurz gesagt, Ihr Ziel ist es, herauszufinden, wo sich zwei Dinge überschneiden: woran Sie im aktuellen Sprint, Monat oder Quartal arbeiten und welche Teile Ihrer Codebasis technische Schulden enthalten. Zahlen Sie die Schulden im Bereich dieser Kreuzung, aber nicht darüber hinaus.


Und hier ergänzt die Wissenschaft die Kunst. Sie können die Daten verwenden, um Bereiche zu identifizieren, in denen Sie in naher Zukunft technische Schulden begleichen müssen:


  • Markieren Sie Dateien mit schwachem Besitz in Ihrer Codebasis, da der Besitz von Code ein führender Indikator für das Wohlergehen Ihrer Codebasis ist. Mehr dazu in unserem Artikel „Ein Merkmal der Unternehmenskultur, das für das Wohl der Codebasis notwendig ist“ .
  • Messen Sie den Zusammenhalt und die Kopplung für diese Dateien und lassen Sie nur Dateien mit schwachem Besitz, geringer Konnektivität und hohem Gang in der Liste. Weitere Informationen zu diesen Indikatoren finden Sie in unserem Artikel „Verwenden von branchenführenden Studien zur Messung der technischen Verschuldung“ .
  • Berechnen Sie die wiederkehrende Aktivität (Abwanderung) für jede dieser Dateien, um eine Teilmenge der problematischen Dateien zu ermitteln. Laut einer Microsoft-Studie machen aktiv geänderte Dateien nur 2–8% der gesamten Dateien im System aus, machen jedoch 20–40% aller Änderungen aus und sind für 60–90% aller Fehler verantwortlich.
  • Verknüpfen Sie die resultierende Dateiliste mit Ihren vierteljährlichen Plänen. Erfordert eine der in Ihren Plänen aufgeführten Funktionen, dass Sie an einer Teilmenge der von Ihnen beschriebenen Problemdateien arbeiten? Wenn ja, setzen Sie sich Ziele im Zusammenhang mit der Umgestaltung dieser Dateien, bewerten Sie den erforderlichen Arbeitsaufwand und weisen Sie bestimmten Entwicklern Aufgaben zu, vorzugsweise denjenigen, denen die entsprechenden Dateien gehören. Nehmen Sie diese Arbeit in Ihre Pläne auf.

Schauen Sie sich zunächst unsere kostenlose VSCode-Erweiterung an , mit der Sie die dringendsten technischen Schulden ständig überwachen und bezahlen können.


Eingehen einer langfristigen Beziehung mit technischen Schulden


Wir haben diesen datenbasierten Ansatz sowohl in Stepsize als auch in vielen erstklassigen Softwareunternehmen implementiert. Das Thema technische Schulden ist nicht nur jetzt viel klarer geworden, sondern wir wissen auch, wie viel Schulden wir bereit sind, auf uns zu nehmen, und wann bzw. wie wir sie zurückzahlen können. Wir alle denken selten darüber nach, ob wir einen Kompromiss zwischen neuen Funktionen und technischer Verschuldung richtig gewählt haben. Wir haben es geschafft, einen erheblichen Teil der Vermutungen sowie viele Ängste und Befürchtungen, die mit dieser Entscheidung einhergingen, zu beseitigen.


Es ist klar, noch einmal: es ist kein Allheilmittel ist, das verwendet werden kann, und dann einmal im Jahr vergessen. Sie müssen Ihre technische Aufgabe besser kennenlernen. Verfolgen Sie Ihre Fortschritte auf allen Indikatoren jedes Sprints und verbessern Sie den gesamten Prozess, um technisches Wohlbefinden zu erreichen.


Wir haben verschiedene Methoden beschrieben, um die richtige Motivation zu schaffen. Lesen Sie, wie Sie eine Entwicklungskultur pflegen, die auf Eigenverantwortung beruht, und Entwickler ehren, die ihre technischen Schulden zurückzahlen .

Source: https://habr.com/ru/post/de485364/


All Articles