Categories: BiznesSoftware House

10 sposobów na znalezienie właściwego software house’u

Wiosna! Pora zmian. Na ten czas roku czeka wielu z nas. Często przynosi wiele pozytywnych metamorfoz, wprowadza ożywienie w życie ludzi, ale także w życie firm, otwierając nowe możliwości. To być może najlepszy czas, żeby ruszyć z nowymi projektami i znaleźć nowych, właściwych partnerów do ich realizacji. Co warto wiedzieć, jeżeli chcemy nawiązać współpracę z dobrym software housem?

Zacznijmy od tego, że znajdujemy się obecnie w bardzo ciekawym z punktu widzenia historii gospodarki okresie. Powszechna digitalizacja oraz fakt, że duża część działalności firm odbywa się za pośrednictwem sieci, powoduje, że każda firma, nawet najmniejsza musi być wyposażona w odpowiednie narzędzia. Rozwiązania, jakie wybierają firmy, w długiej perspektywie czasu determinują procesy, sposoby działania oraz zarządzania przedsiębiorstwem na wielu płaszczyznach. Dotyczyć może to logistyki, księgowości, działu obsługi klienta oraz innych ważnych tkanek organizmu zwanego przedsiębiorstwem.

Szczególnie istotne jest dobranie odpowiednich narzędzi dla działów kluczowych. Aby je wybrać lub stworzyć od podstaw potrzebujemy wsparcia doświadczonego eksperta branży IT, jakim powinien być właśnie software house. Poniżej przedstawiam listę najważniejszych elementów, na które warto zwrócić uwagę przy wyborze firmy, która stworzy dla nas cyfrowy produkt zgodnie z oczekiwaniami.

Oczekiwania a budżet

W pierwszej kolejności należy przygotować kompletną informację (brief / dokumentacja) dotyczącą specyfiki projektu. Dzięki temu dostawca będzie miał szansę ocenić jakie zasoby potrzebne są do realizacji projektu. Równie ważne jest dokładne przemyślenie budżetu, ustalenie terminu zakończenia projektu, jakiej jakości chcemy uzyskać i zakresu realizacji.

Kiedy jednak wybieramy firmę, która ma skutecznie zbudować lub wzmocnić wizerunek naszej marki nie powinniśmy traktować ceny jako jedynego kryterium wyboru. Niemożliwe jest skomponowanie jednego uniwersalnego cennika, który sugerowałby czy dana oferta jest droga, czy tania. Na cenę realizacji mogą mieć bowiem wpływ różnorodne czynniki, które nie zawsze są brane pod uwagę zarówno przez zleceniodawcę, jak i przez dostawcę rozwiązania. Oto moim zdaniem jedne z najważniejszych:

Złożoność projektu, czyli wspomniany wcześniej zakres projektu.

Dla przykładu inna będzie estymacja kosztów, kiedy planujemy zbudować aplikację czy rozwiązanie w ograniczonym stopniu, a inna, kiedy zestaw funkcjonalności będzie poszerzony i zawsze konieczny do wdrożenia. Już na samym początku powinniśmy jasno zaznaczyć — na czym nam zależy. Podczas tworzenia specyfikacji warto posługiwać się metodą MoSCoW. Opisując nasze wymagania, ustalamy priorytety i dajemy znać — co jest dla nas najbardziej istotne.

  • M – MUST (musi być) – wymaganie, które dostawca musi dostarczyć w finalnym rozwiązaniu
  • S – SHOULD (powinien być) – tak oznaczamy funkcjonalności o wysokim priorytecie, które powinny znaleźć się w rozwiązaniu, jeżeli to możliwe
  • C – COULD (może być) – opisane w ten sposób wymaganie traktujemy jako pożądane, ale nie konieczne do zrealizowania. Powinno być zrealizowane, jeżeli pozwoli na to czas i zasoby.
  • W – WON’T (nie będzie) – wymaganie, którego nie realizujemy w tym etapie projektu, ale powinno być rozpatrywane w przyszłości.

Nie każdy software house, któremu zlecimy wycenę — potrafi uwzględnić wszystkie czynniki już na samym początku. Tym bardziej, jeżeli nie przejdziemy wspólnego procesu warsztatów lub nie przygotujemy dobrego briefu, lub specyfikacji. Najlepiej jest upewnić się na samym początku, że druga strona dobrze rozumie stawiane przez nas wymagania.

