Pracy z klientami, którzy nie wiedzą, czego chcą

19

Niedawno rozpocząłem pracę, dzięki której pracuję nad istniejącym systemem. Wymaga poprawek i aktualizacji, a także nowego kodu. Zrobiłem kilka projektów konserwacja / funkcja dodawanie teraz, a kilka z nich zakończył się znacząco różne od tego, co faktycznie wymagane. Tak, miałem na zaprogramowanie artykuł kilka razy, aby dostać się do miejsca, gdzie wnioskodawca chciał.

Teraz nie mam nic przeprogramowania funkcji, jeśli to, co należy zrobić. Chciałbym jednak skrócić czas realizacji moich projektów. Wąskim gardłem wydaje się być w percepcji żądającej, co należy zrobić. Czy macie jakieś pomysły na to, co można zrobić, aby dowiedzieć się, co trzeba szybciej wnioskodawca?

Michael K.
źródło
1
To ma być lepiej niż przeciwnie, klienci, którzy wiedzą czego chcą, ale nie to, czego potrzebują.
Craig,
2
Czy klienci kiedykolwiek wiedzą, czego chcą?
Dominique McDonnell
6
„Klient nie wie, czego chce, dopóki nie dać mu co prosił”
Benjol
Dawno, dawno temu, zacząłem fantazjować o zatrudnieniu wymagania analityków z przestępczością zorganizowaną. „Czy youse powie mi, co się dzieje, gdy klient nie da się w bazie da, czy też muszę się ta szorstka?”
David Thornley,
Proszę śledzić tę propozycję na tego rodzaju pytania: aspekty Organizacja
Maniero

Odpowiedzi:

20

Kilka punktów rada:

  • Słuchaj problemów, nie rozwiązań . Wielu klientów ci powiedzieć, jak rozwiązać swoje problemy. Nie słuchaj ich. Jesteś programistą, i to jest zadanie, aby znaleźć rozwiązania problemów. Zamiast słuchać tego, co klienci mają problemy, i dowiedzieć się, jak najlepiej go rozwiązać. jak mówili inni klienci tak naprawdę nie wiedzą, czego chcą, czasem trzeba pokazać im to jako pierwszy.

  • Zadawaj pytania . Kiedy skończysz zadawać pytania, prosić trochę więcej. Klienci rzadko są zbliżające się ze szczegółami, ponieważ tak naprawdę nie myśleć o tym. Jedynym sposobem masz zamiar uzyskać informacje potrzebne jest, aby podważyć go z nimi.

  • Dostać rzeczy na piśmie zależności od sytuacji z klientem, może to być bardzo ważne później, gdy zaczną narzekać, jak to, co wydał „nie jest co prosili”. a jeśli nic więcej, napisanie szczegółowych specyfikacji może pomóc Ci upewnić się, że masz wszystkie potrzebne informacje, i pomóc wyjaśnić niejednoznaczności między Tobą a klientem.

  • Komunikacja jest kluczem . nie rozmawiaj tylko z klientem, zdobywaj informacje, znokautuj kod i nie rozmawiaj z nim, dopóki się nie skończy. Zawsze bądź w kontakcie z klientem. Zadawania pytań w trakcie całego procesu. pokazać im postępy już poczynione i uzyskać informacje zwrotne. Na dłuższą metę ułatwi życie wszystkim.

