Wróć do listy

Jak wygląda współpraca z software house?

OprogramowanieProjekty
Radosław Mól

Jeśli chcemy stworzyć witrynę lub aplikację, powinniśmy zdać się na profesjonalistów. Niewiele firm podejmuje decyzję o budowie własnego zespołu dla realizacji takich zadań. Najlepszym wyborem jest zatem współpraca z software house. Wykorzystamy w ten sposób umiejętności, wiedzę i doświadczenie firmy, dla której podobne projekty to chleb powszedni. Na co musimy się przygotować podczas ich realizacji?

Analiza wymagań

Zanim zaczną się prace nad oprogramowaniem lub witryną, software house musi poznać nasze wymagania. W tym celu przeprowadzi z nami wszechstronny wywiad. Odbyć się mogą także warsztaty (workshop), podczas których poznamy zespół wykonawcy oraz precyzyjnie ustalimy z nim zakres prac i nasze potrzeby.

Aby przygotować się do spotkania z software house, powinniśmy określić:

główne założenia projektu

Odpowiedzmy sobie na pytania: jakie potrzeby użytkowników ma spełnić produkt? Dlaczego chcemy go wdrożyć? Jak powinien wyglądać? Spiszmy wszystkie swoje wymagania, określając główne założenia projektu. Możemy także wykorzystać mapy myśli (mind maps), prototypy (rozrysowywane na kartce czy tworzone za pomocą oprogramowania, jak bezpłatny Framer), rysunki czy user stories.
User stories to krótkie opisy wybranych funkcjonalności z punktu widzenia użytkownika. Zawierają odpowiedzi na pytania „kto?” (np. klient sklepu), „co chce zrobić?” („chce dodać produkt do koszyka”) i „dlaczego?” („aby go później kupić”).  

target

Podczas tworzenia produktu cyfrowego należy skupić się na konsumencie i jego potrzebach. W tym celu stwórzmy persony, czyli projektowane postaci przyszłych użytkowników.
Każda persona powinna być określona za pomocą takich parametrów jak m.in.: dane demograficzne (wiek, miejsce zamieszkania, sytuacja zawodowa, wykształcenie czy status związku), potrzeby, pragnienia, aspiracje czy tryb życia (np. w jakich sytuacjach i warunkach osoba będzie korzystała z produktu, dajmy na to w drodze do pracy).

produkty konkurencji

Rozwiązania stosowane przez inne firmy mogą stanowić dla nas wzór. Jednocześnie skupmy się na ich niedostatkach, aby móc wprowadzić w naszej witrynie lub aplikacji cechy, które przewyższają projekty konkurencji. Software house dokona także własnej analizy wskazanych przez nas produktów.

Modele rozliczeń

Time&Material

Polega na rozliczeniu z wykonawcą na podstawie liczby przepracowanych godzin. Na ten sposób zdecydujmy się, gdy nie potrafimy w pełni określić zakresu projektu lub zakładamy, że nasze wymagania mogą zmienić się w czasie.
Time&Material pozwala na elastyczność podczas prowadzenia prac. Dzięki temu możemy płynnie kształtować produkt, dostosowując go do swoich wymagań. Rozliczenie tego typu stosowane jest najczęściej w przypadku wykorzystywania przez software house metodyk zwinnych (agile), które opierają się na iteracjach. 
Po każdej z iteracji następuje ocena efektów prac i ewentualne wprowadzanie zmian w celu udoskonalenia produktu. Pozwala to zmodyfikować wcześniejsze założenia, aby oprogramowanie lub witryna lepiej spełniały nasze potrzeby. Będziemy mogli dynamicznie kształtować produkt, regularnie go testując. 
Model Time&Material pozwala także stworzyć minimalną wersję produktu (MVP). Jest to wersja zawierająca podstawowe funkcjonalności, ale już stanowiąca wartość dla użytkownika. Możemy ją szybko wprowadzić na rynek, by produkt następnie rozwijać.
Wadą modelu Time&Material jest to, że nie mamy szansy na określenie z góry budżetu oraz harmonogramu projektu. Podczas prac wg metodyki agile będziemy musieli także regularnie komunikować się z wykonawcą.

Fixed Price

Model ten polega na ustaleniu ceny za wykonanie konkretnego projektu. Określamy także harmonogram prac. Fixed Price wybierzmy, gdy nasze wymagania są ściśle określone — może tak być np. w przypadku witryny wg. konkretnego wzoru opartego na standardowych rozwiązaniach lub produktach konkurencji.
Wybierając model Fixed Price będziemy musieli stworzyć dokument SRS (Software Requirements Specification). Jest to szczegółowy opis oprogramowania określający m.in. jego cel, najważniejsze parametry i funkcjonalności. Aby go przygotować potrzebna nam będzie pomoc profesjonalistów, co narazi nas na koszty oraz będzie czasochłonne. Ponadto dokument nie może podlegać zmianom bez obopólnej zgody klienta i wykonawcy. Ewentualne zmiany wiążą się często także z modyfikacją budżetu.  
Projekty rozliczane w ten sposób nie wymagają od nas większego zaangażowania, ponieważ efekt prac odbieramy dopiero po ich zakończeniu. Nie będziemy musieli testować witryny lub aplikacji w trakcie trwania zlecenia i regularnie komunikować się z firmą.
Wadą modelu Fixed Price jest to, że możemy przeszacować koszty projektu, co narazi nas na dodatkowy wydatek. Wykonawca zazwyczaj zakłada pewien margines błędu, aby zabezpieczyć się przed stratami, przez co wycena bywa zawyżona.
Przede wszystkim jednak nie będziemy mogli płynnie kształtować produktu podczas procesu developmentu. Jeżeli ostatecznie nie spełni naszych oczekiwań, modyfikacje i tak będą wymagały dodatkowych rozliczeń. Będziemy także zmuszeni do przedstawienia software house bardzo szczegółowej analizy wymagań (oczywiście wykonawca może nam pomóc w jej przygotowaniu).

Development

W procesie tworzenia oprogramowania i bardziej skomplikowanych witryn najczęściej stosowana jest metodyka agile. Polega ona, jak już wspomnieliśmy, na iteracjach, czyli powtarzalnych etapach. Po każdej z nich możemy być proszeni o przetestowanie produktu i udzielenie informacji zwrotnych.
Początkowo przygotowywany jest projekt aplikacji za pomocą makiet UX (User Experience) oraz UI (User Interface). Zazwyczaj dopiero te drugie otrzymamy do przetestowania. Odzwierciedlają one kształt przyszłej aplikacji i tworzone są w specjalnym oprogramowaniu, do którego otrzymamy dostęp. Powinniśmy dokładnie sprawdzić, czy projekt produktu nam odpowiada i zamieścić wszystkie swoje uwagi w formie komentarzy lub spisane przedstawić developerom. 
W przypadku, gdy aplikacja wymaga poprawek, przeprowadza się iterację ponownie. Oczywiście nie będziemy jedynymi testerami rozwiązania. Jest ono sprawdzane także przez zespół software house oraz zewnętrznych testerów. 
Cały proces współpracy wygląda tak samo w przypadku prototypowych wersji aplikacji.

Twórcze współdziałanie

Musimy liczyć się z tym, że gdy wykonawca korzysta z metodyk zwinnych (agile), będziemy musieli zaangażować się w proces tworzenia produktu. Dzięki temu jednak jest większa szansa, że spełni nasze wymagania, ponieważ podejście agile sprzyja zazwyczaj budowie lepszych witryn i aplikacji. Musimy się jednak zazwyczaj przygotować na rozliczenie w modelu Time&Material.
Oczywiście w przypadku prostszych projektów nie będziemy zmuszeni do dużej aktywności. Sprawdzi się wtedy także model Fixed Price, co pozwoli nam łatwiej określić budżet i harmonogram prac. 
Niezależnie jednak od charakteru współpracy starannie wybierajmy wykonawcę, gdyż od tego zależy powodzenie całego przedsięwzięcia. Profesjonalny software house z dużym doświadczeniem popartym portfolio będzie partnerem, z którym mamy szansę stworzyć udany produkt.

17 maja 2022
Radosław Mól
CEO w Imoli