Diese Frage stelle ich mir oft, wenn ich mit Entwicklern zusammenarbeite. Bisher habe ich in vier Unternehmen gearbeitet und festgestellt, dass es mir an Aufmerksamkeit mangelt, Code sauber zu halten und mit technischen Schulden umzugehen, die zukünftige Fortschritte in einer Software-App behindern. Zum Beispiel hatte die erste Firma, für die ich arbeitete, eine Datenbank von Grund auf neu geschrieben, anstatt etwas wie MySQL zu verwenden, und das hat dem Team die Hölle bereitet, wenn es die Anwendung umgestaltet oder erweitert hat. Ich habe immer versucht, ehrlich und klar mit meinem Manager umzugehen, wenn er Projektionen bespricht, aber das Management scheint nicht daran interessiert zu sein, das zu reparieren, was bereits da ist, und es ist schrecklich zu sehen, wie sich das auf die Moral des Teams auswirkt.
Was denken Sie über den besten Weg, um dieses Problem anzugehen? Was ich gesehen habe, sind Leute, die packen und gehen. Das Unternehmen wird dann zu einer Drehtür, in der Entwickler ein- und aussteigen und den Code verschlimmern. Wie teilen Sie dies dem Management mit, damit es Interesse daran hat, technische Schulden auszuräumen ?
quelle
Antworten:
Als ich mich mit meinem Chef traf, um dies zu besprechen, sagte er, ich solle das Refactoring in alle meine Schätzungen einbeziehen. Er sagte, dass es kein Problem ist, über das er nachdenken möchte. Stattdessen sollte ich damit umgehen.
Dies ist kein Problem, über das das Management im Allgemeinen nachdenken möchte. Sie sind nicht die Ingenieure, Sie sind. Machen Sie dies einfach zu einem unausgesprochenen Teil Ihrer Schätzungen, und Sie werden feststellen, dass die technische Verschuldung abnimmt.
Es wird jedoch niemals perfekt sein. Technische Schulden sind wie Kreditkartenschulden eine Investition, um Kunden schneller zu erreichen und schneller Marktanteile gegenüber Wettbewerbern zu gewinnen. Wie Kredit, wenn es richtig gehandhabt wird, kann es Sie ziemlich erfolgreich machen.
quelle
Es ist, wie Gandhi sagte, als er gefragt wurde, ob seine Taktik mit jemandem wie Hitler funktionieren würde. Er sagte: "Es wäre schwierig." Aber ich denke, es gibt ein faires Argument, dass die Antwort wirklich "Nein" ist. Leider glaube ich nicht, dass das, was Sie versuchen, getan werden kann. Ich versuche nicht, pessimistisch zu sein, sondern ehrlich zu sein.
Das Problem für mich ist nicht, dass Manager überzeugen müssen. Die Besseren verstehen bereits, dass Schulden ein Mörder sein können, wenn sie nicht verwaltet werden. Aber ob sie es verstehen oder nicht, ob sie gute Manager oder schlechte sind, sie alle stehen unter dem Druck zu liefern, und diese Lieferung wird von ihren Chefs gegen ein Datum beurteilt. Qualität ist nur dann wichtig, wenn sie extrem schlecht ist. In diesem Fall ist es die Schuld der Entwickler. Qualität muss nur "gut genug" sein.
Ich finde es gut, was Renesis in seiner Antwort gesagt hat, weil es eines der wenigen ist, das versteht, dass das Management ganz anders denkt als das Ingenieurwesen. Und ich denke, wir haben alle gesehen, wie sich Unternehmen zu datumsorientierten und projektgesteuerten Unternehmen entwickelt haben, im Gegensatz zu kunden- und qualitätsorientierten Unternehmen. Damit meine ich typische Unternehmen, nicht die wirklich tapferen, die den Mut haben zu sagen: "Es wird erledigt, wenn es erledigt ist" (wie Apple Computer oder id Software - und ja, ich verstehe, dass Menschen manchmal nicht frei sind diesen Ansatz verfolgen).
Aber hier ist die Sache: Unternehmen, die den Quality-First-Ansatz verfolgen ... was fällt Ihnen an ihnen auf? Richtig, sie werden von Ingenieuren geleitet, nicht von Verkäufern, Marketingfachleuten, Projektmanagern oder Buchhaltern. Denken Sie an HP, Apple, ID, Google, Microsoft und IBM. Alles begann und wurde von Ingenieuren erfolgreich gemacht, nicht von Verkäufern, obwohl Verkäufer sicherlich eine Rolle spielten, und ich bin sicher, dass viele darüber diskutieren würden, ob Microsoft mit Qualität in Verbindung gebracht wird :). Und von diesen entkamen diejenigen, die bergab gingen, der ingenieurgetriebenen Führung. Diese Aussage enthält jedoch eine ganze Reihe von Argumenten, da es viele technische Unternehmen gibt, die letztendlich daran gescheitert sind, dass sie sich nicht an veränderte Zeiten anpassen und ihr eigenes Wachstum steuern können. Ich sehe die ingenieurbasierte Führung nicht als Ursache für diese Misserfolge. ' Es geht um Fähigkeiten und Geschäftssinn, die unabhängig davon sind, ob jemand Entwickler oder Buchhalter ist. Generell glaube ich jedoch, dass das Ingenieurwesen den strengen Anforderungen an Rechenschaftspflicht und Disziplin verpflichtet ist, von denen Unternehmen profitieren, in denen das Ingenieurwesen eine Komponente darstellt.
Im Ernst, sieh dich um. Es fehlt dringend die IT-Führung. Der Fokus liegt immer auf Kosten und Zeit und selten auf Qualität, solange dies gut genug ist. IT-Verantwortliche berichten selten mehr an den CEO, jetzt ist es immer der CFO. Die IT-Abteilung bleibt bei der Produktionsunterstützung hängen und ist zunehmend den Projektmanagern verpflichtet, deren Fokus auf kleineren, besser verdaulichen und messbaren Stücken liegt, nicht auf wesentlichen Veränderungen des revolutionären Werts (nicht dass dies notwendigerweise falsch ist; Teilen und Erobern ist eine gute Sache, aber die Vision muss für das große Ganze da sein).
Tut mir leid, dass ich so lange auf diesen Beitrag gewartet habe, aber am Ende denke ich, dass Ihre Frage, wie das Management sich um technische Schulden kümmern soll, oft besser gelöst wird, indem Sie den richtigen Leiter finden, als den vorhandenen zu ändern. Technische Schulden gegenüber Standarddenkern zu erklären, bedeutet, wie Renesis sagte, den Fokus auf Geld und Kosten zu verlagern. Selbst wenn Sie damit erfolgreich wären, wäre es nur wichtig, wenn der Top-Leader des Unternehmens es kauft. Wenn Sie Ihren mittleren Manager davon überzeugen, das Richtige zu tun, wird er wahrscheinlich nur gefeuert.
quelle
Als Erstes müssen Sie den Wortlaut ändern. Wenn man es "technische Schulden" nennt, entsteht für das Management die Idee, dass es sich um eine Investition handelt - wenn es sich wirklich eher um einen Virus handelt. (Ich bin wie der Dave Ramsey von technischen Schulden.)
Wenn Sie zulassen, dass es unbezahlt bleibt, entstehen enorme Kosten, die nicht leicht zu sehen oder zu beziffern sind.
Listen Sie Probleme wie die folgenden für die Verwaltung auf:
quelle
Mein Management hat tatsächlich ernsthafte Anstrengungen unternommen, um technische Schulden abzubauen, was einer der Gründe ist, warum ich gerne dort arbeite, aber es ist eine langfristige Anstrengung und es tut nie weh, sie daran zu erinnern, warum sich die Anstrengung lohnt.
Eine Möglichkeit, den Druck aufrechtzuerhalten, besteht darin, wann immer ich nach einem Kostenvoranschlag gefragt werde, und Zeit zu sparen, wenn ich mich nicht mit bestimmten technischen Schuldenproblemen befassen müsste. Ich beziehe dies in meinen Kostenvoranschlag ein . Zum Beispiel: " Es dauert 2-3 Tage, bis ich diesen Fehler gefunden habe, aber wenn wir bereits zwei andere Fehler mit niedriger Priorität behoben hätten, die schon immer in der Warteschlange standen, würde es wahrscheinlich weniger als einen dauern. " Die Antwort wird darin bestehen, die anderen zu reparieren, während Sie gerade dabei sind.
Ich bin auch mit anderen Antworten einverstanden, wenn es darum geht, Verbesserungen nur als Teil Ihrer Arbeit zu betrachten und sie zu erledigen, wenn dies nicht zu störend ist. Meine derzeitige Aufgabe besteht darin, einen sehr schlecht gestalteten Code zu ergänzen. Anstatt das Chaos zu vergrößern, indem ich meinen neuen Code entsprechend schreibe, verbringe ich ein wenig Zeit damit, die allgemeinen Funktionen zu konsolidieren, sodass das Senden eines Pakets zu einem einzeiligen Funktionsaufruf wird, anstatt ständig 15 Zeilen leicht modifizierter Copy-and- Heizplatte einfügen.
Ich weiß, dass es den Verstand eines Betreuers weiter unten retten wird. Ich weiß es, weil ich heute der Betreuer bin. Ich glaube jedoch auch, dass es meine derzeitige Aufgabe beschleunigen wird, dieses Feature zu integrieren und jetzt zu debuggen.
Eine andere Technik, die ich in der Vergangenheit angewendet habe und die ich noch einmal anwenden sollte, besteht darin , einen umgestaltenden DVCS-Zweig in einem separaten Arbeitsbaum zu speichern , während Sie kompilieren, auf einen langen Test warten oder einfach eine Änderung der Geschwindigkeit benötigen ein bisschen, wenn Sie auf einen Fehler ausgebrannt sind. Solange Sie gelegentlich vom Upstream aus zusammengeführt werden, damit Sie nicht zu weit auseinander gehen, können Sie mit sehr geringem Aufwand so lange wie gewünscht Änderungen überarbeiten. 15 Minuten hier und da pro Tag können sich im Laufe der Zeit wirklich summieren.
quelle
Sie könnten die Kreditkarten-Analogie ausprobieren. Fragen Sie sie: "Fühlen Sie sich wohl, wenn Sie Ihre Kreditkartenabrechnungen über einen längeren Zeitraum unbezahlt lassen?"
Manager verstehen Kosten und Nutzen, aber (normalerweise) nicht die technischen Begriffe, die von uns Entwicklern verwendet werden. Der Begriff "technische Schulden" wurde bereits erfunden, um diese Kommunikationsbarriere zu überwinden. Möglicherweise müssen Sie ihn jedoch klarer formulieren. Die meisten Manager wissen sehr gut (oft aus eigener Erfahrung), dass überfällige Kreditkartenzahlungen mit einem schrecklichen Zinssatz wachsen, so dass es weh tut , sie unbezahlt zu lassen. Dies kann ihnen helfen, die Schwere des Problems in Bezug auf Software-Entropie zu erkennen.
Aber wenn dies sie nicht überzeugt, versuchen Sie, sachliche Beweise zu sammeln und einige Berechnungen anzustellen. Wie viel kostet es das Unternehmen - sowohl in bar als auch in Form von Zeitverlust -, einen ausscheidenden Mitarbeiter zu ersetzen?
quelle
Niemand wird Geld dafür geben, etwas zu ersetzen, das mit etwas anderem funktioniert, das (mit etwas Glück) auch funktioniert.
Was Sie tun können, ist vorzuschlagen, es durch etwas zu ersetzen, das mehr bewirkt, dh die Bedienung von technologischen Schulden in einem Upgrade zu bündeln, das sofortige und greifbare Geschäftsvorteile bringt.
Natürlich sollten Sie offen darüber sein, wir sprechen hier nicht davon, es in ein neues Projekt zu "schleichen".
Ich finde die andere Seite, die der Entwickler, schwieriger zu handhaben. Im Grunde läuft es darauf hinaus: Für einige Entwickler ist es eine Frage des professionellen Stolzes, sicherzustellen, dass Ihr Code der bestmögliche Code ist, den Sie entwickeln können. Für andere ist dies nur ein weiterer Job und das Ziel ist es, ihn schnell zu erledigen und nach Hause zu gehen.
Keine Überzeugungsarbeit wird diese Situation ändern, und wenn Sie einen verbindlichen Codequalitätsstandard einführen, werden Ihre neun bis fünf Entwickler einen Weg finden, das System zu betreiben, während Ihre engagierten Entwickler sich unweigerlich über das gesamte Verfahren ärgern werden (was nicht der Fall ist) Sie zielen nicht auf sie, aber Sie können nicht sagen, dass Entwickler X die Regeln einhalten muss, während Y tun kann, was er will.
Was funktioniert, aber dennoch sehr frustrierend sein kann, ist, dass Ihre engagierteren und sachkundigeren Entwickler die Codebasis überwachen. Dies ist wahrscheinlich ein guter Kompromiss zwischen der Weiterentwicklung und dem Aufräumen der vorhandenen Ressourcen.
quelle
Tatsache ist, dass in vielen Unternehmen, insbesondere in Anbetracht der aktuellen Wirtschaftslage, jede Stunde an jemanden abgerechnet werden muss.
Oder sie gehen schnell unter .
Es sei denn, die bestehenden Kunden sind bereit, für das Refactoring zu zahlen. Dies ist äußerst unwahrscheinlich, es sei denn, die Leistung oder die Funktionen wurden erheblich verbessert. Dann wird es auf den älteren Codebasen nicht passieren. Sie können es möglicherweise in das Budget für neuere Projekte einschleichen, wenn die Kunden über tiefe Taschen verfügen. Wenn Sie jedoch die APIs im Refactoring nicht ändern müssen, ist es für ältere Projekte nicht von Nutzen und führt möglicherweise ein Situation, in der das Unternehmen zwei Codebasen unterstützt, was weitere Kopfschmerzen und Kosten verursacht.
Als Ingenieur würde ich gerne den alten Code überarbeiten, der nicht mehr für den eigentlichen Zweck geeignet ist, jedes Mal, wenn etwas veraltet oder veraltet ist. Aber wie meine MDs in allen Unternehmen, in denen ich jemals gearbeitet habe, zu mir gesagt haben: "Wer wird bezahlen?"
quelle
Ich versuche immer aufzuräumen, während ich gehe. Ich bin nicht fertig, bis der Code sauber ist. Das Problem mit der technischen Verschuldung ist, dass die meisten Menschen es nicht verstehen. Der beste Weg, dies in Angriff zu nehmen, ist, nichts davon anzusammeln. Wenn Ihre Manager Ihren Entwicklern vertrauen, um zu entscheiden, wie ein Problem gelöst werden soll, können Sie die Codehygiene zu einem Teil jeder Programmieraufgabe machen. Wenn Sie nie einen schlechten Code einchecken, sammeln Sie keine Schulden an. Wenn Sie auch die Pfadfinder-Regel befolgen (lassen Sie den Code immer sauberer, als Sie ihn vorgefunden haben), werden Ihre bestehenden Schulden langsam verschwinden.
Ich sehe Refactoring nicht als eine Aufgabe, die von der Implementierung von Features getrennt ist. Es ist ein wesentlicher Bestandteil davon.
quelle
Wenn Sie mit nicht-technischen Managern zu tun haben, ist es hilfreich, wenn Sie Ihre Diskussion in Begriffe umwandeln können, die sie verstehen. Wenn Sie einen realistischen Fall für einen positiven ROI der für die Tilgung der technischen Schulden aufgewendeten Arbeit aufstellen können, könnten Sie irgendwohin gelangen. Diese Übung hängt von Ihren Umständen ab, aber ein Beispiel könnte etwa so aussehen:
Analysieren Sie, wie viel Zeit Entwickler für die Unterstützung des Supports bei Produktionsproblemen aufwenden müssen, und stellen Sie dann fest, dass das Beheben von altem Code die Anzahl der Supportprobleme verringern würde C. Reduzieren Sie die Zeit, die die Entwicklung für Produktionsprobleme benötigt, wenn diese auftreten. Sagen wir es in Dollar, die gespart werden, wenn die Entwickler nicht mit Supportarbeiten beschäftigt sind. Weisen Sie auch darauf hin, dass jede Stunde, die ein Entwickler für Support ausgibt, ein "Doppelschlag" ist, da Sie nicht nur einen Entwickler für Support bezahlen, sondern auch die Opportunitätskosten für das verbrauchen, was dieser Entwickler tun könnte (Hinzufügen neuer Funktionen usw.) .)
Ja, einige der Zahlen werden Voodoo / Rauch und Spiegel sein ... das ist in Ordnung, das schmutzige Geheimnis des Managements ist, dass sie wissen, dass die Mehrheit der Zahlen, um die sie sich drehen, total BS sind, solange Sie ihnen etwas geben scheinbar konkret, damit sie es in den Kopf bekommen können, haben Sie eine Chance zu kämpfen.
quelle
Nach dieser Erklärung der technischen Schulden sollte Ihr Management davon überzeugt sein, sie zurückzuzahlen:
Die Küche ist Ihr Code, das Essen ist Ihr Produkt und das Essen verkauft Ihr Produkt.
Wenn sie es sich leisten können, ohne ein sicheres Netz von Komponententests länger auf die Implementierung einer Änderung zu warten, dann stimmt etwas in Ihrem Unternehmen nicht.
quelle
Es muss ein sehr überzeugendes Argument in Bezug auf das ursprüngliche Produkt und den Geschäftsfall sein, dass ich dieses Geld jetzt nicht verwenden kann, um etwas Wichtigeres für mich zu tun. Ob es Ihnen gefällt oder nicht, Ihr Management oder Ihre Kunden zahlen dafür und Sie müssen verkaufen können, um sie zu überzeugen.
Lassen Sie uns dies umformulieren, um sich als Kunde zu positionieren. Gutes altes Rollenspiel.
Was würden Sie als Kunde selbst kaufen?
Und was halten die Ingenieure von Acme Deluxe für die bessere Antwort?
quelle
" Technische Schulden " können ein heikles Thema sein, um dem Management präsentiert zu werden, da sie die Notwendigkeit möglicherweise nicht erkennen. Die Frage könnte lauten, ob es in der Firma einen Champion gibt, der feststellt: "Schauen Sie, wir nehmen uns X% Zeit, um hier an der technischen Verschuldung zu arbeiten. Geben Sie uns 3 Monate, um Ihnen zu zeigen, dass dies gut funktioniert." ähnlich. Es gibt dort einen Anspruch auf Autonomie, aber auch einen Zeitrahmen, da sich das Management sonst fragen könnte, wie lange es dauert, bis es einige Ergebnisse sieht, was ein ziemlich gefährliches Gebiet darstellt.
Der erste Punkt ist jedoch, ob sie dies als Problem ansehen oder nicht. Wenn die sehbehinderte Person nichts über Brillen weiß und welche Art von Veränderungen sie bewirken kann, wie sollen sie dann verstehen, warum ein Sehtest wertvoll sein kann? Gleiche Idee hier, wo das Thema eher technisch und leider nicht leicht zu quantifizieren ist.
quelle
Sie sollten einfach aufhören, sich darüber zu beschweren.
Hier ist der Grund:
Der beste Weg ist also:
quelle
Ich nehme an, Sie waren noch nie in ein Projekt involviert, um ein bestehendes System neu zu schreiben / zu ersetzen oder sogar zu aktualisieren.
Dies sind einige der schwierigsten Projekte, die erfolgreich abgeschlossen werden können. Einige der Probleme, denen Sie begegnen werden, sind:
Ich fordere Sie dringend auf, keine Re-Writes / Refactoring-Projekte wie die Pest zu vermeiden. Sie können einige der entmutigendsten Erfahrungen in einer professionellen Karriere sein.
Es steckt viel Weisheit in dem Satz "Wenn es nicht kaputt ist, repariere es nicht".
quelle
Für das Leben von mir kann ich nicht verstehen, warum manche Menschen so blind Angst vor Veränderungen haben - es schmeckt nach mangelndem Vertrauen in Ihre eigenen Fähigkeiten.
Ich habe letzte Nacht eine Show im Yosemite National Park gesehen und es wurde bemerkt, dass von 1940 bis Ende der 1990er Jahre kein einziger neuer Sequoia-Baum spross. Es wurde herausgefunden, dass der Grund dafür war, dass es strikte Richtlinien gegen das Verbrennen von Waldbränden gab und dass Sequoia-Tannenzapfen die Hitze des Feuers benötigten, um ihre Samen zu öffnen und freizusetzen.
Sie sehen, ein Feuer alle zehn Jahre oder so war gesund. Es räumte alles angesammelte Totholz und Brombeerholz ab, um die vorhandenen Bäume gesund zu erhalten (Prozesse) und Platz für neue zu schaffen (Features).
Ich bin gerade in einem Projekt, bei dem ein klarer Fall für eine Neuerstellung vorliegt: Die Legacy-Software wurde vollständig mit .NET-Webforms geschrieben. Fast die gesamte Geschäftslogik ist mit der HTML / Server-Tag-Ansichtslogik kombiniert und kann jetzt, da das Geschäft gewachsen ist, nicht auf andere Anwendungen ausgeweitet werden.
Das Management steht hinter der Aufgabe, weil sie ein angemessenes Maß an Vertrauen in ihre Entwickler haben, was, wie ich sehe, ein seltener Luxus ist.
Ja, fragen Sie sich, ob ein Umbau wirklich notwendig ist. Geben Sie Ihr Bestes, um vorhandenen Code wiederzuverwenden, der funktioniert, wo Sie können. Integrieren Sie diesen Code bei Bedarf in die Neuerstellung. Lassen Sie sich nur nicht davon überzeugen, dass es die einzige Möglichkeit ist, als Softwareentwickler zu existieren, wenn Sie Angst davor haben, mutige Änderungen vorzunehmen.
Viel Glück!
quelle
Sie müssen Ihrem Management einen finanziellen Grund für den Umgang mit technischen Schulden und einen Rahmen für die Verwaltung des Abbaus dieser technischen Schulden geben.
Die Aufrechterhaltung eines technologischen Fahrplans ist ein solcher Rahmen. Wenn Sie mit einer Roadmap beginnen, können Sie nicht nur die technischen Schulden anhäufen, sondern auch die bestehenden Schulden reduzieren.
Viele erfolgreiche langfristige Projekte haben Lenkungsausschüsse und Roadmaps, die die Entwicklung leiten. Diese sind besonders hilfreich, wenn mehrere Entwicklungsteams und Interessengruppen beteiligt sind.
Mein Vorschlag ist, dass Sie diese Strategie mit Ihren Managern besprechen (und wenn möglich mit denen, die entscheiden, wo Geld ausgegeben wird).
Die allgemeine Vorgehensweise beim Erstellen und Verwalten einer Roadmap ist unkompliziert, erfordert jedoch die Unterstützung Ihres Managementteams. Definieren Sie zunächst ein Ziel. Definieren Sie die Elemente der technischen Verschuldung und entwickeln Sie eine Zielsystemarchitektur, die die Elemente Ihrer technischen Verschuldung reduziert. Denken Sie daran, es muss nicht perfekt sein, sondern nur funktionieren und besser als das, was Sie gerade sind. Berücksichtigen Sie Software, Entwicklungstools, Hardwareplattformen und wichtige neue Funktionen, die dem System hinzugefügt werden können. Führen Sie eine Kostenanalyse durch. Wenn Sie über die gewünschte Architektur verfügen, welche konkreten Vorteile bietet das Refactoring? (Zu den Vorteilen gehören kürzere Testzeiten, zuverlässigere Softwareprodukte, vorhersehbarere Entwicklungszyklen usw.) Wenn Sie genügend Vorteile für die Durchführung von Refactoring nachweisen können, erhalten Sie Unterstützung durch das Management.
Wenn Sie eine Roadmap und Managementunterstützung haben, entwickeln Sie eine Reihe von Schritten (auch Plan genannt), die Sie ausführen müssen, um in den gewünschten Zustand zu gelangen. Es kann eine gute Idee sein, einen Lenkungsausschuss zusammenzustellen, der die Roadmap verwaltet, die Entwicklungsteams auf der Roadmap schult und schult und Änderungen regelmäßig auf ihre architektonische Integrität überprüft.
Roadmaps sind wirklich nützlich, und vielleicht sollte die 13. Frage zum Joel-Test lauten: "Haben Sie eine Roadmap?"
Hier ist ein Video der ersten Stunde einer aktuellen Red Hat Linux-Roadmap-Sitzung .
quelle
Nachdem ich bereits an einer umfassenden Überarbeitung (nicht nur der Überarbeitung) beteiligt war, kann ich zustimmen, dass es eine der größten Hürden war, die Finanzleute dazu zu bringen, dem Projekt zuzustimmen. Um diese Hürde zu überwinden, musste ich einen Bericht verfassen, vorlegen und verteidigen, der auf eine Reihe von Problemen hinwies, die bedeuteten, dass das Geschäft des Unternehmens kurz- bis mittelfristig zum Erliegen kommen würde.
Schlüsselfaktoren für die Vereinbarung:
In dem Bericht wurden die Probleme mit Schätzungen der laufenden Kosten detailliert beschrieben und drei Optionen angeboten:
Nachdem ich den Startschuss für die 3. Option gegeben hatte, wurde mein 3-Monats-Vertrag zu 3 Jahren harter Arbeit, sowohl bei der Entwicklung der neuen Software als auch der Hardware, aber mit einem sehr guten Ergebnis.
Für Fälle mit weniger extremer technischer Verschuldung neige ich dazu, das anzunehmen, was ich Guerilla-Refactoring nenne:
Wenn es ein Problem mit einem bestimmten Modul gibt:
quelle