GSto
źródło
2
Doskonała lista, szczególnie punkt 1. Wielu klientów zapyta „czy możesz tutaj dodać przycisk, który robi X” ... ale jeśli zapytasz dalej, dlaczego chcą tego przycisku, dowiesz się, ponieważ próbują rozwiązać niektóre mają problem z zupełnie inną funkcją.
GrandmasterB,
2
Niewielki dodatek do pierwszego punktu tam-jeśli potrzebują funkcji w celu ułatwienia jakieś zadanie, zapytać, czy można oglądać jak robią to zadanie teraz. To może sprawić, że znacznie łatwiej zobaczyć, co jest prawdziwym problemem i jakie są potencjalne pułapki.
glenatron
@glenatron: To bardzo dobry pomysł, zwł. ponieważ jest to niemożliwe dla mnie, aby dowiedzieć się cały system.
Michael K
@Gsto: na # 2, mówisz programista pisząc wniosek o wejściu klienta lub klienta pisząc to? Jednym z problemów jest to, że mam pisemne żądanie klienta jest niedokładna.
Michael K
Często razy, aby klient lub wnioskodawca naprawdę udowodnić, że funkcja lub zmiana jest potrzeba i poprawi rzeczy. Nie możesz mieć ten luksus, ale czy można dostać się do klienta lub osobę składającą wniosek, aby pokazać, że rozumieją oni w pełni, dlaczego chcą zmiany i jak będzie to korzystne dla innych, może być w stanie zaoferować alternatywę dla zaspokojenia ich potrzeb, a nie ich chcieć.
Josaph,
5

Prawie każda książka samopomocy, którą wybierzesz na temat komunikacji, da ci pewną odmianę:

  • Staraj się najpierw zrozumieć, a następnie zrozumieć

Wynika to z książki o siedmiu nawykach, ale wszystkie są odmianą metody „ aktywnego słuchania ”. Celem jest nie tylko zrozumienie, ale także przekazanie im tego, co zrozumiałeś.

Kiedy myślę, że mam dobry pomysł na to, czego potrzebują (trzymaj się z dala od tego, czego chcą, zwłaszcza jeśli zaczną opisywać szczegóły implementacji - to nie jest twoja praca), podam im przykłady historii różnych osób korzystających z systemu i zobaczę, czy to się z nimi kręci.

Następnie wdrożyć, że spodziewa się, że w pełni raz widzą funkcję, oni rzeczywiście sobie sprawę, że to nie jest dokładnie to, co chcą. Zachowaj elastyczność. Jedyną stałą jest zmiana. I zazwyczaj większość z ostrymi krawędziami wypracowane po drugim szybkiej aktualizacji, po początkowym jeden, ale zawsze znajdę ja asymptotycznie zbliża się jakiś ideał, że nigdy nie można dotrzeć. W końcu musisz pozwolić nieistotnym rzeczom przejść i przejść do celów o wyższej wartości.

Scott Whitlock
źródło
4

Czuję twój ból....

Zła wiadomość jest taka: w zależności od jakiego rodzaju klientów masz do czynienia, to może być jak zwykle.

Częstym ogólnym problemem jest w zasadzie to, że klienci nie wiedzą, czego chcą . Oni zwykle wiedzą, co chcą osiągnąć, jeśli chodzi o cel działalności, ale często nie mają pojęcia, jak to powinno wyglądać, jeśli chodzi o oprogramowanie. Tak więc w wielu przypadkach znajdziesz się w tym iteracyjnego cyklu gdzie A odbija projektu iz powrotem do pięciu razy tak długo, jak był wstępny szacunek, ponieważ klient wciąż się zmienia zdanie i chce rozwiązanie manipulowane i ponownie manipulowane. I tak, to nie jest niezwykłe jak na końcowy wynik należy przekształcił się coś zupełnie innego, co początkowy cel wyglądał.

Miałem epicka tego przykładem stało się kilka lat temu - projekt, który początkowo wziął 10 tygodni do kodu zamienił się w 15-miesięcznym re iteracji harówki. W tym przypadku, to głównie dlatego, że różne menedżerów i działów w firmie klienta chciał różne rzeczy, więc oni zachowali wysłanie z powrotem do pracy, aby być manipulowane i ponownie manipulowane (nasze oprogramowanie oparte jest subskrypcja i to był poważny klient, więc ta nie była skóra finansowy off plecach - tylko wielki kłopot techniczny naprawdę).

Więc w zasadzie moja rada jest taka:

Jeśli jest to sposób konkretnej branży i tych klientów są (to duży IF), a potem po prostu się do tego przyzwyczaić. Potraktujcie to jako takie, konserwacji zorientowanych pracy Agile (to jest jak mój obecny koncert jest mniej więcej). :)

