Jak rozpocząć projekt rozwojowy, gdy jest zbyt wielu potencjalnych interesariuszy

15

Właśnie podjąłem nową pracę na uczelni jako (jedyny) programista aplikacji internetowych.

Uczelnia ma wiele odmiennych, ale wszystkie dość źle zakodowane starsze systemy. Przeważnie zbudowane w PHP zajmują się takimi sprawami, jak frekwencja, wyniki egzaminów, ocena itp.

Moim pierwszym zadaniem jest zbudowanie systemu, który zawiera wiele tych danych, które obecnie spoczywają w różnych bazach danych bez jakiegokolwiek przyjaznego API do ich wyciągnięcia (istniejące systemy są kodowane w waniliowym PHP bez separacji danych i widoku) dzięki nowej platformie do rejestrowania informacji duszpasterskich o uczniach i przedstawiania ich nauczycielom i kadrze kierowniczej w użyteczny sposób, aby mogli szybko reagować na problemy ze studentami.

Na naszym pierwszym spotkaniu było 18 osób! Nie było wyraźnego lidera ani głosu, który reprezentowałby większość. Brak identyfikowalnego klienta . Spotkanie zmieniło się ze szczegółowych pomysłów na implementację drobnych funkcji od kierowników wydziału do sporów o to, czy powinniśmy używać arkuszy kalkulacyjnych Excel do wprowadzania danych!

Jak możesz sobie wyobrazić, moja głowa wirowała na końcu. Miałem wiele dobrych pomysłów, ale nie mogłem ich usłyszeć. To dla mnie bardzo nowa rola, zanim zostałem członkiem zespołu programistycznego w agencji marketingowej. Mieliśmy bardzo dobrze zdefiniowane role: Project Manager, Client, Designer, Developer.

Chciałbym wiedzieć, czy doświadczeni programiści lub menadżerowie mogą dać mi wskazówki na temat tego, jak mogę przekonać moich kolegów do czegoś, co przypomina zespół projektowy. Czy zwinny jest sposób? Jak podchodziłbyś do obsługi wszystkich różnych głosów? Oczywiste jest, że jakiś proces musi zostać wdrożony bardzo szybko, po prostu nie jestem pewien, co to jest.

Matt Harrison
źródło
8
Jeśli jesteś jedynym programistą, kim było pozostałych 17 osób na spotkaniu?
pdr
1
Dobre pytanie. Dyrektor szkoły, różni członkowie kadry nauczycielskiej (nawet nauczyciel wychowania fizycznego) i wiele osób o akronimicznych nazwach.
Matt Harrison
1
@MattHarrison: ale co mają wspólnego z twoją aplikacją internetową? Czy są potencjalnymi użytkownikami? Czy utrzymują ten starszy system, o którym wspominałeś? Powinieneś to wyjaśnić, aby upewnić się, że wiesz, kogo poprosisz o wymagania, a kogo możesz zignorować.
Doc Brown
1
@DocBrown Przepraszam, być może byłem trochę niejasny. Wszyscy będą przyszłymi użytkownikami systemu. Z aplikacji będzie korzystało więcej niż 3000 osób. Myślę, że to, co się tutaj wydarzyło, to ludzie zapraszający ludzi, a spotkanie stało się cyrkiem. Podkreślę potrzebę mniejszego zaangażowania zainteresowanych stron.
Matt Harrison
5
@Do anonimowego downvoter / bliższego: na pierwszy rzut oka może się to wydawać zbyt zlokalizowane. Myślę jednak, że prawdziwym pytaniem jest pytanie rozwojowe o ogólnym znaczeniu: „jak rozpocząć projekt rozwojowy, gdy jest zbyt wielu potencjalnych interesariuszy”, a tego rodzaju pytania są tutaj na temat IMHO.
Doc Brown

Odpowiedzi:

26