Nierzadko powstają przypadki niedoszacowanej estymacji. Chcąc tego uniknąć, należy zadbać przede wszystkim o dobrą komunikację, dobrze przygotowaną specyfikację projektu, a jeszcze lepiej jest przeprowadzić z wykonawcą wspólne warsztaty. Podczas warsztatów nasz przyszły dostawca powinien dowiedzieć się nie tylko o naszych wymaganiach, ale również powinien zostać wyposażony w całą wiedzę i kontekst dotyczący naszego produktu, usługi i finalnych odbiorców. Warsztaty to również okazja do tego byśmy mogli wypracować wspólny język, lepiej się poznać, zdobyć ciekawe pomysły i świeże spojrzenie na nasze problemy i potrzeby.

Często dzięki przeprowadzeniu odpowiedniego procesu na samym początku — udaje nam się znaleźć rozwiązania, które mogą wpłynąć znacząco na realizację projektu w takim zakresie, jaki chcemy uzyskać aktualnie lub jaki chcemy zbudować w przyszłości. Powinniśmy również zdawać sobie sprawę z tego, że nie zawsze wykonawca musi mieć wiedzę w naszym specjalistycznym obszarze, przecież zakładamy, że zgłosiliśmy się do eksperta branży IT, który pomoże nam w digitalizacji naszych potrzeb.

Aktualne zapotrzebowanie

Rynek usług IT podlega takim samym zasadom jak wszystkie inne. Pracujemy na podstawie popytu, podaży oraz konkurencji. Dlatego tak ważne jest, aby podczas zlecania prac „wstrzelić się” w moment, w którym wykonawca nie posiada zbyt dużego obłożenia i może wyjątkowo skupić się na naszym projekcie lub gwarantuje pracę dedykowanego zespołu.
Sytuacja w projektach realizowanych przez software house’y zmienia się w ciągu tygodnia czy dwóch, a czasami z dnia na dzień. Nie od dziś wiadomo, że czas to pieniądz.

Zespół programistów musi mieć zapewnioną ciągłość pracy i realizacji projektów. Jeżeli nie uda nam się podpisać realizacji projektu, prawdopodobnie będziemy czekać na swoją kolej, czasem nawet kilka tygodni. Jeżeli wykonawca stara się ustalić, kiedy nastąpi decyzja o współpracy — nie zawsze chodzi tylko o „domknięcie sprzedaży”, często jest to związane z wewnętrznymi procesami planowania przebiegu realizacji. Nie powinniśmy odwlekać decyzji, jeżeli chcemy zdążyć z projektem w zaplanowanym terminie – konsekwencją może być wydłużenie terminu lub wzrost kosztów celem obsadzenia dodatkowych zasobów.

Specyfika naszej działalności

W zależności od zakresu funkcjonalności i realizowanego przez nas projektu wykonawca może posłużyć się częściowo gotowymi rozwiązaniami. Co może przyspieszyć realizację projektu lub zmniejszyć jego finalny koszt. Najczęściej gotowe rozwiązania dostarczane są na zasadzie licencji niewyłącznej lub licencji open source. W niektórych przypadkach można je przeszczepić w skali niemal jeden do jednego, dokonując niewielkich zmian. Są to jednak sporadyczne przypadki.

Większość skutecznych rozwiązań wymaga projektowania systemu od podstaw, gdzie platforma czy gotowe rozwiązanie będzie stanowiło tylko niewielką część projektu. Warto pamiętać, że aby odnieść sukces nasze przedsięwzięcie powinno starać się uzyskać przewagę nad konkurencją. Można ją uzyskać właśnie poprzez zastosowanie powyższych rozwiązań. Jednak przewaga długofalowa to nie tylko stosowanie gotowych rozwiązań, ale również odpowiedni dobór technologii i projektowanie architektury w taki sposób by kod w łatwy sposób poddawał się modyfikacjom na dalszych etapach rozwoju projektu.

Dlatego tak ważne jest ustalenie z wykonawcą, na czym nam zależy. Czy budujemy projekt, który będzie w przyszłości poddawany modyfikacjom, czy budujemy tylko rozwiązanie tymczasowe? Warto przekazać wykonawcy, z jakich elementów składa się cykl życia projektu i czy na dalszym etapie będzie również prowadzone jego utrzymanie i obsługa.

