Diese Woche bei der Arbeit wurde ich wieder agiler . TDD, Shared Ownership, Ad-hoc-Entwicklungsmethode, bei der nie etwas anderes als ein paar User-Stories auf einer Karte geplant wurden Denken oder Sorgfalt und die architektonische Kopplung des gesamten Produktionscodes an den ersten Test, der in den letzten Monaten in den Kopf geraten ist, erreichen das Ende eines Veröffentlichungszyklus und siehe da, das Hauptmerkmal, das wir nach außen hin entwickelt haben, ist zu langsam Gebrauch, Buggy, labyrinthisch komplex und völlig unflexibel.
Während dieses Prozesses wurden "Spikes" erstellt, aber nie dokumentiert und es wurde nie ein einziger architektonischer Entwurf erstellt (es gab keinen FS, also was solls, wenn Sie nicht wissen, was Sie entwickeln, wie Sie ihn planen oder erforschen können ?) - Das Projekt ging von Paar zu Paar über, wobei sich jeder immer nur auf eine einzelne User Story konzentrierte und das Ergebnis unvermeidlich war.
Um dies zu lösen, ging ich vom Radar, ging zum (gefürchteten) Wasserfall, plante, codierte und tauschte das Paar im Grunde genommen nicht aus und versuchte so viel ich konnte, alleine zu arbeiten - wobei ich mich auf solide Architektur und Spezifikationen konzentrierte, anstatt auf Unit-Tests, die wird später kommen, sobald alles festgehalten ist. Der Code ist jetzt viel besser und ist tatsächlich vollständig verwendbar, flexibel und schnell. Bestimmte Leute scheinen es mir wirklich übel genommen zu haben, dies zu tun, und haben sich alle Mühe gegeben, meine Bemühungen (möglicherweise unbewusst) zu sabotieren, weil dies gegen den heiligen Prozess der Beweglichkeit verstößt.
Wie erklären Sie als Entwickler dem Team, dass es nicht "unagil" ist, ihre Arbeit zu planen, und wie fügen Sie die Planung in den agilen Prozess ein? (Ich spreche nicht von IPM. Ich spreche davon, mich an ein Problem zu setzen und ein End-to-End-Design zu entwerfen, in dem angegeben ist, wie ein Problem ausreichend detailliert gelöst werden sollte, damit jeder, der an dem Problem arbeitet, weiß, was Architektur und Muster, die sie verwenden sollten, und wo der neue Code in den vorhandenen Code integriert werden soll)