Pomysł. Projekt. Wykonanie. Mamy to! – Oto prosty plan na stworzenie aplikacji. I jeszcze jedna ważna sprawa. Pieniądze. Koszty wytworzenia oprogramowania szytego na miarę, w zależności od tego, co będzie oferowało, mogą wahać się od kilkudziesięciu do nawet kilku milionów złotych. Nie dziwne więc, że czujesz presję, przed wyborem software house, który dobrze zaprojektuje i zaprogramuje aplikację, tak aby Twoja inwestycja się zwróciła. Pytanie brzmi jak to zrobić?
W tym artykule postaramy się pomóc ściągnąć presję z Twoich barków, i ułatwić wybór dobrego wykonawcy. Jest to niezwykle ważne, ponieważ software house, który wybierzesz, aby zbudować aplikację, zostanie z Tobą na długo.
Oto 9 oznak, że Twój potencjalny wykonawca nie dowiezie:
1. Zadają zbyt mało pytań
Jeśli Twój potencjalny wykonawca nie zadaje sobie trudu, aby dobrze poznać Twój pomysł na aplikację, narażasz się na następujące ryzyka:
- otrzymasz estymację czasowo-kosztową, która jest bardzo ogólnikowa i najpewniej nie będzie odzwierciedlać faktycznego rozmiaru inwestycji (będzie zaniżona lub zawyżona),
- oferta wykonawcy może być oparta na błędnych założeniach, które nie zostały zweryfikowane podczas estymacji,
- wykonawca nie ma biegłości w danym temacie i po prostu nie wie, o co pytać,
- wykonawcy nie zależy na współpracy z Tobą lub nie jest w stanie zrealizować Twojego projektu, ale nie potrafi powiedzieć tego wprost.
Z drugiej strony być może Twój brief jest przygotowany na tyle dokładnie, że nie trzeba zadawać zbyt wielu pytań na etapie ofertowania. W takim wypadku, brawo dla Ciebie. Jeśli chcesz się dowiedzieć jakich pytań możesz się spodziewać od wykonawcy sprawdź ten artykuł.
Nie bój się dociekliwego wykonawcy. To dobry znak, który oznacza, że:
- już na początkowym etapie zadał sobie trud, aby jak najlepiej poznać Twoją sytuację, a więc wykazuje wysokie zaangażowanie,
- chce być partnerem, a nie zaledwie egzekutorem Twojego pomysłu i zależy mu na Twoim sukcesie,
- wycena projektu będzie bardziej realistyczna – najczęściej wyższa, ponieważ zostaną wzięte pod uwagę aspekty, które w przypadku pobieżnej analizy zostały pominięte,
- unikniesz niespodzianek w przyszłości w postaci nieprzewidzianych dodatkowych kosztów.
Dobry wykonawca powinien pytać o cele biznesowe i szczegóły funkcjonalne Twojego projektu. Dzięki temu będzie mógł lepiej oszacować czas i koszt inwestycji, a także doradzić, które elementy aplikacji są priorytetowe, a które mogą poczekać na kolejny etap tworzenia aplikacji.
Wykonawca powinien traktować Cię jako eksperta w swojej dziedzinie, nie ingerując w Twoją wizję, z drugiej strony powinien wykazać się inicjatywą w doradzaniu rozwiązań technologicznych i funkcjonalnych.
Brak doradztwa ze strony wykonawcy może skutkować niepotrzebnymi kosztami lub źle dobraną technologią, na przykład taką, która będzie ograniczać możliwości aplikacji w przypadku potrzeby skalowania.
Jeśli planujesz stworzyć aplikację po raz pierwszy, masz prawo nie rozumieć różnicy między aplikacją mobilną, a webową. Wiele osób rozumie słowo „aplikacja” jako „coś, co ma działać w internecie”, nie zdając sobie sprawy jakie są rodzaje aplikacji i rozwiązań technologicznych związanych z wyborem konkretnego podejścia. Twój wykonawca powinien wyjaśnić Ci, dlaczego proponuje takie, a nie inne rozwiązanie, biorąc pod uwagę Twój budżet oraz planowane funkcjonalności.
2. Trudno znaleźć referencje lub opinie na ich temat
Przypomnij sobie kiedy ostatni raz zdarzyło Ci się sprawdzać opinię na temat zakupu usługi? Być może był to wybór hotelu lub restauracji. W przypadku usług jednorazowych, konsekwencje złego wyboru są minimalne. Natomiast z software housem, który wybierzesz, czeka Cię długa droga i znaczna ilość zainwestowanych funduszy. Brak referencji nie skreśla firmy, ponieważ mogą tworzyć ją specjaliści o bogatym doświadczeniu. Jest to jednak zawsze duże ryzyko.
Gdzie więc szukać wiarygodnych referencji? W przypadku firm technologicznych najczęściej wskazywanym źródłem będzie Clutch. Recenzje dodane przez klientów są weryfikowane przez serwis, więc możesz z dużą dozą pewności uznać je za prawdziwe. Zwróć uwagę na to kiedy ostatnio dodano recenzję i czego dotyczyła. Świeże referencje są bardziej wiarygodne niż te sprzed kilku lat, ponieważ jest szansa, że programiści, którzy tworzyli te projekty wciąż tam pracują. Jeśli większość opinii podkreśla te same mocne strony firmy, to dobry znak.
Możesz również poprosić potencjalnego wykonawcę o kontakt do poprzednich klientów lub sprawdzić profile firmy w mediach społecznościowych oraz forach branżowych. Tutaj należy zachować ostrożność, ponieważ opinie te nie są weryfikowane i mogą być wystawione przez nieuczciwą konkurencję. Jednak warto sprawdzić to, jak firma reaguje na komentarze i jak przedstawia swoje projekty, gdyż mówi to wiele o jej profesjonalizmie.
Masz pomysł na aplikację i nie wiesz co dalej? Pomożemy!
Napisz do nas3. Robią wycenę bez znajomości wymagań funkcjonalnych
Twój potencjalny wykonawca najprawdopodobniej skupia się przede wszystkim na nawiązaniu współpracy za wszelką cenę, a nie na dostarczeniu Ci rzetelnych informacji.
Tym samym, jeśli na pierwszym spotkaniu z przedstawicielem software house’u słyszysz, że aby dokładnie oszacować koszt inwestycji, trzeba najpierw stworzyć solidną dokumentację projektową… to DOBRZE. Dlaczego?
Dokumentacja zapewnia jasność i spójność w zespole developerskim, minimalizując ryzyko nieporozumień i błędów (czytaj: przepalonego budżetu). Dzięki dobrze wykonanej dokumentacji zespół nie traci czasu na zrozumienie założeń i działania aplikacji, a więc lepiej wykorzystujesz czas pracy każdego specjalisty. Ponadto dobrze przygotowana dokumentacja pozwala na bardziej precyzyjną wycenę prac, więc koszty inwestycji nie będą dla Ciebie zaskoczeniem.
Czym jest dokumentacja w przypadku aplikacji webowych lub mobilnych? W skrócie jest to dokument, który pokazuje poszczególne ekrany aplikacji, interakcje pomiędzy jej poszczególnymi elementami oraz w jaki sposób będzie używana. Najczęściej składa się on z:
- architektury informacji – czyli szczegółowej mapy funkcjonalności aplikacji, która pokazuje wszelkie możliwe działania użytkownika w aplikacji. Pokazuje również, w jaki sposób użytkownicy będą odnajdywać i korzystać z konkretnych funkcji
- makiet UX/UI – ekranów aplikacji, które pokazują layout poszczególnych elementów (UX) lub/i jej docelową warstwę graficzną (UI)
- user stories – zawierający opis funkcjonalności aplikacji z punktu widzenia użytkownika w prostej formie (przykład: Jako <użytkownik> chcę <móc zmienić hasło>, aby <zwiększyć bezpieczeństwo konta>). Na podstawie user stories tworzony jest backlog prac programistycznych na etapie developmentu oraz scenariusze testowe. User stories są niezwykle istotne w procesie tworzenia aplikacji, ponieważ opisują, jakie są możliwe interakcje w aplikacji – są to elementy, których nie da się wyczytać z samych makiet UX/UI.
- biblioteki komponentów UI – pomagają zespołowi developerskiemu w spójnym wdrażaniu elementów interfejsu.
Solidny wykonawca zadba o solidne fundamenty Twojego projektu. Jeśli nie masz jeszcze dokumentacji projektu, Twój wykonawca powinien zaproponować wykonanie jej. Służą do tego warsztaty Product Discovery.
Warto wiedzieć, że wykonanie dokumentacji projektowej jest zazwyczaj odrębną usługą. Oznacza to, że nie jesteś zobowiązany do wykonania prac programistycznych w tej samej firmie, która ją wykonała. Można porównać to do projektu architektonicznego budynku – wykonany zgodnie ze sztuką daje Ci możliwość wyboru kto w kolejnym kroku zajmie budową domu.
4. Proponują niszowe lub nieskalowalne technologie
Jeśli tworzysz aplikację po raz pierwszy, może kusić Cię, aby przyjąć podejście „Nieważne jak, ważne, żeby działało”. Pamiętaj, że nawet najszybsze we wdrożeniu rozwiązanie technologiczne nie będzie warte swojej ceny, jeśli specjalizuje się w nim tylko jeden dostawca. W przypadku niszowych rozwiązań trudno będzie Ci znaleźć programistów, którzy będą mogli z łatwością przejąć development aplikacji.
Być może boisz się podjąć rozmowę na temat technologii z Twoim potencjalnym wykonawcą, ponieważ obawiasz się, że:
- niewiele zrozumiesz, co zostanie zauważone i wykorzystane,
- nie czujesz się w pozycji do wysuwania propozycji, ponieważ nie wiesz, jak je uzasadnić.
Pamiętaj, że to wykonawca (nie Ty) powinien być ekspertem w dziedzinie IT i cierpliwie wytłumaczyć Ci, dlaczego proponuje konkretne rozwiązanie lub zasugerować alternatywy. Nie bój się pytać.
Dobry wykonawca powinien zaproponować Ci rozwiązania nowoczesne, a jednocześnie sprawdzone, które pozwolą na rozwijanie Twojej aplikacji bez trudu w przyszłości. Co to znaczy i jak to rozpoznać?
- Wybór frameworków nie powinien być niszowy. Jeśli wykonawca proponuje użycie niestandardowego rozwiązania dla budowy Twojej aplikacji, powinna zapalić Ci się czerwona lampka ostrzegawcza.
- Wykonawca powinien przestrzegać dobrych praktyk w kodowaniu. Zapytaj, czy korzysta z systemów kontroli wersji takich jak Git. Systemy te pomagają zarządzać zmianami w bazie kodu, śledzić poprawki i ułatwiają pracę zespołową. Jest to cecha charakterystyczna profesjonalnych i zorganizowanych praktyk kodowania.
- Kolejnym przykładem dobrych oznak jest wdrożenie praktyk CI/CD, ponieważ zachęcają one do częstych aktualizacji kodu, testowania i wdrażania, co poprawia jakość kodu.
Możesz samodzielnie zrobić research czy technologia proponowana przez wykonawcę jest popularna i nowoczesna. Przykładami niszowych technologii są m.in. Objective-C, Xamarin lub technologie no-code, które uzależnią Cię od tego jednego dostawcy. Należy zachować ostrożność z PHP – tutaj dużo zależy od proponowanego frameworku, a jeśli wykonawca proponuje inny niż Symfony lub Laravel lub co gorsza brak framework’a, powinna Ci się zapalić czerwona lampka.
5. Oferują niską cenę, ale nie pokazują Ci skąd się wzięła
Jeśli wykonawca oferuje niską cenę bez szczegółowej analizy Twoich wymagań, może to wskazywać, że nie zrozumiał w pełni zakresu lub złożoności projektu. To zwiększa ryzyko, że będzie żądał dopłat lub porzuci Twój projekt kiedy okaże się dla niego nieopłacalny.
Zdarza się, że wykonawca celowo zaniża kwotę, wykluczając z estymacji istotne funkcjonalności, po to, by wydawać się bardziej konkurencyjnym. Warto dopytać jaki zakres i jakie założenia podjęto podczas wykonywania wyceny projektu. Brak jasności w kwestii kształtowania się ceny może sygnalizować, że początkowe oszczędności przyniosą wyższe koszty w przyszłości, zarówno finansowe, jak i te związane z jakością i zadowoleniem z końcowego produktu. Zbyt niska cena może również oznaczać niską jakość. Doświadczeni i kompetentni specjaliści będą cenić swoją pracę.
Pamiętaj również, że wycena wycenie nie równa. Jeśli nie posiadasz jeszcze szczegółowej dokumentacji, a jedynie ogólną listę funkcjonalności, szacunkowe ceny mogą znacznie się różnić w zależności od wykonawcy. Tutaj potrzebne jest Twoje zaangażowanie.
6. Nie przykładają wagi do metodyk Agile (np. Scrum).
Aby wytłumaczyć, dlaczego to znak ostrzegawczy, najpierw wyjaśnijmy sobie czym są metodyki Agile:
Jest to zestaw elastycznych praktyk zarządzania projektami, które promują szybką adaptację do zmian oraz bliską współpracę między zespołem a Product Ownerem czyli Tobą. Praktyki te zakładają, że będziesz często zapraszany do aktywnego udziału w cyklicznych spotkaniach, gdzie zobaczysz przyrost projektu, zostaniesz poproszony o feedback. To sprawia, że masz znaczący wpływ na kierunek projektu i możesz szybko reagować na nowe wyzwania oraz zmieniające się okoliczności rynkowe.
Teraz wyobraźmy sobie, że wykonawca nie stosowałby tych praktyk. Byłaby to podobna sytuacja do budowania domu, lecz bez możliwości zobaczenia efektów lub wprowadzania zmian podczas wykonywania prac. Efekt końcowy byłby możliwy do zobaczenia dopiero po zakończeniu budowy.
W przypadku tworzenia szytych na miarę aplikacji webowych i mobilnych jest wiele niewiadomych. Każda aplikacja to unikalny produkt tworzony na unikalne potrzeby. Ciągła komunikacja i transparentność pomiędzy Tobą a wykonawcą jest więc niezbędna.
7. Nie ma doświadczenia w podobnych projektach
Jeśli wykonawca nie posiada doświadczenia w realizacji projektów o podobnej skali lub w podobnej branży, może to wpłynąć na jego zdolność do radzenia sobie z specyficznymi wyzwaniami związanymi z Twoim projektem.
Takie doświadczenie w podobnych projektach wyposaża wykonawcę w umiejętności radzenia sobie z problemami, które już wystąpiły w innych aplikacjach.
8. Nie potrafią powiedzieć „nie”
Jeśli potencjalny wykonawca zgadza się na każdą Twoją prośbę, pomysł lub termin bez dokładnej analizy, może to oznaczać desperacko potrzebuje nowego zlecenia i zgodzi się na wszystko aby tylko pozyskać Cię jako klienta. Takie zachowanie często prowadzi do sytuacji, gdzie obiecane funkcje lub deadline’y nie są dotrzymane, co w konsekwencji przynosi problemy z jakością produktu końcowego i niezadowolenie klienta. Wykonawca, który potrafi rzeczowo ocenić sytuację i w razie potrzeby powiedzieć „nie”, wykazuje odpowiedzialność oraz dojrzałość w prowadzeniu projektu. Taki partner nie tylko chroni Twój projekt przed niewykonalnymi obietnicami, ale również pomaga w jego skutecznej realizacji, proponując alternatywne, realne do wykonania rozwiązania. Ważną cechą solidnego wykonawcy jest umiejętność oceny swoich możliwości i zasobów oraz szczere komunikowanie ich klientowi.
9. Ich warunki umowy są niejasne
Każdy wykonawca powinien mieć wzór umowy na usługi wykonania aplikacji i bez problemu wysłać Ci ją do wglądu przed rozpoczęciem współpracy. Śmiało możesz o nią poprosić, gdy podejmujecie dalsze kroki w kierunku zawarcia współpracy.
Jeśli potencjalny wykonawca przedstawia umowę, która jest niejasna lub zawiera ukryte opłaty i klauzule, może to być sygnał ostrzegawczy. Ważne jest, aby wszystkie warunki były przejrzyste i jasno określone, co zapewnia obopólne zrozumienie i zaufanie.
Warto również już na samym początku dopytać o szczegóły umowy utrzymaniowej i upewnić się, że wszystkie zapisy są zrozumiałe. Firma nie chce rozmawiać na temat przyszłego utrzymania aplikacji? To może sugerować, że nie jest zainteresowana jakością i wsparciem po zakończeniu projektu.
Standardem w umowach tego typu są:
- nieodpłatne przekazanie praw autorskich, co oznacza, że to Ty jesteś właścicielem aplikacji i możesz dowolnie zmieniać jej kod, lub nawet wykonawcę aplikacji w każdym momencie, nie ponosząc za to dodatkowych kosztów,
- określenie sposobu płatności i warunków (np. stawek poszczególnych specjalistów w przypadku umowy time&materials). Więcej o sposobach rozliczania możesz przeczytać tutaj,
- zapewnienie poufności i tajemnicy handlowej,
- określenie sposobu rozwiązania umowy,
- określenie czasu reakcji na błędy krytyczne lub funkcjonalne (w umowach utrzymaniowych).
Podsumowanie
Mimo że istnieją pewne wskaźniki, których warto się wystrzegać, zawsze pozostaje element zaufania, którego nie da się całkowicie zweryfikować “na papierze”. Dlatego spotkaj się z potencjalnym wykonawcą, porozmawiaj i sprawdź, jak się dogadujecie, czy to zaufanie przychodzi łatwo. Pamiętaj również, że “firma tworząca oprogramowanie” to tak naprawdę zespół konkretnych ludzi, którym zależy na dobrze wykonanej pracy zakończonej pozytywną opinią na Clutch.