Wir haben "Prioritäts" - und "Schwere" -Felder in unserem Fehlerverfolgungssystem. Wir definieren den Schweregrad als "Auswirkungen auf den Benutzer" und die Priorität als "Auswirkungen auf das Produkt".
Meine Frage bezieht sich darauf, wie eine Aufgabe zur Codeverbesserung nach Schweregrad und Priorität kategorisiert werden kann. Angenommen, die Verbesserung ändert kein Verhalten, macht es jedoch zu einem "besseren Code". Insgesamt erwarten wir eine langfristige Verbesserung der Wartung, die sich jedoch nur schwer quantifizieren lässt.
Wenn wir unsere Definitionen für Priorität und Schweregrad verwenden, erhält eine Codeverbesserung die niedrigsten Werte für beide, es sei denn, Sie bringen einige schwer vorhersehbare langfristige Vorteile in das Bild ein. Daher impliziert dies, dass die Code-Verbesserung eine gefährliche Aufgabe ist und niemals versucht werden sollte.
Ich halte es jedoch für entscheidend, den Code ständig zu verbessern und zu überarbeiten, weil:
- Die Softwareentwicklung selbst ist ein kontinuierlicher Lernprozess, und ohne eine Verbesserung des Codes kann man ihn nicht verbessern.
- Ein Team sollte stolz auf seinen Code sein.
- Zukünftige Wartungsarbeiten werden weniger Zeit in Anspruch nehmen und auf lange Sicht erhebliche Einsparungen bringen.
Oder glauben Sie, dass solche Aufgaben niemals erstellt und solche Verbesserungen nur "auf Anfrage" durchgeführt werden sollten, "wenn sie mit einem Fehler verbunden sind"? Wäre das nicht ein Diskussionspunkt bei einer Codeüberprüfung, auch wenn es sich um einen Fehler handelt, z. B. "Warum haben Sie diese drastische Strukturänderung vorgenommen?".