Jednym z głównych zadań na moim talerzu jest komunikacja z klientem. Jedną z rzeczy, które uważam za szczególnie trudne, jest dotrzymywanie terminów, ponieważ są one zlecane przez klienta i często nie jestem konsultowany.
Jeśli masz ponosić odpowiedzialność za komunikację z klientem, dlaczego nie konsultowano Cię w sprawie planowania (i budżetowania), abyś mógł przekazywać te informacje między osobami odpowiedzialnymi za nie w Twojej organizacji a ich odpowiednikami po stronie klienta? Myślę, że naprawienie tego problemu będzie ogromną korzyścią dla ciebie, twojego zespołu i twojego projektu.
Klient oferuje funkcję, którą chce dodać, Funkcję X. Funkcja X będzie dobrze wyglądać w wydaniu aplikacji na następny tydzień, które będzie za około 6 dni roboczych. W tym momencie żądanie funkcji musi zostać zatwierdzone i często istnieją inne zależności, z którymi trzeba sobie poradzić. Ostatecznie, N dni później, prośba o dodanie funkcji spływa do mojego zespołu. Nawet jeśli pierwotny termin (ustalony przez menedżera niebędącego programistą) był możliwy do osiągnięcia, już go nie ma.
Ten system planowania wydaje się co najmniej dziwny.
Z moich doświadczeń wynika, że klient rejestruje się w celu wydania określonej wersji. Mogą przesłać listę funkcji i zmian, których chcą i kiedy chcą, a następnie negocjować z zespołem tworzącym oprogramowanie. Mogą też podać priorytetową listę funkcji zespołowi programistycznemu, a zespół programistyczny podaje szacunkowe daty dostarczenia różnych zestawów funkcji. Istnieją również inne warianty.
Ale jedną rzeczą, na którą nigdy nie widziałem, jest to, że klient może zmienić wersję tak późno w grze, zwłaszcza że nie ma tygodnia od wydania. Wydaje się, że nie jest to odpowiednie obciążenie dla projektantów, programistów i testerów. Jeśli wykonujesz iteracyjne prace rozwojowe, jeśli jest to funkcja o wysokim priorytecie, po prostu dodaj ją do formy zaległości i weź jak najszybciej. Jeśli nie jest to funkcja o wysokim priorytecie, zdecydowanie nie potrzebują jej w tej wersji i mogą poczekać do następnej.
Zalecam ustanowienie pewnych podstawowych zasad, które uwzględniają zespoły zajmujące się projektowaniem, programowaniem, testowaniem i dostawą, a także klientem, dotyczące funkcji zawieszania się, zawieszania się kodu i dostaw. Umieść je na piśmie, uzyskaj zaangażowanie od wszystkich i trzymaj się tego. Jeśli poruszysz się raz, będziesz musiał zginać więcej i stracisz kontrolę nad procesem.
Niestety niewiele mogę zrobić, ponieważ nie mam tutaj władzy.
Możesz nie być sam. Ale wygląda na to, że twoi projektanci i / lub programiści i / lub testerzy są pod dużą presją, aby dotrzymywać harmonogramów. Powinieneś usiąść z przełożonymi jako zespół i wyjaśnić sytuację. Najpierw poproś organizację, aby zobowiązała się do udoskonalenia procesu, a następnie współpracuj z klientem, aby uzyskać akceptację tego, jak wszystko będzie działać.
Jednak wydaje mi się, że robię wymówki.
Kiedy zaczniesz szukać wymówek, może być czas na trudną rozmowę lub kluczową rozmowę . Poleciłbym jedną z tych dwóch książek. Ich czytanie pomogło poprawić moje umiejętności komunikacyjne, zwłaszcza gdy musisz stawić czoła trudnej sytuacji, w której napięcia są wysokie ze wszystkich stron.
Aby odpowiedzieć na niektóre inne odpowiedzi.
Niestety, moc jest przejęta raczej przez ciebie, niż przez innych.
Nie wiem dokąd zmierza Andrea . Tak, musisz naprawić przepływ informacji. Ale musisz współpracować z szefami i klientami, aby upewnić się, że wszyscy wiedzą, co (zakładam, w każdym razie) uzgodniono na początku projektu. Jeśli porozumienie z jakiegokolwiek powodu się nie powiedzie, odwiedź je ponownie i rozdziel pracę i role osobom lepiej do nich dopasowanym.
Nie bierzesz władzy ani nie walczysz z nią, ale pracujesz z nią, próbując ją oswoić i sprawić, by działała dla wszystkich.
Problem polega na tym, że klient w większości zna wartość biznesową tej funkcji, ale nie zdaje sobie sprawy z jej złożoności. Po prostu omów i wyjaśnij. Zawsze.
Ten cytat z loki2302 jest dość trafny . Jednym z twoich zadań jako inżyniera oprogramowania jest upewnienie się, że właściwi ludzie wiedzą, jak trudne jest to zadanie, jak długo to zajmie oraz jakie opcje i ryzyko istnieją przy robieniu czegoś. Jako główny komunikator Twojego zespołu, przekazywanie tych informacji z Twojej organizacji do klienta jest teoretycznie Twoim zadaniem.