Jeśli to nie jest sposób, w jaki rzeczy mają być zrobione, a nadrabiają winę na długi rozładunki, a potem mówić do swoich szefów. Wytłumacz im, że istnieją problemy komunikacyjne i że specyfikacje, które nadchodzą do ciebie od klientów nie są wystarczająco jasne, aby wdrożyć żądaną rozwiązanie. Nie chcesz, aby znaleźć się w sytuacji, w której jesteś połowu winę za nie dając klientom to, co chcą, jeśli nie dostajesz wszystkie wymagane informacje, aby dać im to, czego chcą.

Stoły Bobby'ego
źródło
1
Tutaj jest to całkiem normalne, ale chciałbym to zmienić przynajmniej w przypadku moich projektów. Myślę, że wiele z tych żądań można by zrealizować znacznie szybciej - proste może zająć 3-4 (lub więcej) tygodni w zależności.
Michael K,
2

Przede wszystkim powinieneś zaakceptować fakt, że klienci tak naprawdę nie wiedzą, czego szukają, dopóki tego nie zobaczą. Mogli powiedzieć już teraz, że muszą one cechą X. Pokaż im funkcja X potem będziesz sobie sprawę, że to, czego naprawdę potrzebujesz, to cecha Y lub inna odmiana funkcji X.

Dobrym sposobem, aby dowiedzieć się, co klient naprawdę chce szybciej jest ogarnięcie i po Agile Manifesto , który koncentruje się na komunikacji i współpracy klienta. Podzielić cykl rozwojowy w iteracji i pokazać klientowi prototyp funkcji każdy koniec iteracji. W ten sposób otrzymasz natychmiastową informację zwrotną i zmienić go, według informacji zwrotnej od klienta, bez konieczności inwestowania zbyt dużo zasobów na tej funkcji. W ten sposób będzie zarówno Ty, jak i klient będzie zadowolony z wyniku produktu.

Jestem prawie pewien, że przejście będzie trudne dla swojego zespołu lub firmy, ale jest to jeden z najlepszych sposobów radzenia sobie z szybko zmieniającymi się wymaganiami.

Terence Ponce
źródło
1
+1 dla „Przede wszystkim, trzeba pogodzić się z faktem, że klienci naprawdę nie wiem czego szukasz, dopóki nie zobaczę.”. I to nie jest zła rzecz. Niektóre z najgorszych projektów Ja pracowałem na to te, gdzie spędzali na zawsze stara się zorientować, co chcieli, zanim dostali programistów zaangażowanych. Wierzcie lub nie, wiele powtórzeń są często szybsze niż masywnej ustalonymi projektu.
Jon Hopkins,
1

Wiele, i wiele podobnych historii można znaleźć tutaj . Nigdy, nawet będąc podwykonawcą innej firmy deweloperskiej, nie znalazłem klienta, który wiedziałby dokładnie, czego chce.

Jestem wystarczająco szczęśliwy, że mogę pracować z kimś, kto ma naprawdę dobre pojęcie o tym, czego NIE chce lub chce uniknąć. Mogę zazwyczaj pracują stamtąd coś, że są zadowoleni z.

Moje doświadczenie jest przede wszystkim w rozwoju aplikacji / platformy, choć. Na szczęście rzadko mam do czynienia z problemami estetycznymi, jak robią to projektanci stron internetowych.

Tim Post
źródło
1

Po wielu irytujących przepisuje, teraz działać, co nazywam pełnego ujawnienia.

Więc po omówieniu wymagań klientów i pragnienia, zawsze będę pisać to, co widzę, chcą i jak będę przystąpić do spełnienia tego wymogu. Będę następnie wysłać je co pisałem i czekać, aż oni odpowiedzieć twierdząco przed rozpoczęciem pracy.

Jeśli jest to duży projekt (więcej niż powiedzmy 5 dni pracy) będę prototyp, jak również. To daje im szansę zmienić zdanie bez ogromnych zmian kodu na mojej stronie.

To nie zawsze działa, ale przynajmniej jestem w sytuacji, w której klient wie, że to właśnie one zmieniają swoje zdanie i nie ja wdrożenia nieprawidłowo.

Narzekania
źródło