Widziałem projekty, w których zmianami wymagań zarządza bardzo ciężki system kontroli zmian. To jest złe. Wiele ważnych zmian się nie dzieje, ponieważ klient nie chce przechodzić przez kłopot ze złożeniem kontroli zmian, więc oprogramowanie nie spełnia ich potrzeb. Niektóre niewielkie zmiany są wprowadzane „pod radarem”, aby uniknąć tego procesu, więc oprogramowanie nawet nie pasuje do tego, co myślisz.
I odwrotnie, widziałem również projekty, w których kierownik projektu uważa, że „reaktywny” oznacza zmuszenie programistów do odpowiedzi na każde żądanie od użytkowników, co oznacza po prostu, że nigdy nie wykonasz żadnego rdzenia programistycznego, a twój kod stanie się wielkim nieporęcznym bałaganem na szczycie włamać się. Zasadniczo teraz nie masz żadnych programistów, masz zespół nadmiernie wykwalifikowanych inżynierów sprzedaży.
Można więc mieć nadzieję, że sytuacja między tymi dwoma biegunami działa dobrze, i spodziewam się, że to, co działa najlepiej dla ciebie, jest zarówno osobistym wyborem, jak i położeniem. Zdecydowanie warto uchwycić koszt każdej zmiany. W ramach takich jak Scrum możesz wyrazić koszty w punktach fabularnych, a zespół może oddać pracę wykonaną w każdej iteracji w stosunku do całkowitego dostępnego wysiłku. Jeśli masz menedżera produktu, możesz poprosić tę osobę o oszacowanie oczekiwanej korzyści z żądania zmiany lub funkcji. Zwykle odbywa się to w kategoriach chronionych dochodów (ilu klientów odejdzie, jeśli tego nie zrobisz) i przyciąga przychody (ilu klientów przyjedzie, jeśli to zrobisz). Może to pomóc w ustalaniu priorytetów, ale może również odzwierciedlać uprzedzenia lub osobiste preferencje menedżera produktu.