Wir haben eine große Website (über 1200 Stunden) mit vielen technischen Schulden. Dies wird hauptsächlich durch die folgenden (üblichen) Gründe verursacht.
- Mehrere Programmierer, die während der Entwicklung kommen und gehen.
- Änderung der Spezifikationen während der Entwicklung.
- Zahlreiche zusätzliche Funktionen hinzugefügt (in kurzer Zeit).
Der Kunde wünscht sich viele neue Funktionen, und das bedeutet im Grunde, dass er mehr als 10 Stunden wöchentlich an diesem Projekt arbeitet .
Aufgrund der technischen Verschuldung verbringen wir viele Stunden damit, Probleme zu beheben oder zu untersuchen, die normalerweise ihren Ursprung in einer der folgenden Ursachen haben:
- Ein schamloser, alberner Käfer, der die Leute zum Weinen bringt.
- Ein neues Feature führt zu dem oben genannten Ergebnis, da wir nicht alle Stellen vorhergesehen hatten, an denen das neue Feature einen Einfluss haben würde.
- Einige andere Probleme, mit denen wir konfrontiert waren (z. B. Servermigration, Upgrades)
Wir haben täglich Probleme und haben versucht, folgende Dinge zu tun, um dies zu stoppen:
- Erstellung einer technischen Dokumentation zum Import, zur Zahlung und zur allgemeinen Funktionsweise der Website.
- Treffen Sie sich zu Beginn der Woche und besprechen Sie die aktuellen Probleme oder Verbesserungen und wie sie angegangen werden sollten.
- Habe einen Testplan. Programmierer A testet B, B testet C und C testet A. Dann wird unser Projektmanager einige Tests durchführen. In Bezug auf die Auswirkungen der Funktion werfen wir sie auf eine Staging-Umgebung und lassen den Kunden dies selbst überprüfen.
Das Problem ist, dass die Probleme immer wieder auftreten ... und wir es irgendwie nicht in den Griff bekommen können. Neue Funktionen verursachen immer noch Fehler, und alte Fehler sagen immer wieder Hallo. Irgendwie - vielleicht aufgrund der Größe des Projekts - scheinen wir dieses Projekt nicht in den Griff zu bekommen.
Ich gehe davon aus, dass viele Programmierer an größeren Projekten arbeiten. Deshalb komme ich zu meiner Frage:
Was können wir tun oder was tun Sie , um diese Probleme bei großen Projekten zu vermeiden?
Kleinere Änderungen, zusätzliche Informationen:
- Wir verwenden die Versionskontrolle (SVN).
- Wir haben einen DTAP-Entwicklungsprozess.