Komunikacja Software House — Klient

Warto wiedzieć, że dobra komunikacja między przedstawicielami obu stron jest kluczem do sukcesu całego projektu. Przez cały czas tworzenia oprogramowania niezbędne są liczne konsultacje oraz wyjaśnienia wszelkich nieścisłości. Nawet w bardzo dobrze omówionym projekcie podczas wykonywania prac pojawia się masa pytań. W tym miejscu należy wiedzieć, że istnieją firmy, które oferują komunikację elektroniczną za pośrednictwem specjalnych platform, a dostęp do wszystkich informacji mają wydelegowani pracownicy.

Taki system komunikacji bardzo usprawnia proces tworzenia oprogramowania i jest niezwykle przydatny w przypadku nieobecności pracownika odpowiedzialnego za projekt. Dotyczy to zarówno zleceniodawcy, jak i zleceniobiorcy. Dodatkowo pamiętajmy, że ustalenia dokonywane na piśmie jesteśmy w stanie wyegzekwować łatwiej niż ustalenia telefoniczne. Poza tym każdy z nas jest człowiekiem, który czasami zapomina. Posiadając pisemne ustalenia, pozbędziemy się problemu niedomówień. Profesjonalny software house stawia na doskonałą komunikację z klientem i udostępnia rozwiązania do zarządzania projektami.

Doświadczenie i zakres kompetencji

Niby oczywista oczywistość, ale w istocie warta poświęcenia czasu przed wyborem wykonawcy. Warto poprosić o portfolio zrealizowanych projektów i poszukać w nim informacji, czy realizował on już projekty podobne do naszego. Warto również wiedzieć, czy firma oferuje pełen wachlarz usług — frontend oraz backend development, UX/UI design, zarządzanie projektem oraz wsparcie eksperckie wraz z consultingiem na każdym etapie projektu.

Owszem, obiegowa opinia mówi, że najlepsi specjaliści specjalizują się w wąskim zakresie usług, niemniej jednak nie zawsze tak to musi wyglądać. Czasem warto zgłębić temat i zaufać doświadczeniu software house o wielu kompetencjach, choćby po to, by zaoszczędzić sobie niemałych kosztów pośrednictwa agencji reklamowej. Często w software house’ach drzemią ukryte talenty, które są warte dużo więcej niż porada specjalisty innej branży.

Dzieje się tak właśnie dlatego, że to software house ma możliwości analizowania naszego projektu pod każdym względem, od ruchu, poprzez SEO, aż po SEM i wyniki marketingu zautomatyzowanego. Dlatego warto pytać i wsłuchiwać się w zdanie przedstawicieli wykonawcy. Zawsze można zmierzyć je z tym, czego dowiemy się od innych partnerów przedsięwzięcia. Jednak nie zapominajmy o tym, że to u podstaw – czyli od kodu zaczynamy i może mieć to wpływ na wszystkie nasze dalsze działania.

Zarządzanie projektem

Istotnym czynnikiem, na który należy zwrócić uwagę — jest metodologia pracy, wedle której projekt będzie zarządzany. Warto sprawdzić, czy i z jakim skutkiem software house używa metodologii typu agile w tym zakresie. Dobry software house częstokroć zaoferuje nam współpracę w modelu opartym na stawkach time & material.

Model ten charakteryzuje się ciągłą gotowością do wprowadzania zmian, usprawnień i korekt. Im bardziej skomplikowanych rozwiązań potrzebujemy, tym bardziej dostrzeżemy zalety wynikające ze współpracy w tej formie. Nawet proste kwestie wynikające z wyglądu samego interfejsu mogą okazać się w trakcie prac do zmiany. Aplikacja, nawet ta najlepiej napisana może wymagać modyfikacji.

Należy zawsze wychodzić z założenia, że wbrew popularnemu powiedzeniu nie zawsze pierwszy pomysł musi być najlepszy. Dobra firma stawiająca na pierwszym miejscu klienta i troskę o niego z góry zaproponuje strategię dotyczącą możliwych modyfikacji i określi jasno warunki długotrwałej współpracy, zaproponuje cykl życia projektu.