Nie spodziewałbym się tutaj żadnego „zwinnego procesu rozwoju” jako rozwiązania obecnego problemu. Pierwszą rzeczą dla Ciebie powinno być: wyczyść swoją misję . To znaczy:

  • wyjaśnij, jakie są twoje obowiązki
  • wyjaśnić, jakie są obowiązki innych zainteresowanych stron
  • określić, kto jest odpowiedzialny za każdy ze starszych systemów
  • jeśli nie ma (jeszcze) klienta dla twojej aplikacji internetowej, znajdź takiego, który będzie z niej korzystał w przyszłości i poproś o pozwolenie na włączenie go jako reprezentatywnego użytkownika twojego systemu (osoba, z którą możesz omówić wymagania)
  • jeśli są różni interesariusze o różnych celach, zbieraj ich wymagania (na przykład przeprowadzając z nimi wywiad jeden po drugim, a nie łącznie 18 osób w jednym pokoju). Zapisz wyniki na liście. Następnie zacznij ustalać priorytety.
  • zapisz mapę drogową (duży obraz) i małą specyfikację dla wersji 0.1 i spraw, aby szef oraz przedstawiciel klienta wyrazili na to formalną zgodę
  • EDYCJA: patrz komentarz GlenH7

Może to chwilę potrwać, prawdopodobnie na tym etapie projektu nie napiszesz dużo kodu. W takiej sytuacji należy najpierw wykonać „inżynierię wymagań”. Ale zacznij od małych, myśl duży. Po opracowaniu pierwszego wydania będziesz miał coś do pokazania, przedyskutowania wymagań z interesariuszami itp.

Doktor Brown
źródło
Genialna rada. Dziękuję Ci! Czy mogę tylko wyjaśnić; kiedy mówisz „wyczyść swoje obowiązki”, czy masz na myśli to, aby je wyjaśnić, czy też oczyść je, jak się ich pozbyć? Przepraszam, jestem Brytyjczykiem, więc może to sprawa z amerykańskim angielskim.
Matt Harrison
1
@MattHarrison: mam nadzieję, że moja edycja wyjaśnia to bardziej - choć czasem dobrym pomysłem może być również pozbycie się niektórych obowiązków ;-)
Doc Brown
4
Doskonała odpowiedź. Jedyne, co chciałbym dodać, to zidentyfikować wiodącego lub wykonawczego interesariusza. Ta osoba ma ostateczny autorytet w określaniu priorytetów i zakresu funkcji. Istnieją różne sposoby, aby się tam dostać, ale ktoś ma ostateczną odpowiedzialność za projekt. I tak, możesz ukraść ten komentarz, aby dodać do swojej odpowiedzi, jeśli chcesz. :-)
6

Oddziel tych, którzy naprawdę chcą, aby ten projekt działał od stada.

Z powodu dużej polityki ktoś zebrał to spotkanie z listą uczestników, w której członkostwo zostało określone przez to, kto najbardziej by się zdenerwował, jeśli ich nie zaproszę. Zdarza się. Ten cel został spełniony, ale jako programista odkryłeś, że nic nie zostało postanowione. Nikt nie został przydzielony do zrobienia. Jeśli masz szczęście, udało im się zaplanować następne spotkanie lub nie daj Boże, zorganizowali ponowne spotkanie w trzeci wtorek każdego miesiąca.

Następnie nastąpi tworzenie komitetów, podkomitetów i grup zadaniowych. To jest lepsze, ale znajdziesz je wszystkie równie bezwartościowe.

Wreszcie dowiesz się, kogo tak naprawdę obchodzi ten projekt. Kto naprawdę chce poświęcić czas, aby zrobić to dobrze. Mamy nadzieję, że ta osoba (osoby) będą miały przełożonego, który da im czas na zrobienie tego, a nie tylko uczynienie z tego kolejnej pozycji na ich długiej liście rzeczy do zrobienia. Znajdź te osoby JAK NAJSZYBCIEJ! Pomóż im zarządzać oczekiwaniami szefa i uzyskać uzgodnione zaangażowanie.

Zdobądź coś przed tyloma osobami z pierwotnej grupy, które nawet zawrócą z powrotem. Wszyscy mogą być inteligentnymi i / lub wykształconymi ludźmi, ale nie będą czytać wielu specyfikacji. Polubią niektóre rzeczy, nienawidzą innych i chcą więcej. Zapisywanie sugestii nie zaszkodzi, ale postaraj się zachęcić tę drużynę do uzupełnienia skórki w grze. Nie obiecuj robić wszystkiego. Po prostu odnieś się do tego, co można zrobić w najbliższej przyszłości.

Jeśli skończysz z regularnymi kontaktami z więcej niż 5 osobami, dzieje się tak dlatego, że jakiś menedżer zaangażował kilka osób, które tak naprawdę nie chcą tam być.

