Versteh ich nicht, wir machen das neu

Viel zu oft wird, aufgrund mangelnden Verständnis der aktuellen Funktion und Struktur von Software, nach einer neuen Implementierung gerufen. Dabei wird oft nicht objektiv beurteilt, ob dieses das richtige Vorgehen ist.

  • Oft ist nicht klar, welchen Funktionsumfang die alte Software hat. Daher sind vermeidliche Ungereimtheiten im Code eigentlich der Use Case.
  • Bei der Neuimplementierung werden die Edge-Cases ignoriert, oder nicht erkannt. Diese werden dann zum Schluss schnell, und genauso wenig sauber implementiert.
  • Während der Neuimplementierung fallen vergessene Funktionen auf, diese Zeiten werden bei der Aufwandsschätzung nicht bedacht.
  • Der aktuelle Code existiert, funktioniert. Bei einer neuen Implementierung müsse die Altsysteme mit ihren bestehenden Daten migriert werden, was oft vernachlässigt wird.
  • Der Entwickler möchte lieber eigenen Code schreiben, statt fremden zu verstehen. Oder der Entwickler bevorzugt eine andere Programmiersprache.
  • Für ein Refactoring müssten erst mal Tests erstellt werden, das ist für Code eines anderen aufwendig. Bei der eigenen Implementierung wird aber dann auch kein Schwerpunkt auf die Tests gelegt. Dadurch ist der neue Code direkt Legacy-Code. Das neue Produkt ist faktisch genauso gut/schlecht wie das alte.
  • Der Entwickler glaubt, dass er es besser kann, ohne die vorangegangen Punkte objektiv zu bewerten.

Daher könnte es besser sein

  • Den existierenden Code mit einer Dokumentation und Tests zu versehen.
  • Durch partielles Refactoring Altlasten und alte Dependencies zu entfernen.

Article relase date: / Last update: