Ich werde wirklich stumpf sein ...
- Sind Sie verantwortlich für die Entwickler in diesem Job?
- Sind Sie der Projektleiter?
- Wie viel "Anteil" halten die Entwickler an dem Projekt?
- Was ist Ihre geschäftliche Rechtfertigung für ein Umschreiben?
- Was ist mit der Codebasis, die sie völlig unbrauchbar und nicht wiederherstellbar macht?
Sie haben angegeben, dass Sie gerade einen Job angefangen haben, und dennoch scheinen Sie ein Meister der Situation dort zu sein. Vielleicht habe ich die Absicht Ihrer Frage falsch verstanden, aber ich habe den Eindruck, dass Sie einen Job angetreten haben, bei dem Sie eine Reihe von Problemen sehen, und Sie sind zu der einfachsten Schlussfolgerung gelangt, in der der Code gebrochen ist und der einzige Weg in die Zukunft ist eine Umschreibung, aber haben Sie wirklich die Kosten für Ihren Arbeitgeber in Betracht gezogen, um dies zu tun?
Mit jeder vorhandenen Codebasis - egal in welchem schlechten Zustand sie sich befindet - hat der Eigentümer normalerweise eine beträchtliche Investition in die Produkte, die der Code darstellt. Mit der Codebasis sind sowohl direkte als auch indirekte Kosten verbunden. Als Softwareentwickler ist ein erneutes Schreiben oft das Letzte, was Sie tun möchten, da Sie das Risiko eingehen, Ihre Codebestände zu entwerten und somit eine geringere Rendite für alle vorherigen zu erzielen Bemühungen.
Nehmen Sie das Betriebssystem des Fensters als Beispiel. Mit jeder neuen Version wurde ein großer Teil des Codes aus der vorherigen Version übernommen. Manchmal werden ganze Bibliotheken und APIs über mehrere Betriebssystemgenerationen hinweg verschoben. Warum? Weil die Entwickler wissen, dass diese Elemente funktionieren, getestet, gepatcht und repariert wurden, um Sicherheits- und Speicherprobleme zu vermeiden, und weil sie verdammt viel Geld gekostet haben, um in diesen Zustand zu gelangen. Niemand möchte Arbeitscode wegwerfen, wenn er Geld verdient, auch wenn die Wartungskosten relativ hoch sind, die Kosten für den Neuanfang immer noch höher sind und in einem Unternehmen wie Microsoft Milliarden auf der Bank haben erlaube ihnen, von vorne zu beginnen, wenn sie wollen, aber sie tun es nicht t weil sie ihre Rendite aus ihrer Investition maximieren wollen. Ihr Arbeitgeber unterscheidet sich nicht von Microsoft, mit Ausnahme der Tatsache, dass Sie Milliarden in bar für ein Projekt ausgeben müssen.
Der Code ist also ein Chaos, und es scheint, als gäbe es Kommunikations- und Grenzprobleme zwischen den verschiedenen Bereichen des Unternehmens. Was können Sie oder Ihre Kollegen dagegen tun?
Eine Möglichkeit ist, einfach so weiterzumachen wie bisher und auf ein Wunder in der Zukunft zu hoffen. Wahrscheinlich keine gute Idee, und wahrscheinlich nur Ihre Frustration und Stress zu erhöhen.
Eine bessere Option ist es, sich einfach an die Arbeit zu machen, aber als Teil davon suchen Sie nach Möglichkeiten, Tests hinzuzufügen, um die Bereiche des Codes zu unterstützen, die am anfälligsten erscheinen, und sie dann zu überarbeiten, bis sie stabiler werden. Es fällt Ihnen leichter, ein überzeugendes Argument für die Verbesserung der Unternehmensinvestition vorzulegen, als sich zu streiten, alles einfach wegzuwerfen.
Eine noch bessere Option ist es, als Team organisiert zu sein und sicherzustellen, dass Sie jemanden mit einem ausreichenden Dienstalter an die Seite bekommen, der es dem Team ermöglicht, flexibler Zeit zu planen, um die Codebasis zu verbessern. Es ist mir egal, wie beschäftigt ein Unternehmen ist oder wie streng der Zeitplan zu sein scheint, es gibt immer wieder "Pausen" in der Aktivität, die genutzt werden können, um ein oder zwei Verbesserungen zu erzielen. Es ist jedoch noch besser, wenn die Verbesserungen während der Ausführung anderer Aufgaben vorgenommen werden können. Wenn ich es wäre, würde ich mich mit einem Manager anfreunden und ihn mit Konzepten in einigen der kanonischen Bücher bekannt machen, die Softwareentwickler lesen. Code bereinigenist wahrscheinlich die, die Ihr Team am meisten braucht. Pflanzen Sie ein paar Punkte ein, um den Code zu verbessern, und geben Sie ein paar Beispiele dafür, was Sie meinen. Ein guter Manager wird den Wert erkennen, inkrementelle Verbesserungen am Code vorzunehmen, insbesondere wenn Sie das Konzept der technischen Verschuldung beschreiben können . Helfen Sie Ihrem Teamleiter oder Manager, ein gutes Geschäftsmodell für die Verbesserung von Code zu erstellen, und er hat eine bessere Motivation, darauf zu reagieren.
Es ist auch nicht genug zu sagen "der Code ist unordentlich". Sie müssen Ihre Kollegen dazu ermutigen, die Codierung die ganze Zeit über zu üben und saubere Codierungstechniken zu verwenden, um ein wenig Aufräumen zu fördern. Ich habe ein kleines Plakat, das ich jedes Mal, wenn ich einen neuen Job annehme, ausdrucken und an meiner Bürowand aufhängen kann. Es heißt "Bemühe dich immer, den Code ein wenig schöner zu lassen, als du ihn gefunden hast". Gleich daneben füge ich ein weiteres hinzu, das besagt "Lilien müssen nicht vergoldet werden". Sie erinnern mich beide daran, dass ich immer versuchen sollte, das zu verbessern, was ich finde, aber vermeiden, einfach ein Problem mit dem anderen zu vergolden. Massive Rewrites sind oft die schlechteste Art der "Vergoldung", weil sie oft aus den falschen Gründen durchgeführt werden. Sicher, eine völlig neue Produktversion könnte irgendwann gerechtfertigt sein.