Technologie, architektura rozwiązania, jakość kodu oraz bezpieczeństwo.

Wybierając software house, należy zwrócić uwagę czy usługodawca ma na uwadze wydajność systemu, jego użyteczność oraz wszelkie zabezpieczenia systemu. Profesjonalnie działający dostawca wie doskonale, że im bardziej zaawansowane technologie i rozwiązania zostaną zastosowane, tym mniejsza szansa na powodzenie działań cyberprzestępców.

Kod powinien być zbudowany w taki sposób, aby uniemożliwiał włamania oraz doskonale zabezpieczał wszelkie dane. Powinien być zoptymalizowany i przetestowany pod względem wydajności i prawidłowości funkcjonowania. Warto również dowiedzieć się, czy software house oferuje pomoc po zakończeniu realizacji projektu. Najbardziej profesjonalne firmy pomagają swoim klientom 24 godziny 7 dni w tygodniu.

Dokumentacja

Dla większości z nas aplikacja, czy strona internetowa to po prostu cyfrowy produkt. Wiele korzystających z niego osób nie potrzebuje wiedzy związanej z programowaniem “od podszewki”. Z tego względu każda aplikacja lub strona internetowa powinny posiadać swoją dokumentację techniczną. Szukając dostawcy rozwiązań informatycznych dla naszej firmy, oczekujmy od oferenta zamieszczenia w umowie pozycji, odnoszącej się do konieczności przygotowania i przekazania pełnej dokumentacji oprogramowania.

Dokumentacja taka nie zagłębiając się w szczegóły, zawiera kod źródłowy służący do jej napisania, strukturę programu lub aplikacji, rejestr wprowadzanych zmian. Dokumentacja taka może, a raczej na pewno nam się przyda, ponieważ każda aplikacja prędzej czy później może ulec awarii. Z czasem może zajść konieczność wprowadzenia zmian, aby dopasować system do nowych wymogów.

Wyobraźmy sobie zatem próbę naprawy gotowego kodu lub wprowadzenia modyfikacji bez odpowiedniej dokumentacji. Nie jest to niemożliwe, ale na pewno będzie bardzo pracochłonne, a w przypadku awarii systemu każda godzina zwłoki może oznaczać duże straty. Wystarczy, że u naszego dostawcy systemu zmienią się programiści, firma zostanie zamknięta lub przestanie nas wiązać umowa. Także, gdy zdecydujemy się na usługi innego wykonawcy lub jego obowiązki przejmie stworzony przez nas dział IT. Bez dokumentacji praca nawet nad najlepszą aplikacją będzie trudna i mozolna.

Transparentność działania

Wybrany software house powinien działań w sposób jak najbardziej przejrzysty, zarówno jeżeli chodzi o wycenę, jak i rozwój projektu. Profesjonalny usługodawca nie będzie miał problemów z estymacją kosztów i ich szczegółowym przedstawieniem. Należy zwrócić uwagę czy wskazane koszty dotyczą również utrzymania projektu oraz wprowadzania jakichkolwiek zmian na dalszym etapie projektu. A jeżeli te usługi są dodatkowo płatne, to w jakiej wysokości?

Profesjonalny software house powinien również pomóc w doborze najważniejszych funkcjonalności oprogramowania, dobierać technologie i narzędzia w taki sposób, abyśmy nie ponosili nadmiernych kosztów, jeżeli nie są one niezbędne. Dodatkowo warto wiedzieć, czy dostawca jest otwarty na pewne modyfikacje projektu w procesie jego rozwoju.

Zasoby ludzkie, czyli kto prowadzi projekt

Istotne jest, by zarówno zleceniobiorca, jak i zleceniodawca, wydelegowali projekt managerów, którzy będą bezpośrednio odpowiadali za projekt jako całość. Osoby te powinny zapoznać się oraz omówić wszelkie warunki współpracy, w tym komunikacji. Cały zespół współpracujący przy tworzeniu nowego oprogramowania powinien mieć odpowiednie kompetencje oraz doświadczenie.

Warto też podkreślić, że pracownicy obu współpracujących ze sobą podmiotów powinni stworzyć jeden zespół projektowy, który jest w stanie działać sprawnie, spójnie oraz bezproblemowo. Ogromną rolę ogrywa tu komunikacja, o której wspominaliśmy wcześniej.