JeffO
źródło
1
+1 za podkreślenie politycznych aspektów takiej sytuacji.
Doc Brown
4

Wymyśl listę pomysłów, które według ciebie wzmocnią / ulepszą istniejące systemy na podstawie twoich obserwacji i ich „potrzeb” i zapewnią, że skoncentrujesz się na tym, gdzie możesz osiągnąć rzeczywiste widoczne korzyści. Na tej liście umieść każdy pomysł, który Twoim zdaniem byłby użyteczny, a także każdą wyjątkową „rozsądną” sugestię osób niebędących twórcami.

Zbuduj listę funkcji, które „powinny” być uwzględnione w twoich wysiłkach programistycznych. Daj każdemu członkowi „prawo głosu”, być może w postaci „lepkich gwiazd” i dowiedz się, czego tak naprawdę chce każdy członek, umieszczając gwiazdy obok tego, co według nich jest ważne. Niektóre osoby mogą otrzymać więcej gwiazdek, jeśli podpiszą czek, mają ostatnie zdanie itp. Po tym, mam nadzieję, że ty i wszyscy inni zobaczycie, co jest ważne dla całości, i mam nadzieję, że zgodzą się na priorytet, który będzie następnie przetłumacz na mapę drogową

1). Badanie zespołu - dowiedz się, co każdy członek uważa za ważny / potrzebny / najwyższy priorytet

2). Szybko coś tam uzyskaj - nie próbuj rozwiązywać wszystkich problemów naraz, uzyskaj dostęp do funkcji „minimum” i poproś o ich zatwierdzenie, a następnie wspólnie zrób postęp w oparciu o opinie użytkowników.

3). Wykorzystaj ich opinie i opinie innych użytkowników, aby poprowadzić proces rozwoju

(Buduj, oceniaj opinie, buduj, oceniaj opinie) Opłucz i powtórz.

Możesz także rozważyć wprowadzenie „punktów nakładu” lub szacunkowych godzin do ukończenia. Może to również pomóc w ustaleniu priorytetów.

hanzolo
źródło
1
+1, to sposób na prowadzenie samochodu, gdy już się porusza :-)
Doc Brown
1
+1 za ten, choć jaśniej powiedziałbym, że musisz uważać na „zły system”, który faktycznie robi to, co powinien. Ustalaj priorytety w taki sposób, aby nie naprawiać rzeczy, które nie są zepsute, skup się na tym, gdzie możesz osiągnąć rzeczywiste widoczne zyski.
Joris Timmermans
@MadKeithV, uzgodniono ... „Skoncentruj się na tym, gdzie możesz osiągnąć rzeczywiste widoczne zyski”, zaktualizowano komentarz, aby uwzględnić to stwierdzenie.
hanzolo
2

Twoim pierwszym wyzwaniem jest określenie potrzeby tego projektu. Zwołaj kolejne spotkanie z tymi wszystkimi ludźmi i poproś o spisanie problemów, które należy rozwiązać. Nie pozwól im mówić o wielu sposobach rozwiązania tego projektu. Zmusić ich do prawdziwej identyfikacji potrzeb / problemów.

Jednym ze sposobów jest poproszenie każdego z nich o udokumentowanie tych potrzeb na karteczkach - jeden pomysł na kartkę. Następnie uruchom Diagram powinowactwa, aby pomóc im zgrupować różne pomysły w określone potrzeby. Na koniec, pozwól im głosować ( Multi-Voting ), abyś mógł zobaczyć największe potrzeby.

Zwinne przypomina nam, aby najpierw zająć się funkcją, która ma największą wartość dla klienta. Zacznij od największej potrzeby, a następnie dziel ten element, aż będziesz miał pierwszy mały kawałek, który możesz zrobić w krótkim czasie.

lsievert
źródło
0

KISS - Zrób plan podróży. Dziękujemy wszystkim za przybycie, sprawdźcie to, zróbcie to. Śledzenie boczne zwolni, jeśli rozwiążesz problem, dzieląc się swoimi obawami i prosząc ich, by pozostali PO spotkaniu. Podejmuj decyzje w drodze głosowania w przypadku kontrowersji, aby być jak najbardziej szczęśliwym. Motywacja do uczestnictwa w dowolnym systemie jest bezpośrednio związana z wiarą poszczególnych osób w jego metody.

Steven
źródło