Zdecydowałeś się na współpracę z software housem. Zanim ruszą prace programistyczne będziesz musiał wyszukać odpowiednie zespoły, przeprowadzić z nimi rozmowy i na koniec – wybrać spośród ofert, które otrzymasz. Podpowiadamy na co należy zwrócić uwagę podczas tego procesu, o czym nie zapominać i jak zwiększyć swoje szanse na wybranie rzetelnego teamu.
Jak znaleźć software house
Na początek dobrze jest wybrać kilka firm z którymi zacznie się rozmowy (czyli wyśle wstępne zapytanie ze wstępnym opisem projektu).
Gdzie ich szukać?
Można skorzystać z rekomendacji znajomych – polecony przez znajomego wykonawca pozwala nam zweryfikować wiarygodność wykonawcy.
Nawet w przypadku rekomendacji od znajomego warto uzupełnić listę potencjalnych wykonawców wyszukując ich w internecie – pozwoli to na porównanie ich ofert i doświadczenia. Serwisy takie jak Clutch.co czy www.justjoin.it/brands pozwolą ci wyszukać dziesiątki profili firm, do których możesz się odezwać. Każdy software house ma także swoją stronę internetową więc możesz po prostu użyć Google wpisując “software house”, lub zawężając wyszukiwanie do “software house + nazwa miasta”.
Wyślij zapytania do kilku firm (5 – 7), których portfolio lub profil technologiczny wydają się pasować do Twojego projektu.
Jak opisać projekt
Właściwe opisanie projektu jest bardzo istotne – pozwala na szybsze uzyskanie odpowiedzi / oferty i ułatwia wykonawcy zrozumienie zakresu prac.
Wstępny opis powinien być krótki. Najlepiej odpowiedzieć sobie na pytania:
- Jaki produkt ma powstać?
- Jakie główne zadania ma realizować?
- Jakie główne funkcjonalności ma zawierać?
Czy istnieją podobne projekty, które mogą być punktem odniesienia? Przydatne będzie wymienić choćby jeden i zaznaczyć ewentualne różnice. Najłatwiej jest zrozumieć oczekiwania klienta na podstawie konkretnego przykładu. Oprócz przykładu dotyczącego funkcjonalności dobrze jest przedstawić wzorce dla wyglądu projektu.
Czy któreś elementy mającego powstać oprogramowania są jeszcze niewiadome? Dobrze jest to także opisać.
Czy masz jakieś pytania do software house’u? To dobry moment, żeby je zadać.
Jeśli istnieje już opisana specyfikacja projektu, mockupy, lub layouty to oczywiście warto je dołączyć do zapytania.
To rzeczy, które pozwolą software house’owi już na początku zrozumieć Twoje główne potrzeby i ocenić czy taka realizacja mieści się w zakresie jego możliwości. Dobrym pomysłem jest umieszczenie w tej pierwszej, zapoznawczej wiadomości kilku własnych pytań, które już na wstępie pozwolą także Tobie dowiedzieć się czegoś o potencjalnych wykonawcach. Poniżej propozycje takich pytań i wyjaśnienie ich funkcji:
W jaki sposób się rozliczacie, czy metodą fixed price (ustalona stawka za cały projekt), czy time & materials (rozliczanie za godziny pracy)?
Czy zrealizowaliście podobne projekty w przeszłości?
Idealnie jeśli odpowiedź brzmi “tak” i jeśli jest poparta przykładami (dopytaj o nie jeśli nie zostaną podane). Często jednak, szczególnie jeśli projekt jest nietypowy, firma nie może się pochwalić podobną realizacją. To jest dość powszechne. Dobrze jeśli taka firma opisze dlaczego mimo wszystko jest w stanie zrealizować projekt. Być może jest na to gotowa, ale nie miała jeszcze okazji realizować takiego typu projektu. A może pracowała z pokrewnymi lub podobnymi zagadnieniami i może przełożyć swoje doświadczenie na Twój projekt?
Czasami możesz usłyszeć, że owszem, realizowaliśmy takie projekty, ale obowiązuje nas umowa NDA (non disclosure agreement) i nie możemy ich pokazać. Niestety, dość często zdarza się, że część realizowanych przez software house projektów jest objęta umową poufności.. W takiej sytuacji możesz poprosić o opisanie ich bez podawania szczegółowych danych, być może możliwa jest także prezentacja online zanonimizowanych fragmentów systemu.
Czy macie jakieś uwagi do opisanego projektu?
Odpowiedzi na to pytanie mogą być oczywiście bardzo różne, ale jeśli faktycznie otrzymasz jakąś merytoryczną uwagę, wskazówkę, wskazanie problemów, błędów w założeniach, lepszych rozwiązań – jest duża szansa, że rozmawiasz z dobrym software housem 🙂
Brak pytań i szybkie wysłanie ogólnej wyceny często oznacza bardzo pobieżną analizę przesłanych przez Ciebie informacji i może skutkować późniejszymi komplikacjami (np. Próbą zmiany oszacowania w późniejszych rozmowach, czy problemach w wywiązaniu się z umowy).
Jaki może być czas realizacji opisanego projektu?
Na tym etapie najczęściej nie poznasz dokładnego harmonogramu, ale możesz poznać przybliżone czasy np. w formie przedziały czasowego. To może być dla Ciebie przydatna informacja, szczególnie podczas porównywania ofert.
Jak wygląda u was proces realizacji projektu takiego jak mój?
Proste pytanie, które jednak zmusza software house do napisania czegoś. To także przyda się później, podczas porównywania ofert. Dla firm, które mają uporządkowane procesy takie pytanie nie powinno być dużym problemem. Zespoły chaotyczne i nieuporządkowane będą musiały wymyślić jakąś odpowiedź na szybko co da Ci szansę na odrzucenie ich na etapie wyboru. “Prawidłowa” odpowiedź powinna mówić o etapie zbierania wymagań, umowie, możliwości wykonania prototypu, metodologii zarządzania procesem programowania (np. scrum), testowaniu, sposobie publikacji gotowego produktu i gwarancji serwisowej.
Jeśli posiadasz określony budżet, to dobrze jest napisać o nim, choćby w formie przedziału – w ten sposób w dalszych rozmowach pozostaną tylko te firmy, które są w stanie zmieścić się w takiej wycenie, a ty zaoszczędzisz trochę czasu.
Dzięki temu, że nie jesteś pasywny w kontakcie, ale zamiast tego jasno przedstawiasz czego potrzebujesz i proaktywnie zadajesz własne pytania, zbierzesz szybko sporo informacji o firmach, do których postanowiłeś/łaś się odezwać. Ta proaktywność jest jak najbardziej uzasadniona skoro zamierzasz zainwestować swoje, często niemałe, pieniądze.
Rozmowy z software housem
Odpowiedzi na Twoje zapytanie mogą być bardzo różne ponieważ różne są firmy i bardzo różne projekty. Rozmowy będą wymagały wymiany maili, może spotkania lub rozmowy online. Ty będziesz chciał się dowiedzieć czy dana firma jest w stanie wykonać dobrze zlecenie, za ile i na kiedy. Software house też będzie chciał ustalić te same trzy rzeczy. Mimo zbieżności celów, wasze perspektywy są różne i kilka spraw może spowodować trudności:
- Nierzetelny software house może chcieć przekonać Cię, że jest w stanie zrealizować projekt nie mając kompetencji, żeby go poprawnie wykonać. Czasami dzieje się to z premedytacją, czasami z niewiedzy lub z powodu jakiejś wewnętrznej presji (słabe wyniki działu sprzedaży). Dlatego ważne jest żebyś aktywnie próbował rozeznać się w tym, z jaką firmą tak naprawdę masz do czynienia. Nie poprzestawaj na pasywnym przyjmowaniu informacji od osób zajmujących się sprzedażą. Zadaj pytania, obejrzyj stronę internetową, portfolio, przeanalizuj klientów, referencje – to nie zajmuje dużo czasu, a dostarcza cennych informacji. Możesz też poszukać szerzej w internecie, na przykład w serwisach publikujących opinie pracowników (np. https://www.gowork.pl/), lub na fanpage’u firmy.
Jeśli niedokładnie opisałeś swój projekt albo niechcący pominąłeś ważne informacje – to wszystko może spowodować problemy na kolejnych etapach współpracy. Jeżeli dane wymaganie nie pojawi się na żadnym etapie ustaleń, aż po umowę, to software house może nie uwzględnić go ani w wycenie, ani w harmonogramie. Nawet jeżeli wydaje Ci się absolutnie oczywiste, że sklep internetowy powinien posiadać blog – musi to zostać zapisane i omówione wspólnie z potencjalnym wykonawcą 🙂
Na co zwrócić uwagę podczas wstępnych rozmów:
- Czy software house komunikuje się merytorycznie? Czy zadaje trafne pytania, czy odpowiada na Twoje? Czy masz poczucie, że Twój projekt jest zrozumiały dla drugiej strony?
- Czy software house odpowiada w miarę szybko (np. w ciągu 1-2 dni) i regularnie? Czy treści są pisane starannie, bez błędów? Czy komunikacja nie urywa się nagle na kilka dni bez podania przyczyny? To wszystko świadczy o uporządkowaniu wewnątrz firmy i tym jak może wyglądać praca nad realizacją projektu.
- Czy dla wszystkich oczywista jest konieczność podpisania umowy? Umowa to standard chroniący obie strony transakcji i nie ma żadnego dobrego powodu, żeby jej nie podpisywać.
Wycena i oferta
Są różne sposoby wyceniania i rozliczania projektów IT. W Polsce najczęściej jest to fixed price. W takim przypadku ważne jest precyzyjne określenie wszystkich wymagań przed podpisaniem umowy. Gdy już otrzymasz wyceny od wybranych firm, poza samym porównaniem cen powinieneś zwrócić uwagę na następujące sprawy:
- Czy wycena wyjaśnia poszczególne elementy projektu, czy raczej podana jest jako jedna kwota? Jeśli jest to jedna kwota, nie wahaj się zapytać co się na nią składa. Podstawowe elementy, których można się spodziewać to koszt programowania, PM (zarządzanie projektem), QA (testy), w przypadku prac związanych z projektowaniem działania i wyglądu również: projektowanie layoutu, UX (prototyp funkcjonalny) oraz kwestia supportu powdrożeniowego. To przyda się też gdy będziesz porównywać wyceny z kilku firm.
- Jeżeli chcesz jeszcze raz przemyśleć ostateczny kształt projektu, możesz zapytać o dokładniejsze dane na temat wyceny: jakie kwoty wiążą się z poszczególnymi wymaganiami. Dzięki temu będziesz mógł zmniejszyć (albo zwiększyć) ilość wymagań i mieć świadomość jaki będzie to miało wpływ na cenę.
- W jaki sposób będziecie postępować jeżeli zmienią się wymagania (na przykład w trakcie prac pojawi się nowy pomysł albo coś okaże bardziej złożone niż zakładaliście). Jaką metodą rozliczane są tego rodzaju prace.
- Jeżeli rozliczenie jest na zasadzie stawki godzinowej (bez fixed price) powinieneś dowiedzieć się w jaki sposób i z jaką częstotliwością będziesz informowany o postępach prac oraz oczywiście jakie są stawki godzinowe za poszczególne rodzaje prac (np. programista frontend, backend, PM, QA etc.)
Próbka prac
Jeżeli wybór najlepszego zespołu programistycznego mimo wszystko nadal nie jest oczywisty albo jeżeli obawiasz się popełnić błąd, możesz wydzielić ze swojego projektu niewielki fragment i umówić się na zrealizowanie prac. Z reguły będziesz musiał za to zapłacić, ale jeżeli wybrany software house okaże się godny współpracy to po prostu będzie mógł kontynuować pracę, a Ty zapłacisz za kawałek własnego produktu. Jeżeli jednak podczas realizacji takiego wydzielonego zadania ujawnią się problemy (komunikacyjne, realizacyjne lub jakiekolwiek inne) będziesz mógł wycofać się z takiej współpracy. Stosunkowo niewielkim kosztem unikniesz dużej straty (pieniędzy i nerwów), którą zapewne byś poniósł podejmując się od razu pełnej współpracy.
Samo wydzielenie fragmentu projektu, który z jednej strony pozwoli Ci ocenić jakość prac, a z drugiej będzie mógł zostać wykorzystany w dalszych pracach może być czasami trudnym zadaniem, ale zawsze da się coś takiego określić.
Podsumowanie
A więc przesłałeś do kilku software house’ów krótki, ale precyzyjny opis swojego projektu. Napisałeś co powinno być zrobione, z kilkoma firmami prowadziłeś rozmowy na temat sposobu realizacji, szczegółowych wymagań. Sprawdziłeś każdą z firm i doszedłeś do etapu, w którym masz do wyboru kilka sensownie wyglądających ofert.
Przede wszystkim powinieneś dokonać chłodnej oceny i jeśli coś wygląda zbyt atrakcyjnie pod względem finansowym lub czasowym, szczególnie w porównaniu z innymi propozycjami – prawdopodobnie będzie to problematyczne do zrealizowania. W takim przypadku warto więc ponownie przyjrzeć się ofercie i portfolio firmie, która z oszacowaniem odstaje od pozostałych i zweryfikować, czy aby na pewno spełnia twoje oczekiwania.
Jeżeli rozmowy były prowadzone aktywnie to powinieneś mieć na tym etapie możliwość podjęcia decyzji zwyczajnie porównując wszystkie zebrane informacje. Jeżeli żadna z firm i ofert nie wydaje Ci się odpowiednia, nie musisz wybierać spośród nich. Możesz wrócić do punktu pierwszego i poszukać jeszcze raz. Wybór odpowiedniego wykonawcy to najważniejszy krok, który determinuje losy Twojego projektu.
Mamy nadzieję, że wiedza zawarta w tym artykule będzie dla Ciebie pomocna, a jeśli miałbyś jakieś uwagi, to zapraszamy do komentowania na naszym Facebookowym fanpage’u 🙂