Bezpieczeństwo poufnych informacji i okres wypowiedzenia umowy

Przy wyborze firmy tworzącej oprogramowanie warto uzyskać informację czy jest ona otwarta na podpisanie dodatkowej umowy o poufności. Zachowanie tajemnicy biznesowej stanowi coraz częściej o powodzeniu projektu.

Pamiętajmy, że wszystkie nowatorskie systemowe usprawnienia wypracowane w trakcie współpracy, zostały wypracowane za nasze pieniądze i mamy prawo wymagać, aby nie były implementowane w innych firmach lub startupach. Również możliwość szybkie wypowiedzenia umowy software house’owi stanowi kolejny plus dla usługodawcy w zakresie jego wiarygodności.

Lokalizacja

Warto również zwrócić uwagę na lokalizację software house’u. Jeżeli jest on zlokalizowany daleko od naszej siedziby, warto wiedzieć, czy podróże we wskazane przez nas miejsce są możliwe i jak często. Jednak pamiętajmy, że profesjonalny dostawca będzie w stanie porozumieć się z nami doskonale w sposób umożliwiający płynną realizację projektu również na odległość. Warto dowiedzieć się jakie narzędzia zaoferuje nam w tym celu.

Podsumowanie

Czynniki, które wymieniłem, są najistotniejsze, ale oczywiście niejedyne. Na samym początku warto sprecyzować swoje specyficzne wymagania, po czym wybierać software house drogą eliminacji ofert. Po odrzuceniu tych firm, które nie spełniają Twoich podstawowych oczekiwań, polecam zweryfikować przedstawione przeze mnie elementy. Wybór odpowiedniego software house’u determinuje nie tylko jakość współpracy, ale przede wszystkim powodzenie całego przedsięwzięcia, które często stanowi “być albo nie być” dla Ciebie i całej firmy

Szymon Kapturkiewicz

Od kilku lat prowadzę Software House, którego obszarem działań są technologie mobilne i webowe. W SynergyLab zajmuję się głównie analizą biznesową i nawiązywaniem relacji z Klientami. Każdą wolną chwilę poświęcam na rozwijanie kompetencji związanych metodyką LEAN.

Share
Published by
Szymon Kapturkiewicz
Tags: bezpieczeństwobiznesbudżetdokumentacjakompetencjekomunikacjasoftware housespecyfikacjatransparentnośćzarządzaniezasoby

Recent Posts

  • Procesy i metodyki
  • Software House

Co to jest Design Sprint? Kiedy warto zastosować tę metodykę?

Design Sprint to metodyka umożliwiająca szybkie i skuteczne rozwiązywanie problemów projektowych, wypracowana przez Google Ventures. Czerpie ona z design thinking,…

4 lata ago
  • Procesy i metodyki
  • Software House

Design thinking, czyli myślenie projektowe

Design thinking w świecie biznesu W świecie biznesu możemy znaleźć tysiące przykładów produktów lub usług, których twórcy byli przekonani o…

4 lata ago
  • Aktualności

InterSynergy jednym z najlepszych software house’ów w Polsce wg znanego portalu branżowego Clutch!

Mamy kilka ekscytujących wiadomości z centrali macierzystego InterSynergy! Analityk z Clutch.co właśnie rozmawiał przez telefon z naszym CEO. Dowiedzieliśmy się,…

4 lata ago
  • Startup

8 sposobów na rentowny startup – zwiększ swoje szanse

Jak wskazują badania, zainteresowanie start-upami jest ogromne, natomiast szanse powodzenia, obliczane zbyt pochopnie. Jak zatem znaleźć sposób na rentowny startup?.…

4 lata ago
  • Startup

13 sposobów na sukces startupu

Jak zdefiniować sukcesy startupów? W dzisiejszych czasach startupy wyrastają niczym grzyby po deszczu. Ludzie, słysząc o sukcesie danego startupu w mediach, próbują swoich sił,…

6 lat ago
  • Startup

Najczęstsze błędy startupów

Startup to nie tylko wzniosła idea i wizja pracy z sypialnianego łóżka-wręcz przeciwnie, to przede wszystkim ogrom pracy i wysiłku…

6 lat ago