Cyfrowa transformacja nie byłaby możliwa bez zaufanego i niezawodnego partnera technologicznego – należy więc wybrać go mądrze i odpowiedzialnie. Pojawia się jednak wiele wątpliwości i pytań, które należy zadać przed podjęciem decyzji – istnieje przecież ryzyko niskiej jakości otrzymanego oprogramowania. Co jeśli wpadniesz w pułapkę prawną na etapie podpisywania umowy? Co z utrzymaniem kontroli nad projektem i uzyskaniem wglądu w bieżącą pracę zespołu?
Wybierając odpowiedniego dostawcę, pod uwagę należy wziąć m.in. doświadczenie w branży, umiejętności zarządzania projektami i kulturę organizacyjną. Co jeszcze?
1. Rozmiar firmy, lokalizacja i doświadczenie w branży
Sprawdzenie jak wygląda siedziba firmy, gdzie się znajduje i ile osób jest w niej zatrudnionych pozwala określić, czy współpracujesz z godnym zaufania partnerem. Należy też upewnić się, że firma jest stabilna finansowo. Świadczy to o jej dojrzałości, doświadczeniu i sprawnym zarządzaniu. Daje również poczucie bezpieczeństwa, że firma poradzi sobie z każdym problemem. Ważna jest również jej skala w rozumieniu liczby programistów – czy odejście jednego z nich sprawi, że projekt stanie w miejscu?
2. Ukończone i bieżące projekty, referencje od klientów
Należy zawsze sprawdzić dla kogo firma pracowała i nadal pracuje. Czy to duże i rozpoznawalne marki czy tylko małe, lokalne biznesy? Kluczowa jest weryfikacja referencji – czy są prawdziwe i nadal aktualne? Czy firma pracuje przy pomocy interesujących cię technologii i czy ma doświadczenie w pracy z innymi firmami z twojej branży? Na tym etapie dobrze będzie też zobaczyć demo aplikacji, które potencjalny partner ma w swoim portfolio.
3. Stopień zaawansowania w zakresie zarządzania projektami i formy kontaktu z firmą
Sukces przedsięwzięcia zależy od tego, czy firma outsourcingowa ma kompleksowe doświadczenie w zarządzaniu projektami. Zawsze zadawaj pytanie: czy wybrany partner biznesowy ma kompletny zespół scrumowy – czy może zaoferować wyłącznie pomoc programistów, czy również managerów projektu, jakości czy trenera agile (Zapytaj o certyfikaty!). Przy wsparciu takiego zespołu pozostanie ci wyłącznie podstawowy nadzór nad projektem. Zawsze zwracaj uwagę na sposób, w jaki firma radzi sobie ze sprawami organizacyjnymi i czy ma kontakt z użytkownikiem końcowym, żeby zrozumieć jego potrzeby i oczekiwania. Wartością dodaną jest gwarancja, że partner ma możliwość identyfikacji problemu klienta poprzez np. organizację warsztatów.
4. Kultura organizacyjna
Fundamentem kultury organizacyjnej są wartości wyznawane przez firmę, przekładające się na realizację wizji oraz misję organizacji. Najlepiej zapytać o nie wprost. To, czy faktycznie mają wpływ na funkcjonowanie firmy można określić podczas pierwszej rozmowy z osobą ze sprzedaży czy zespołem deweloperów po stronie dostawcy. Konflikty w kulturze organizacyjnej pojawiają się na przykład kiedy jedna firma zarządza projektami w modelu kaskadowym, druga w modelu elastycznym. Mogą one zaowocować nieporozumieniami pomiędzy klientem a dostawcą, zarówno w zakresie oczekiwań, jak i wymagań projektowych, czego efektem może być porażka projektu.
5. Elastyczny czy kaskadowy model biznesowy?
Wybór metodologii tworzenia projektu jest bardzo istotnym jego etapem. Po pierwsze – zastanów się, czy oczekujesz zmiennego, dynamicznego środowiska czy stabilnej pracy? Jak zaplanujesz godziny, zakres i koszty prac – z góry, czy dasz sobie pewne pole do zmian? Analiza oczekiwań pomoże dobrać model biznesowy, który przyniesie największe korzyści twojej firmie.
Model elastyczny (Agile)
Metodologia Agile pozwala klientowi na kontakt z dostawcą na każdym etapie projektu i utrzymanie pełnej kontroli nad bieżącymi pracami. Kluczowe dla podejścia Agile jest dostarczenie MVP – produktu o minimalnej opłacalności (minimum viable product), już na samym początku projektu. Klient widzi namacalną część wciąż niegotowego oprogramowania, które jest ulepszane i dopracowywane na dalszych etapach. Dzięki temu już we wczesnej fazie prac można określić, czy produkt końcowy będzie korzystny dla biznesu, czy lepiej przerwać prace, nie marnując pieniędzy na ich kontynuację. Określanie zakresu prac na podstawie bieżących danych pozwala również na uwolnienie dużej dozy kreatywności.Przy wyborze Agile, akceptowalną formą rozliczenia projektu jest metoda Time&Material. Czemu jest tak opłacalna? Unikasz tworzenia pełnej specyfikacji i określania konkretnej sumy z góry – otrzymujesz rachunek za godziny pracy twojego zespołu projektowego i wszelkie zmiany nie są tak kosztowne jak przy innych typach rozliczeń.
Model kaskadowy (Waterfall)
Dla tego typu zarządzania projektem zakres prac i wymagań jest stały i znany od samego początku. Powinieneś jednak wiedzieć, że ten model rozwoju oprogramowania nie daje żadnej możliwości wglądu w bieżące prace oraz ich kontroli. Otrzymujesz gotowy produkt pod koniec trwania projektu. Do tego czasu wprowadzanie jakichkolwiek zmian może być zbyt czasochłonne i uciążliwe, a czasami wręcz niemożliwe. Istnieje ryzyko, że efekt będzie mocno odbiegał od tego, co zostało zamówione. Model kaskadowy zakłada rozliczenie na zasadzie Fixed Price, co również może stać się pewnego rodzaju pułapką. Cena zostaje ustalona z góry dla całego projektu (na bazie harmonogramu prac i twoich wymogów),a produkt może nie spełnić oczekiwań.
6. Fizyczny dystans
Im mniejszy fizyczny dystans, tym lepiej – to oczywiste. Dystans geograficzny nie powinien jednak automatycznie wykluczać firmy z grona twoich dostawców IT. Jak możesz upewnić się, że nie spowoduje problemów komunikacyjnych? Po pierwsze, sprawdź czy firma ma odpowiednie narzędzia do organizacji wideokonferencji i czy wyraża chęć do spotkania od czasu do czasu w twoim biurze. Kontakt osobisty może znacznie przyspieszyć prace. Pomoże też osiągnąć lepsze porozumienie co do twoich potrzeb. Kiedy wybierasz dostawcę operującego w innej strefie czasowej, dobrze jest dowiedzieć się jak radzi sobie z tym wyzwaniem i czy może dostosować się do twoich godzin pracy.
7. Możliwości zdalnego zarządzania zespołem
W zdalnym zarządzaniu zespołem kluczową rolę odgrywa doświadczenie. Warto więc zapytać potencjalnego dostawcę jak długo pracował w takim ekosystemie i jakich używał narzędzi. Należy również dowiedzieć się jaką stosuje metodologię i jak rozwiązuje problemy związane z koordynacją pracowników w różnych lokalizacjach.
8. Czas utworzenia zespołu deweloperów (development team)
Co powinno cię zmartwić w tej materii? “Zespół będzie dostępny w ciągu trzech miesięcy”. Jeśli słyszysz coś takiego, może to oznaczać, że firma nie posiada dla ciebie żadnego zespołu i będzie go dopiero rekrutować. To stwarza ryzyko, że zespół nie zostanie zgromadzony na czas, członkowie nie będą umieli ze sobą współpracować i mogą nie rozumieć kultury organizacyjnej firmy, co może mieć wpływ na twój projekt. “Przydzielimy zespół natychmiast!” – taka wiadomość również powinna być alarmująca. Może oznaczać, że dostawca planuje wyselekcjonowanie deweloperów z innego projektu (co może czekać w przyszłości również twój projekt) lub złoży zespół z ludzi bez odpowiedniego doświadczenia i umiejętności. Dobrym komunikatem powinno być to, że zespół nie zostanie zgromadzony od razu, ale z pewnością w mniej niż 3 miesiące.
9. Rozwiązania end-to-end
Jeśli dostawca może zagwarantować, że zapewni Ci kompletny zespół programistów, testerów, ekspertów UX, specjalistów ds. chmury lub bezpieczeństwa oraz menedżerów projektu, możesz powiedzieć, że jest to firma godna zaufania.
10. Partnerzy technologiczni i jakość dostarczanej usługi
Dowiedz się czy potencjalny dostawca posiada partnerów technologicznych, kim są ci partnerzy i jakie są ich relacje z dostawcą. Pozwoli ci to określić czy firma jest stabilna, może zagwarantować odpowiednią jakość, zna nowoczesne technologie i efektywnie ich używa.
11. Kwestie prawne – umowa ramowa
Na etapie selekcji dostawcy należy sprawdzić jaki rodzaj umowy ramowej firma stosuje. Umowa ramowa to forma kontraktu dotyczącego gotowości do zlecenia i wykonania usługi. Warto więc zapytać przyszłego partnera biznesowego o wzór takiej umowy, kryteria odstąpienia od niej i o to, jak będą przebiegać prace programistyczne. Umowa ramowa jest puntem wyjścia do pracy z danym wykonawcą, pozwalając na ustalenie warunków współpracy.
12. Znajomość RODO, bezpieczeństwo danych
Znajomość Rozporządzenia o Ochronie Danych Osobowych jest kluczowa dla sprawdzenia, czy twój potencjalny dostawca oprogramowania działa zgodnie z obowiązującym prawem. Dobrze, jeśli firma podpisuje umowę powierzenia przetwarzania danych osobowych.
Możesz również zapytać w jaki sposób dostawca dba o własność intelektualną klientów, jak zarządza informacjami wewnątrz organizacji, chroni poufne dokumenty, z jakiej formy środowiska technicznego korzysta, czy istnieje możliwość zdalnego dostępu do prac projektowych i czy dostęp ten jest chroniony przed niechcianymi użytkownikami. Warto również sprawdzić, co zawiera zaproponowana przez dostawcę umowa o zachowaniu poufności (NDA) i jak szybko ma zostać podpisana.
Dwanaście powyższych punktów to tylko podstawowa lista zagadnień i z pewnością nie wyczerpuje tematu. Biorąc pod uwagę, że stawką jest zarówno chęć cyfryzacji firmy, jak i ogromny budżet zaangażowany w takie przedsięwzięcie, warto dobrze przemyśleć dobór odpowiednich partnerów.
Autor: Jan Matulewicz, Head of Software House Cybercom Poland
Związany z branżą IT od 2004 roku. Obecnie szef Software House Cybercom Poland, pracował m.in. jako specjalista ds. dokumentacji technicznej, następnie tester, deweloper Java, lider zespołu, menedżer projektu, menedżer liniowy i product owner. Absolwent Centrum Kształcenia Międzynarodowego Politechniki Łódzkiej oraz Executive MBA na Uniwersytecie Łódzkim. Jest entuzjastą technologii w służbie ludzkości i cyfrowego humanizmu. Okazjonalnie wykładowca i trener rozwoju osobistego.