Ich habe Projekte gesehen, bei denen Anforderungsänderungen von einem sehr schweren Änderungskontrollsystem verwaltet werden. Das ist schlecht. Viele wichtige Änderungen finden nicht statt, da der Kunde nicht die Mühe machen möchte, eine Änderungskontrolle einzureichen, sodass die Software nicht seinen Anforderungen entspricht. Einige kleine Änderungen werden "unter die Lupe genommen", um den Vorgang zu vermeiden, sodass die Software nicht einmal Ihren Vorstellungen entspricht.
Umgekehrt habe ich auch Projekte gesehen, bei denen der Projektmanager der Meinung ist, dass "reaktiv" bedeutet, dass die Programmierer auf jede Anfrage der Benutzer reagieren. Dies bedeutet lediglich, dass Sie niemals eine Kernentwicklung durchführen und Ihr Code zu einem großen, unhandlichen Durcheinander von Hack-Attacken wird hacken. Im Grunde haben Sie jetzt keine Entwickler mehr, Sie haben ein Team von überqualifizierten Vertriebsingenieuren.
Man könnte also hoffen, dass es eine Situation zwischen diesen beiden Polen gibt, die gut funktioniert, und ich gehe davon aus, dass das, was für Sie am besten funktioniert, sowohl eine persönliche Entscheidung als auch eine Standortbestimmung ist. Es ist auf jeden Fall sinnvoll, die Kosten jeder Änderung zu erfassen. In einem Framework wie Scrum können Sie die Kosten in Story-Punkten ausdrücken, und das Team kann die in jeder Iteration geleistete Arbeit gegen den insgesamt verfügbaren Aufwand austauschen. Wenn Sie einen Produktmanager haben, kann dieser den erwarteten Nutzen einer Änderungs- oder Funktionsanforderung quantifizieren. Dies geschieht normalerweise in Bezug auf geschützte Einnahmen (wie viele Kunden würden gehen, wenn Sie dies nicht tun) und angezogene Einnahmen (wie viele Kunden werden ankommen, wenn Sie dies tun). Dies kann bei der Priorisierung hilfreich sein, kann aber auch nur die Vorurteile oder persönlichen Vorlieben des Produktmanagers widerspiegeln.