Gdy po założeniu firmy masz zamiar wdrożyć nowy program lub aplikację, tym, czego potrzebujesz, jest produkt MVP (Minimum Viable Product) gwarantujący najwyższy zwrot z inwestycji przy najniższym ryzyku. W niniejszym tekście podpowiadamy, jakie zasady warto wziąć sobie do serca, aby bezstresowo rozpocząć projekt IT. W drugiej części artykułu tłumaczymy natomiast, czym kierować się przy tworzeniu optymalnego MVP.
Jak zawsze najważniejszą rzeczą jest komunikacja. Jako klientowi będzie Ci zależało, by poznać i zrozumieć procesy oraz organizację pracy zespołu programistów. Zespołowi z kolei będzie zależeć na tym, by klient był w pełni przygotowany do realizacji projektu oraz by stworzyć sprawne szlaki komunikacyjne służące dobrej współpracy w ramach całego procesu opracowania produktu.
Dobry software house powinien dysponować modelem organizacji pracy i przestawić go już w momencie pierwszego spotkania między klientem a zespołem programistów. Oto jak bez zbędnego zamieszania i stresu dobrze rozpocząć projekt.
Faza 1 – dostosowanie wizji klienta do planu zespołu programistów
Przed rozpoczęciem jakichkolwiek prac należy upewnić się, że wszyscy członkowie zespołu mają taką samą wizję projektu. Cały proces trzeba dokładnie zaplanować, a każdy pracownik musi dokładnie zrozumieć, jakie są wstępne i najważniejsze cele projektu oraz niezbędne funkcje programu lub aplikacji.
Najważniejsze rzeczy, które trzeba ustalić na początkowym etapie planowania, to:
- Charakterystyka osoby użytkownika: zespół programistów musi dokładnie zrozumieć, kto będzie korzystał z produktu końcowego. Jeśli jest to oprogramowanie biurowe robione na zamówienie, wówczas zespół programistów musi wiedzieć, w jaki sposób pracują pracownicy biura i w czym dokładnie oprogramowanie ma im pomagać. Jeśli jest to aplikacja, trzeba określić, na jaki rynek jest kierowana.
- Wymagania, którym ma sprostać projekt: ważne, by klient dostarczył wszelkich badań rynkowych przeprowadzonych w odniesieniu do projektu, aby pomóc zespołowi zrozumieć wyznaczony cel.
- Potrzeby użytkownika, które produkt ma zaspokoić: w jaki sposób produkt końcowy będzie spełniać potrzeby użytkowników? Zespół programistów powinien wyraźnie informować klienta, że obie strony – zamawiający i wykonawca – są zaangażowane w realizację wizji projektu. Każdy członek zespołu powinien dzielić się pomysłami i aktywnie uczestniczyć w procesie kształtowania koncepcji.
- Analiza SWOT: jakie są mocne i słabe strony, szanse i zagrożenia w ramach projektu? Ważne jest, by zidentyfikować konkurencję oraz określić, w jaki sposób nowa aplikacja będzie udoskonalana.
- Dostępny budżet: klienci przedstawią maksymalną kwotę, jaką są w stanie przeznaczyć na projekt, a software house na tej podstawie spróbuje stworzyć możliwie najlepszy produkt. Ramy finansowe dobrze jest określić na samym początku, tak aby uniknąć późniejszych nieporozumień. Należy także sprawdzić, czy wybrana firma stosuje ceny stałe czy też stawki godzinowe.
- Ograniczenia czasowe: należy określić, w jakim terminie klient spodziewa się zakończenia projektu i czy jest to termin realny.
Faza 2 – Opracowanie specyfikacji wymagań oprogramowania (SRS)
Opracowanie specyfikacji wymagań oprogramowania ma na celu nie tylko stworzenie jasnego i zwięzłego dokumentu, do którego w każdym momencie mogą odwoływać się członkowie zespołu. Jest to prawdziwa pomoc w tworzeniu najwyższej jakości oprogramowania.
Podczas fazy pierwszej trzeba z zespołem nakreślić główne cele, a następnie sporządzić ogólną specyfikację uwzględniającą następujące aspekty:
- Do czego ma służyć tworzone oprogramowanie?
- W jaki sposób działają interfejsy zewnętrzne oprogramowania?
- Jaka jest oczekiwana wydajność oprogramowania?
- Jakie funkcje ma produkt?
- Cechy produktu, czyli kwestie takie jak bezpieczeństwo, łatwość obsługi technicznej.
- Ograniczenia, czyli fakt, czy istnieją jakieś obowiązujące standardy wymagane w przypadku produktu, zasady dotyczące integralności bazy danych, ograniczenia pod względem zasobów itp.
Dobra specyfikacja wymagań oprogramowania będzie stanowić doskonałe źródło wiedzy i solidną podstawę umowy zawieranej przed rozpoczęciem prac. Dodatkowo będzie ona punktem odniesienia podczas prognozowania kosztów i terminów oraz pozwoli znacznie ograniczyć konieczność dodatkowych prac zespołu.
Sporządzenie specyfikacji wymagań oprogramowania pozwoli zespołowi dokładnie naszkicować wszystkie jego wymogi, tym samym ograniczając ewentualną konieczność późniejszych zmian w projekcie i kodzie.
„Szkicowanie” pomysłów na etapie sporządzania specyfikacji można traktować dosłownie. W dużej mierze analogicznie do tworzenia scenorysu przed przyjęciem scenariusz do filmu, programiści powinni fizycznie naszkicować, jak wyobrażają sobie interfejs oprogramowania.
Można to zrobić albo za pomocą narzędzi do tworzenia pokazowych modeli produktu, takich jak Sketch lub Balsamiq, albo przy użyciu starej dobrej metody z wykorzystaniem ołówka i papieru.
Opisy słowne każdego modułu również są bardzo wartościowe. Do tego celu bardzo przydaje się tworzenie skutecznych scieżek użytkowników, w których należy opisać dokładnie to, czego klient oczekuje od każdego modułu.
Faza 3 – Przekazywanie i otrzymywanie informacji zwrotnych (przez klienta)
Przed dalszymi pracami należy omówić specyfikację produktu z wszystkimi osobami biorącymi udział w projekcie, jak również osobami, które będą korzystały z oprogramowania lub aplikacji. Poświęcenie na to czasu na samym początku pozwoli Ci zaoszczędzić wiele godzin pracy w przyszłości, ponieważ zapobiegnie prowadzeniu prac w niewłaściwym kierunku czy przeoczeniu istotnych funkcji produktu końcowego.
Faza 4 – Rozmowa z project managerem
Twój projekt zmierza w kierunku rozpoczęcia prac, jednak zanim to nastąpi, trzeba zorganizować szczegółowe spotkanie z project managerem zespołu programistów. To dobry moment, aby wyjaśnić wszelkie ewentualne obawy dotyczące komunikacji i realizowanych procesów.
Oto 10 najważniejszych pytań, które trzeba zadać project managerowi przed rozpoczęciem realizacji projektu IT:
- W jaki sposób należy zgłaszać nowe pomysły?
- Jakich narzędzi do komunikacji używamy?
- Jaka jest struktura przepływu komunikacji?
- Z jakiego rodzaju modelu procesu będziemy korzystać?
- W jaki sposób będziemy zarządzać organizacją pracy?
- Jak będziemy powiadamiani w razie opóźnień lub kiedy pojawią się nieprzewidziane problemy?
- Kto jest odpowiedzialny za projekt?
- Czy wszystkie moje wymagania da się spełnić?
- W jaki sposób priorytety projektu przekładają się na iteracje, szacunki i procesy?
- W jaki sposób będzie dystrybuowany produkt końcowy?
- Jak mogę pomóc w całym procesie opracowywania produktu?
Po udzieleniu odpowiedzi na pytania klienta, project manager zapyta:
- Czy klient ma swoje serwery?
- Czy klient ma jakieś preferowane narzędzia?
- Czy klient ma pracownika ds. technicznych – na przykład dyrektora technicznego?
Faza 5 – Przygotowania do spotkania rozpoczynającego projekt
Przed spotkaniem rozpoczynającym projekt warto upewnić się, że każdy z członków zespołu ma dostęp do kompletu informacji na temat przebiegu całego procesu.
Zaliczają się do nich:
- Informacje na temat tego, czy zespół programistów będzie realizował wszystkie prace czy też część projektu będzie dzielić z innym zespołem. W przypadku drugiego scenariusza klient może mieć pewne obawy dotyczące tego, jak działać będzie organizacja pracy pomiędzy zespołem własnym a zdalnym oraz jak rozwiązane zostaną wszelkie kwestie związane z pracą z zespołami zdalnymi.
- Lista wszystkich dostępnych kanałów komunikacji. Warto korzystać z kombinacji codziennych aktualizacji przez e-mail, cotygodniowych rozmów i różnych aplikacji i narzędzi do zarządzania projektami.
- Pierwszy projekt architektury aplikacji, który zostanie skonsultowany z klientem podczas spotkania rozpoczynającego projekt lub w inny sposób w ciągu pierwszych dni współpracy.
Faza 6 – Spotkanie rozpoczynające projekt
Ostatnim etapem przed rozpoczęciem prac nad projektem IT jest spotkanie inauguracyjne. Oto, jak powinno ono przebiec:
- Cały zespół zostanie wprowadzony w temat oraz szczegółowo określone zostaną role każdego z jego członków – programistów, testerów oprogramowania odpowiedzialnych za wykrywanie błędów oraz project managera odpowiedzialnego za planowanie i komunikację z klientem.
- Klient powinien określić, w jaki sposób planuje monetyzować tworzoną aplikację lub program.
- Omówione zostaną pierwsze projekty architektury aplikacji.
- Wszystkim członkom zespołu i klientom zostaną przedstawione wybrane narzędzia do komunikacji.
- Utworzony zostanie serwer pośredniczący, do którego ciągły dostęp będzie miał zarówno klient jak i wszyscy członkowie zespołu programistów. W przypadku, gdy klient nie dysponuje serwerem produkcyjnym, zespół programistów powinien go dostarczyć.
Faza 7 – Ruszamy!!!
Na tym etapie wszystko powinno być gotowe do rozpoczęcia pracy. Jest to dobry moment, aby określić kamienie milowe i iteracje, zgodnie z którymi mają postępować programiści. Dobrze jest upewnić się, czy każdy z członków zespołu dysponuje wszystkimi materiałami i informacjami niezbędnymi do realizacji projektu.
Rada na dobry początek: nie warto wydawać pieniędzy na nowe produkty nie mając pewności, że produkt już opracowany odniesie sukces. Istnieją różne metody poszukiwania najbardziej opłacalnego produktu. Pomoże tu analiza i dobór odpowiedniej metody testowania produktu MVP. O tym, jak opracować i testować MVP opowiemy w drugiej części artykułu, którą opublikujemy w środę (18.11).
Wiktor Schmidt
Co-founder & CEO, Netguru
Wiktor od 2008 roku dba o rozwój Netguru – firmy specjalizującej się w budowaniu aplikacji internetowych, mobilnych oraz oprogramowania, jednego z laureatów konkursu Deloitte Technology Fast 50 Central Europe Awards. Angażuje się w budowanie społeczności startupowej w Polsce oraz Irlandii. Jeden z współorganizatorów Hive61 oraz Dublin i Poznań Startup Weekend. Jego główne zainteresowania to internet, nowe technologie i marketing. W wolnych chwilach biega, czyta oraz podróżuje.