Edukuj klienta . Chciałbym nie być jednym z twoich klientów;)
Poważnie, rozumiem, że masz kłopoty i uważasz, że problemem jest klient. Może tak jest, ale to nie ma znaczenia. Zmiana klientów jest naprawdę trudna, a zmiana sposobu pracy z nimi jest o wiele łatwiejsza.
Problem polega na tym, że większość klientów nie zdaje sobie sprawy ze wszystkich implikacji związanych z tworzeniem oprogramowania, a Ty nie znasz szczegółów ich działalności.
Tylko jedna mała rzecz:
zmiany nie stanowią problemu w żadnym momencie projektu
„Bez względu na to, jak daleko zaszedłeś niewłaściwą drogą, zawróć”. Przysłowie tureckie
Uwielbiam to przysłowie, więc kiedy mogę go użyć, jestem szczęśliwy. Dziękujemy za możliwość ;)
Oto kilka rozwiązań:
Musisz zapewnić klientowi możliwość zmiany zdania, ponieważ pomoże mu to uzyskać odpowiednie oprogramowanie, które naprawdę odpowiada jego potrzebom. W końcu dostanie więcej pomysłów podczas jego opracowywania.
Masz umowę na stałą cenę, więc myślę, że musiałeś zebrać wymagania, oszacować je i ustalić cenę dla każdego z nich?
Jeśli musisz zbudować nową rzecz, skorzystaj z tego samego procesu: zmienisz umowę o stałej cenie z dodatkowymi wymogami. Zaakceptuj, aby usunąć wymagania, które będą bezużyteczne (oczywiście nie zbudowałeś ich już).
Innym podejściem byłoby dokończenie tego, co zostało zlekceważone (mniej bezużyteczne i nieopracowane wymagania) jako wersji 1, i negowanie wersji 2 z jej nowymi pomysłami.
Drugim rozwiązaniem byłoby stworzenie iteracji w rozwoju, jak w Scrumie . Nie mam jeszcze z tym doświadczenia w projektach o stałej cenie (ponieważ nie robię już projektów stałych), więc nie wiem, czy to działa, czy nie. Mam poważne wątpliwości, że Scrum (lub Agile ) jest rozwiązaniem dla wszystkich projektów programistycznych, ale być może niektóre z opisanych praktyk pomogą ci.