Outsourcing programistyczny

Pojedynczy programista czy większy zespół? Potrzebujesz eksperta z jakiejś konkretnej dziedziny programowania czy raczej myślisz o zewnętrznym dziale programistyczny? W każdym przypadku mamy dla Ciebie rozwiązanie, które pomoże zrealizować nawet najbardziej wymagający projekt.

Zalety outsourcingu programistów

Szybki start

Ruszamy z projektem w maksymalnie 2 tygodnie.

Szeroki zakres kompetencji

Dopasujemy zespół do potrzeb projektu – Ruby, .Net, Java, Javascript, Python, React Native, Node.js, Angular, Perl, Visual Basic, Golang, C++ czy C# to dla nas drobnostka.

Kompleksowa obsługa

Nie tylko programujemy – zapewniamy też konsulting, projekty UX/UI, utrzymanie (SLA), serwery i hosting. Możemy powiększyć zespół o specjalistów od dodatkowych technologii.

Robimy trudne projekty

Dajemy radę tam, gdzie inne zespoły poległy. Dla nas to nie problem, a wyzwanie.

Elastyczna umowa ramowa

Umowa upoważnia klienta do składania zamówień. Klient określa tylko wymiar godzinowy zakontraktowania i czas objęty zamówieniem.


Jeżeli chcesz dowiedzieć się więcej na temat outsourcingu programistów lub potrzebujesz podobnego rozwiązania – zadzwoń lub napisz do nas przez formularz kontaktowy.

Aplikacja IBL

Naukowy system do przetwarzania danych biobibliograficznych


Klienci ImpiCode


Dlaczego outsourcing programistyczny?


Na podstawie raportu KMPG firmy najczęściej wybierają usługi outsourcingowe w Indiach (zazwyczaj jakość wykonania tych usług jest, podobnie jak ich cena, dość niska). Jednocześnie można zaobserwować, że Polska zajmuje coraz wyższe miejsce w rankingu outsourcingu programistów, budując swą pozycję jako dostawca usług wysokojakościowy i eksperckich. Rynek tego rodzaju usług IT jest coraz większy, o czym świadczyć może ilość firm, które się specjalizują wyłącznie w outsourcingu programistycznym.

W zakres usług firm outsourcingowych zazwyczaj wchodzi: rozwój oprogramowania, testowanie, opracowywanie rozwiązań biznesowych w IT, infrastruktura IT (m.in.monitoring, wirtualizacja, bazy danych), inżynieria przemysłowa.

Outsourcing programistyczny pojedynczego eksperta lub outsourcing całego zespołu jest bardzo korzystną formą zatrudnienia. Model jest bardzo elastyczny, a rozpoczęcie współpracy niemal natychmiastowe. Nie trzeba sprawdzać każdego pracownika pod kątem przydatności w projekcie. Usługa ta najlepiej sprawdzi się w firmach, które szybko się rozwijają i mają nadmiar zleceń lub chciałby zbudować jakiś system informatyczny, ale nie mogą pozwolić sobie na kilkumiesięczne przesunięcie startu projektu tylko ze względu na przeciągającą się rekrutację. W wielu sytuacjach wynajem programistów te kilka tygodni wcześniej może uratować projekt.

Dodatkową zaletą jest to, że firma, która zdecyduje się na taką formę współpracy, nie musi wygospodarowywać w biurze miejsca na nowych członków zespołu, a co za tym idzie, nie ponosi kosztów związanych z utrzymaniem większego biura i wyposażenia stanowiska pracy (komputer, oprogramowanie, wyposażenie biurowe itp.).

W dzisiejszych czasach wynajem programistów jest wykonywany właśnie na zasadach pracy zdalnej. Oczywiście programiści nierzadko muszą uczestniczyć w spotkaniach zespołu i przy opracowywaniu strategii, jednak może się to odbywać za pomocą systemów wideokonferencyjnych. Choć oczywiście spotkania twarzą w twarz też nie należą do rzadkości.

Stosowanie outsourcingu programistycznego ma wiele zalet. Najistotniejszą jest zmniejszenie kosztów budowania i obsługi systemów informatycznych. Decydując się na wynajem programistów od profesjonalnej firmy IT uzyskujecie Państwo dostęp do kompetentnej kadry i możliwość elastycznego podejścia do kwestii zasobów programistycznych.

Oddelegowanie tworzenia i utrzymania systemów informatycznych daje dostęp do wykwalifikowanego personelu bez konieczności martwienia się o zarządzanie zespołem i podnoszenie kompetencji. Zdolność rekrutacji i oceny pracowniczej jest nieporównywalnie większa w wyspecjalizowanej firmie informatycznej.

Decydując się na outsourcing programistyczny zyskujemy też możliwość lepszego dopasowania godzinowego zaangażowania programistów do bieżących potrzeb firmy. Mamy również o wiele łatwiejszy dostęp do specjalistów w innych technologiach i o innych kompetencjach niż te aktualnie używane przez firmę. Pozwala to na znacznie bardziej elastyczne zarządzanie projektem. Przykładowo nie trzeba rekrutować specjalisty od systemu X, jeśli wiemy, że będzie on potrzebny tylko na kilkadziesiąt godzin, aby wspomóc proces integracji, a później będzie zbędny. Dostępność praktycznie na każde wezwanie specjalistów od rozmaitych technologi ułatwia ekspansję na nowe obszary funkcjonalne (jak choćby aplikacje mobilne czy rozwiązania IoT) i tworzenie nowych produktów. Poszerza też perspektywę kierownictwa firmy czy projektu, pozwalając na rozważanie działań przez pryzmat rzeczywistych potrzeb, a nie aktualnie dostępnych zasobów ludzkich.

W firmach budujących zespół programistów inhouse dość często obserwuje się pewnego rodzaju zamknięcie na nowe możliwości, zwłaszcza jeśli zatrudniono specjalistów od wąskiego zakresu technologicznego. Zatrudnianie w firmie specjalistów w jednej tylko technologii prowadzi do organizacyjnego i operacyjnego przywiązania do niej całego zespołu. Problem w tym, że nie zawsze jest to technologia w danym projekcie optymalna, lecz jest przez pracowników rekomendowana jako jedyna zgodna z ich zakresem kompetencji. A tymczasem rozwiązanie oparte na innym języku czy frameworku mogłoby być korzystniejsze. Co gorsza, czasem dotyczy to również technologii przestarzałych! I wówczas firma staje się gettem jakiegoś archaicznego, odchodzącego w zapomnienie rozwiązania technicznego. Do pewnego momentu nie jest to problemem. Ale kiedy odchodzi ostatni specjalista od danej technologii, starzejący się system stanowi poważne zagrożenie dla działania firmy.

Wyspecjalizowana w outsourcingu firma nie ma takich ograniczeń i zawsze rekomenduje rozwiązania i technologie, które najlepiej się sprawdzą w przypadku konkretnego projektu. Dzięki outsourcingowi zespołu programistycznego firma, zamiast przedzierać się przez niuanse branży IT, może skupić się na swym bazowym biznesie.

Do najpopularniejszych technologii, w których firmy zmawiają u nas outsourcing, należą Python/Django, Angular, PHP, .NET i React Native.

Outsourcing programistyczny, a utrzymywanie własnego programisty

Nierzadko przy małym zapotrzebowaniu na prace programistyczne (np. rzędu jednego etatu) firmy nie widzą potrzeby outsourcingu. Jest to jednak duży błąd. W takich sytuacjach ani zarząd firmy ani dział HR, który na co dzień nie zajmuje się rekrutacją pracowników IT, nie jest w stanie przewidzieć, ile czasu będzie wymagało znalezienie i zatrudnienie właściwego człowieka, ani właściwie ocenić kompetencji potencjalnych kandydatów.

Pierwszy programista w firmie staje się niejako kierownikiem działu IT , nawet jeśli jego formalne stanowisko jest inne. Stawia się przednim np. takie zadania jak wybór technologii nowego projektu, czy zbudowanie architektury aplikacji, co często znacząco wyrasta ponad kompetencje przeciętnego programisty. W rezultacie w firmie wdrażane są przypadkowe narzędzia i technologie, a ich zestaw zależy od tego, co akurat umiał i znał zatrudniony programista lub co aktualnie jest najmodniejsze w branży.

Bez porównania lepszą jakościowo usługą jest tutaj wersja outsourcingu, w której firma IT udostępnia programistę, nad którym czuwa dedykowany kierownik techniczny, nadając kierunek rozwoju powstających rozwiązań informatycznych. Dzięki temu otrzymujemy idealne połączenie kompetencji i ceny związanej z utrzymaniem systemów informatycznych. Mamy na pokładzie, stale do dyspozycji dedykowanego programistę, a przy tym wsparcie eksperta o znacząco wyższych kompetencjach. Oczywiście można pomyśleć również o tym, aby zatrudnić samego eksperta, ale:

Zatrudniając samodzielnie programistę musimy brać pod uwagę wiele problemów. Np. w wypadku, gdy zatrudniony w klasycznym modelu programista odchodzi z firmy, to za każdym razem koszt znalezienia nowego pracownika będzie coraz większy. Każdorazowo będziemy musieli szukać osoby o coraz węższej specjalizacji, która zna coraz to kolejne technologie wprowadzone do systemów przez poprzedników.

Zatrudnienie specjalisty poprzez zewnętrzną firmę HR również mija się z celem. Jest to kosztowne rozwiązanie, które wbrew pozorom kończy się zdobyciem pracownika niezgodnego z naszymi potrzebami. Firmy HR operują tylko na poziomie nazw technologii i naprawdę bardzo rzadko rozumieją potrzeby informatyczne swoich klientów. Znajdą pracownika, który w najlepszym przypadku będzie tytułował się specjalistą w jednej z używanych w firmie technologii. Zazwyczaj kończy się to w ten sposób, że taki specjalista prowadzi projekty w kierunku rozszerzenia integracji tej technologii. Nie do końca skupia się na wyborze narzędzia, które w najtrafniejszy sposób rozwiązywałoby problem biznesowy, ułatwiałoby rozwój przedsiębiorstwa i optymalizowałoby koszty utrzymania infrastruktury.

Kiedy warto zdecydować się na outsourcing?

Jako firma outsourcingowa moglibyśmy powiedzieć, że zawsze. 🙂 Ale wiadomo, że są sytuacje, w których outsourcing programistów powinien być domyślnym rozwiązaniem. Oto kilka z nich:

Komunikacja i miejsce wykonywania prac

Dostajemy od klientów wiele pytań o miejsce wykonywania prac. Wielu z nich narzeka, że dzisiaj programiści, których zatrudniają, chcą pracować wyłącznie zdalnie i komunikować się wyłącznie drogą mailową. Jesteśmy profesjonalną firmą programistyczną. Nasi programiści pracują u nas w biurze. Tylko w ten sposób możemy pracować nad ich rozwojem, podnosić ich umiejętności i kontynuować ciągłe szkolenie. U nas na miejscu mają dostęp do kompetencji kierowników projektów, którzy pomagają im i doradzają przy rozwiązywaniu złożonych problemów technicznych, architektonicznych i optymalizacyjnych. Doskonale rozumiemy potrzebę komunikacji z klientem i zespołem technicznym klienta. W początkowym okresie świadczenia outsourcingu możliwe jest ulokowanie zespołu programistycznego u klienta po to, żeby wdrożyć się w projekt i zdobyć niezbędną wiedzę branżową. Później zwykle możliwe są spotkania kontrolne i projektowe np. raz w tygodniu. Rozumiemy też, że w outsourcingu programistycznym pojawia się ciągła potrzeba komunikacji. W naszej usłudze podstawową metodą komunikacji są rozmowy telefoniczne i telekonferencję. Drogą mailową ustalamy mniejsze rzeczy i potwierdzamy ustalenia zawarte podczas rozmów telefonicznych i online. Mamy swoje narzędzia do zarządzania projektem i komunikacji w projekcie np. JIRA, ale w razie potrzeby dostosowujemy się do wymagań i narzędzi używanych przez naszego klienta.

Organizacja prac

Rozpoczynając nowy projekt zawsze przydzielamy do niego programistę na poziomie kierownika. Jego zadaniem jest nie tylko techniczne rozpoznanie projektu, lecz także zrozumienie wewnętrznych uwarunkowań klienta, jego modelu biznesowego i wymagań pozaprogramistycznych. Dopiero po wprowadzeniu kierownika w miarę potrzeb przydzielamy do projektu kolejnych programistów, którzy są już doszkalani przez naszego kierownika. Dzięki temu nasz zespół gładko i bez dezorganizacji pracy klienta wchodzi w każdy projekt programistyczny.

W trakcie prowadzenie całego projektu staramy się stale utrzymywać przynajmniej dwie osoby, które dobrze rozumieją zarówno techniczne jak i pozatechniczne wymagania klienta. Dzięki temu skutecznie zapewniamy ciągłość usługi w przypadku jakichkolwiek zdarzeń losowych i zmian kadrowych. W naszym i klienta interesie jest, abyśmy utrzymywali u siebie raz uzyskaną wiedzę na temat klienta i jego projektów. Czyli, innymi słowy, staramy się doprowadzić do stanu, w którym nie jesteśmy dla klienta „ludźmi z zewnątrz”, lecz działem programistycznym, którego administracja i zarządzanie jest realizowane przez dostawcę, ale który dobrze rozumie funkcjonowanie klienta.

Rozliczenia

Bardzo dokładnie rozliczamy czas pracy programistów. Co miesiąc wysyłamy naszym klientom raport (worklog), który dla każdego dnia zawiera dokładny czas pracy oraz podsumowanie zrealizowanych zadań. Dzięki temu możliwa jest kontrola założonych celów. W ramach usługi nasz zespół przygotowuje szacowania wszystkich zadań, a dzięki dostępowi do raportu czasochłonności klienci modyfikują listę priorytetów, co pozwala na bardzo dokładną kontrolę nad świadczonym outsourcingiem IT.

Zawsze dbamy o rzetelność worklogów. Po pierwsze dlatego, że sami z nich korzystamy do rozliczeń z programistami, po drugie dlatego, że sumiennie prowadzone raporty z prac są podstawą transparentności, na której budujemy współpracę z klientem i jego zaufanie do naszej usługi.

Szacowanie kosztów i planowanie

Wiemy jak istotne są dla naszych klientów koszty. Dlatego od samego początku staramy się szacować czasochłonność każdego projektu i poszczególnych zadań w jego obrębie. Oczywiście na początku nie jest to łatwe, bo jeszcze mało wiemy zarówno o projekcie jak i o kliencie, ale z nasze prognozy czasem stają się coraz dokładniejsze.

Szacowanie czasochłonności zadań ma dwie podstawowe funkcje: klientowi pozwala kontrolować budżet i podejmować strategiczne decyzje, a nam pomaga zorientować się, w którym miejscu projektu jesteśmy i czy widzimy jakieś zagrożenia. Dodatkowo są one (poza worklogami) drugim filarem transparentności i zaufania naszego klienta.

Outsourcing programistyczny – czas potrzebny do startu

Staramy wychodzić się naprzeciw potrzebom naszych klientów. Zazwyczaj jesteśmy gotowi do startu projektu w ciągu dwóch tygodni od odpisania umowy. W wielu przypadkach już po tygodniu przydzielamy kierownika, który rozeznaje się w projekcie i przeprowadza wszelkie niezbędne analizy, a także przystępuje do realizacji najpilniejszych pilnych potrzeb. Pomaga też w podjęciu decyzji, kto z naszych specjalistów najlepiej sprawdzi się w wyzwaniach konkretnego projektu.

W kolejnych tygodniach przydzielamy do projektu kolejne osoby. Zazwyczaj w ciągu miesiąca od podpisania umowy mamy już skompletowany pełen zespół. Za onboarding nowych ludzi odpowiada nasz kierownik projektu, który działa w nim od samego początku.

Ty decydujesz o formie zgłaszania zadań

Jesteśmy elastyczni i dopasujemy się do systemu zarządzania projektami i czasem pracy klienta. Ale jeśli nie masz zorganizowanego tego aspektu, nie ma najmniejszego problemu, pomożemy Ci ze wszystkim. Jeśli zechcesz, zorganizujemy w Twojej firmie odpowiednie środowisko programistyczne i projektowe. Możemy też skorzystać z naszej infrastruktury, aby sprawnie zarządzać Twoim projektem.
Ty decydujesz o celach i zadaniach, my dbamy o wykonanie, organizację, transparentność i płynność współpracy.


Wynajem specjalistów IT – outsourcing programistów

Specjaliści mogą wykonywać samodzielne zadania, lub stanowić wsparcie w Twoim zespole. Delegowana może być zarówno pojedyncza osoba, jak i cały zespół wykonujący projekt. Posiadamy wiedzę i kompetencje aby zbudować dla Ciebie indywidualnie dopasowany team, odpowiedni do realizacji konkretnego projektu. Opowiedz nam o swoim projekcie, wskaż jego cele, technologie w jakich chciałbyś działać, a my dostarczymy Ci zespół spełniający wszystkie wymagania.

Wyróżniamy się wysoką elastycznością i szybkością działania. Klienci chwalą nasz profesjonalizm, samodzielność i inicjatywę. Doskonale znamy i rozumiemy specyfikę wielu branż i rodzajów systemów. Jesteśmy w stanie szybko i dobrze dobrać specjalistów do konkretnych projektów, precyzyjnie spełniając wymagania w Twojej firmie.

Firma programistyczna – Outsourcing

Outsourcingowa firma programistyczna jest o wiele stabilniejszym rozwiązaniem, jeżeli chodzi o budowanie stabilnego zespołu. Dzięki niej większego problemu nie stanowi na przykład odejście kierownika projektu. Nawet jeżeli outsource’owany specjalista odejdzie z projektu, to solidny dostawca outsourcingu powinien mieć gotowe scenariusze na taką okoliczność, najprawdopodobniej dysponując odpowiednimi zasobami na zastępstwo oraz kompetencjami, by sprawnie zrekrutować nowego człowieka na to stanowisko.

W przypadku współpracy z zewnętrzną firmą programistyczną o wiele łatwiejsze będzie też zaradzenie zmieniającym się zapotrzebowaniem na zasoby. Nasz dostawca oprogramowania może po prostu przesunąć programistów do swoich innych projektów. Jest to łatwiejsze niż kosztowne i trudne emocjonalnie dla wewnętrznego zespołu IT zwalnianie pracowników. Firma programistyczna sama będzie proponowała najlepsze narzędzia i technologie potrzebne do rozwiązania problemu. Niektóre firmy programistyczne mają kompetencje w wielu dziedzinach programowania, co ułatwi nam rozwój na różnych polach, tworzenie różnorodnych produktów i pozwoli na sprawniejsze podążanie za trendami technologicznymi.

Outsourcing kompetencyjny

O klasycznym outsourcingu mówi się najczęściej w kontekście niedoboru, brzydko mówiąc, siły roboczej. Natomiast gdy zapotrzebowanie klienta skupia się na bardzo wysokich kwalifikacjach, potrzebnych w krytycznych momentach realizacji projektu, często w obszarze zainteresowań znajduje się outsourcing kompetencyjny.

Outsourcing kompetencyjny polega na czasowym zaangażowaniu w projekt wysokiej klasy eksperta w danej dziedzinie. Z założenia człowiek taki będzie potrzebny jedynie przez ograniczony czas, zatem na ogół jego zatrudnienie na stałe nie ma sensu. Dodatkowo ekspert taki często nie angażuje się w bieżące prace zespołu, lecz pełni bardziej funkcje doradcze. Zatem niekoniecznie musi być w dany projekt zaangażowany w pełnym wymiarze pracy i może równolegle pracować na rzecz różnych klientów.

Outsourcing kompetencyjny w obszarze IT przynosi największą korzyść w obszarach, w których stały zespół nie ma kompetencji i jednocześnie kompetencji tych nie ma sensu budować. Najczęściej są to kwestie związane z:

Outsourcing programistów – use case

Załóżmy że jesteś szefem sporego zespołu IT. Dział kadr (Human Resources) działa świetnie i błyskawicznie wyszukuje dla Ciebie specjalistów, kiedy tylko są potrzebni. Masz świetnych kierowników, więc nie zdarzają się opóźnienia na projektach. No i masz wielką swobodę działania, bo nikt nie rozlicza Cię z liczby etatów programistów w firmie. Cały dział IT chodzi jak w zegarku. Krótko mówiąc, masz komfortową sytuację, o jakiej wielu może tylko marzyć.  Czy myślisz o współpracy z firmą outsourcingową? Pewnie nie. Czy powinieneś zacząć o niej myśleć? Jesteśmy przekonani, że tak.

Pewnie myślisz sobie teraz, że za chwilę przeczytasz kolejny artykuł o tym, że outsourcing programistyczny jest lepszy niż własny zespół IT, to jesteś w błędzie. Nie w tym rzecz, własny dobry i sprawdzony zespół jest niezastąpiony. Dlaczego więc nawet go mając, warto spróbować outsourcingu IT? Właśnie po to, by wypróbować, jak outsourcing programistów działa w praktyce.

Nie przewidujesz takiej potrzeby? Nic jej nie zapowiada? Cóż, życie jest pełne niespodzianek i niepewności, a dobry szef jest zawsze przygotowany na najgorsze. Możliwych scenariuszy jest wiele: masowe odejście informatyków, wyjątkowo trudny projekt wdrożeniowy albo gwałtowny rozwój firmy. Ale skończmy z banałami. To wie każdy. Każdy też wie, że jeśli taki problem zaistnieje, to można skorzystać z outsourcingu. Ale niestety nie każdy wie, jak to funkcjonuje w praktyce.

Outsourcing od kuchni

Pomińmy już kwestie oczywiste, takie jak to, że znalezienie odpowiedniego dostawcy czy wynegocjowanie zadowalających warunków zajmuje czas, przez co może być (i zwykle jest) wielkim problemem w sytuacji, gdy nagle coś się w naszym perfekcyjnym świecie zawala. Chodzi też o nieco bardziej subtelne, lecz niemniej ważne kwestie. Jak sprawnie i bezkonfliktowo wkomponować ludzi z zewnątrz we własny zespół IT? Jakie ustalić zasady komunikacji? Jaki zaproponować podział obowiązków i odpowiedzialności? Jak ustalić priorytety? Kto przed kim odpowiada? I w jakim zakresie? Kto i w jakim obszarze podejmuje decyzje projektowe? Jakie zadania można powierzyć zewnętrznemu dostawcy, a jakie lepiej realizować własnymi siłami?

To tylko niektóre z pytań, jakie pojawiają się przy rozpoczęciu współpracy z dostawcą zespołów programistów. Nie ma na nie prostych odpowiedzi. Nie ma standardowych rozwiązań. One muszą być wypracowane na linii Twój zespół – dostawca. Być może przedstawione problemy teraz tak na oko nie wyglądają one strasznie, ale pamiętaj, że mówimy o działaniu w sytuacji kryzysowej, gdy możesz zwyczajnie nie mieć czasu i chęci by się nimi zajmować. O ile lepiej by było, gdyby się przygotować? By pomimo kryzysu Twój dział nadal funkcjonował prawidłowo?

Możesz to osiągnąć, rozpoczynając współpracę z dostawcą outsourcingu programistów na przyjaźniejszym gruncie, gdy „nic się nie pali”.  Gdy możesz ten model przećwiczyć na własnych warunkach, na wybranym przez siebie niekluczowym projekcie. Spokojnie zaczniesz współpracę, poznasz swojego dostawcę usług programistycznych i jego model pracy. Dowiesz się, jak to wszystko w praktyce działa. Dzięki temu zyskasz wiedzę praktyczną i będziesz przygotowany do działania gdy nadejdzie kryzys.

Właśnie dlatego wiele dużych firm korzysta z outsourcingu zespołów programistów. Nie dlatego, że muszą, ale dlatego, że chcą. Chcą wiedzieć, jak to jest pracować z zewnętrznym dostawcą usług programistycznych. Chcą mieć przećwiczony ten model współpracy na wypadek kryzysu. Bo wiedzą, że sprawdzony dostawca programistów, który umie z nimi współpracować, pomoże im ten kryzys złagodzić.

Dlatego, nawet gdy Twój dział IT jest dobrze naoliwioną, sprawnie działającą maszyną, dobrze mieć sprawdzonego dostawcę outsourcingu programistów I przećwiczoną współpracę z nim. Tak na wszelki wypadek. Bo nigdy nie wiesz, kiedy nadejdzie kryzys. Ale jak nadejdzie, będziesz gotowy.

Rozpoczęcie outsourcingu

Zanim zaczniemy współpracę z nowym klientem, zadajemy szereg pytań, których celem jest rozpoznanie sytuacji technologicznej i o organizacyjnej. Uzyskane odpowiedzi pozwalają nam lepiej dopasować ofertę do potrzeb klienta.

Poniżej prezentujemy listę najważniejszych pytań, które zadajemy przyszłym klientom:

Czy na outsourcingu można polegać?

Naszym zdaniem outsourcing jest pewniejszy niż inne formy współpracy z programistami. Kwestie najbardziej oczywiste (jak większa elastyczność współpracy czy łatwy dostęp do specjalistów) zostały już wcześniej omówione. Tu chcemy zwrócić uwagę na inną kwestię – w przypadku profesjonalnego dostawcy outsourcing oferuje również znacznie więcej, niż tylko siłę roboczą. Dobry dostawca outsourcingu bardzo dba o jakość relacji z klientem i oferuje wsparcie na bardzo szerokim froncie.

Doświadczenie zdobyte w innych projektach pomaga nie tylko w sferze ściśle technologicznej, lecz również organizacyjnej i biznesowej. Dobry dostawca usługi outsourcingowej nie jest tylko biernym wykonawcą, ale aktywnie podpowiada alternatywne rozwiązania wszelkich problemów, jakie można napotkać podczas realizacji projektu. Dla rzetelnej firmy programistycznej nie ma nic gorszego, niż projekt, który z jakiegoś powodu nie toczy się zgodnie z planem lub nawet całkiem stanął w miejscu. W takiej sytuacji pomoc doświadczonego dostawcy może być nieoceniona. Ostatecznie chodzi o to, by z powodzeniem zakończyć projekt i uzyskać od klienta dobre referencje.

Zawsze z dumą podkreślamy, że nasi kierownicy nierzadko byli proszeni o pomoc w rozwiązywaniu problemów, które dalekie były od kwestii czysto technicznych. Prowadziliśmy spotkania wewnętrzne, reprezentowaliśmy klientów w spotkaniach z odbiorcami ich usług i produktów, a nawet prowadziliśmy mediacje. Wszystko po to, by doprowadzić do sukcesu projektu.

Outsourcing na pół etatu?

Czy jest możliwy outsourcing w niepełnym wymiarze pracy? Oczywiście, że tak. Jest wiele sytuacji, gdy jest to optymalne rozwiązanie. Outsourcing nie zawsze musi dotyczyć dużych projektów wymagających kilkuosobowych zespołów. Są projekty, w których ma sens znalezienie specjalisty dostępnego na pół czy nawet na jedną czwartą etatu. Najczęściej są to projekty o charakterze utrzymaniowym, w tym również takie, w których mamy do czynienia ze przestarzałymi technologiami. Czasem również outsourcing na niepełny etat ma zastosowanie w przypadku usług konsultingowych i doradczych lub w sytuacji, gdy potrzebujemy bardzo doświadczonego eksperta, który nie tyle bezpośrednio zajmować się programowaniem, co raczej pomóc w najtrudniejszych kluczowych aspektach projektu.

Jakie zasoby i procesy outsource’ować?

W dzisiejszych czasach możliwy jest outsourcing praktycznie dowolnych kompetencji, od pracowników niewykwalifikowanych do specjalistów (księgowi, prawnicy, wyższa kadra managerska). Należy więc odpowiedzieć sobie na pytanie, outsource’owanie w jakim obszarze przyniesie firmie najwięcej korzyści? Tutaj spojrzymy na temat ze znanej nam najlepiej perspektywy branży IT.

Wśród firm intensywnie korzystających z outsourcingu zwykło się mawiać, że „outsource’ować można wszystko poza kluczowymi procesami biznesowymi”. Z pewnością jest w tym wiele prawdy. Można powiedzieć, że outsourcing programistyczny powinna rozważyć każda firma, która ma indywidualne potrzeby informatyczne, ale nie dysponuje własnym zespołem koderów i takiego zespołu nie chce na dłuższą metę utrzymywać.

Ale znane są nam również przypadki firm, których podstawową działalnością jest tworzenie produktów lub świadczenie usług programistycznych. Firmy takie również (i to wcale nierzadko) korzystają z outsourcingu. Dlaczego tak się dzieje?

Jak wiadomo w firmach programistycznych koderzy są kluczowym zasobem. Ale koder koderowi nie równy. Większość firm koncentruje się na wybranych technologiach, nie posiadając kompetencji w innych obszarach. A sytuacje, w których trzeba eksperta od jakiegoś nieznanego w zespole języka lub frameworka spotyka się dość często. Outsourcing programisty (lub zespołu), aby czasowo uzupełnić lukę kompetencyjną, wydaje się optymalnym rozwiązaniem.

Co więcej, wiele firm decyduje się również, aby outsourcować specjalistów w dokładnie tych samych technologiach, jakie są w firmie dobrze znane. Jaki w tym sens, skoro można powiększyć własny zespół? Właśnie taki, by zespołu nie powiększać. Zewnętrzna ekipa programistów pracująca na bieżąco z własnym zespołem pod wieloma względami zwiększa elastyczność. Gdyby nagle trzeba było zredukować skład przy jakimś projekcie, łatwiej to zrobić w przypadku pracowników outsourcowanych. Zwolnieni pracownicy rzadko wracają do tego samego pracodawcy. A firma nie powinna mieć większego problemu z powrotem do świadczenia tej samej usługi. Co więcej firma outsourcingowa może na ogół znacznie szybciej wprowadzić nowych ludzi do projektu, niż gdyby trzeba uruchomić procedury rekrutacyjne. Zatem kilka osób w zespole pracujących formalnie dla zewnętrznego dostawcy stanowi bardzo wygodny w zarządzaniu bufor. Co więcej, można się w taki bufor zaopatrzyć zanim jeszcze pojawi się nagląca potrzeba. Dzięki temu kiedy na gwałt potrzebni będą nowi ludzie, wszystkie ścieżki będą przetarte, procedury formalne załatwione, a dostawca sprawdzony w spokojniejszych czasach.

Ile firma może zaoszczędzić na outsourcingu?

Proste porównanie kosztów zaangażowania outsourcowanego zespołu z takim samym zespołem zatrudnionym wewnętrznie z pewnością nie wypada na korzyść dla outsourcingu. Jeśli założyć, że programista dostaje te same pieniądze, to konieczne jest również doliczenie marży firmy dostarczającej usługę. Jednak tak uproszona kalkulacja nie uwzględnia wielu innych kosztów. Do najważniejszych należą:

Niektórych z tych kosztów są stosunkowo proste do oszacowania (jak rekrutacja czy opóźnienia realizacyjne), inne bardzo trudno określić, choć zdecydowanie nie należy ich pomijać (jak choćby koszty zarządcze). Rozsądne przybliżenie każdego z nich pozwoli na zdecydowanie bardziej miarodajny bilans porównawczy kosztów outsourcingu i własnego zespołu.

Cennik outsourcingu

Przeanalizujmy przykładowe koszty projektu programistycznego realizowanego w modelu outsourcingowym. Powiedzmy, że mamy projekt średniej wielkości, przewidziany dla kilkuosobowego zespołu na około pół roku pracy. Nasz przykładowy projekt obejmuje realizację aplikacji webowej wraz z aplikacją mobilną.

Do analizy posłuży nam poniższy przykładowy cennik outsourcingu:

StanowiskoStawka godzinowa nettoKoszt osobomiesiąca (160 godzin) netto
Analityk – kierownik projektu170 zł27 200 zł
Programista back-end (Django)135 zł21 600 zł
Programista front-end (Angular)125 zł20 000 zł
Programista aplikacji mobilnych (React Native)125 zł20 000 zł
Grafik/UX designer90 zł14 400 zł
Tester60 zł9 600 zł

Skoro mamy już ustalone stawki, określmy również zaangażowanie czasowe poszczególnych pracowników przy naszym hipotetycznym projekcie. Pozwoli nam to obliczyć koszty całkowite outsourcingu:

StanowiskoZaangażowanie czasoweKoszt całkowity netto
Analityk – kierownik projektu3 osobomiesiące81 600 zł
Programista back-end (Django)3 osobomiesiące64 800 zł
Programista front-end (Angular)2 osobomiesiące40 000 zł
Programista aplikacji mobilnych (React Native)2 osobomiesiące40 000 zł
Grafik/UX designer1 osobomiesiąc14 400 zł
Tester1 osobomiesiąc9 600 zł
Razem250 000 zł

Powyższa analiza kosztowa przykładowego projektu może być pomocna w zrozumieniu istotnej przewagi outsourcingu nad budowaniem własnego zespołu.

Przy założeniu, że w znacznej mierze pracownicy na poszczególnych stanowiskach pracują równolegle, można przyjąć, że czas realizacji tego projektu informatycznego możemy szacować na jakieś 4 miesiące kalendarzowe.

Chcąc zastąpić outsourcowany team analogicznym własnym zespołem mamy zasadniczo dwa wyjścia:

Wariant 1 – budujemy pełen zespół

Załóżmy więc, że w ciągu miesiąca udało się nam zbudować 6-osobowy zespół o wymaganych kwalifikacjach. Przyjmijmy również, że każdego z pracowników zatrudniamy za 50% stawki, którą dostałaby firma outsourcingowa. Być może w pierwszym odruchu możnaby przyjąć, że koszty realizacji projektu wyniosą 50% kosztów z pozycji suma w tabeli, czyli około 125 tysięcy zł netto.

Zauważmy jednak, że grafika czy testera potrzebujemy tylko na miesiąc. Czy też raczej na osobomiesiąc, bo niekoniecznie ich pracę da się skompresować do jednego ciągłego miesiąca kalendarzowego. Musimy ich zatem zatrudnić na dłużej. Podobnie sytuacja wygląda z programistami, a nawet z kierownikiem, który również nie musi być zaangażowany w pełnym wymiarze pracy przez cały czas trwania projektu.

Możemy oczywiście rozłożyć rekrutację w czasie, tak aby specjalistów zatrudniać stopniowo, wraz z biegiem projektu. Oznacza to jednak większe narzuty organizacyjne i ryzyko, że nie uda się zakończyć rekrutacji na czas. Ale nawet wówczas najprawdopodobniej nie uda się całkiem wyeliminować „pustych” osobomiesięcy.

Przyjmijmy zatem, że średnio na specjalistę przypada 1/3 czasu, kiedy nie jest on absolutnie niezbędny w projekcie. Zatem do naszej kwoty 125 tysięcy musimy doliczyć około 40 tysięcy narzutu, co daje nam łączny koszt około 165 tysięcy zł netto. Nadal jest to o prawie sporo mniej, niż koszt outsourcingu, ale zauważmy, że wszystkie koszty organizacyjne nie są w tu wliczone. Do tego musimy wziąć pod uwagę fakt, że niektórzy specjaliści nie będą chętni do zatrudnienia na krótki termin, co może wpłynąć na czas rekrutacji. No chyba że zdecydujemy się zatrzymać ich na dłużej. Ale to są dodatkowe koszty.

Wariant 2 – budujemy mniejszy zespół

Możemy zadać sobie pytanie: czy do tego projektu potrzebujemy aż 6 specjalistów? Czy nie można znaleźć sobie tylko jednego lub dwóch programistów, którzy zrealizują projekt w dłuższym czasie? Może da się znaleźć również grafika – freelancera, a testowanie przeprowadzić wewnętrznie?

Oczywiście można pójść w tym kierunku. Załóżmy, że zatrudniamy jednego bardziej doświadczonego programistę w roli kierownika (odpowiednik analityka), który zajmie się również back-endem oraz programistę front-end, znającego się na aplikacjach mobilnych. Nasz projekt jest łącznie obliczony na 10 osobomiesięcy prac analityczno-programistycznych. Przyjmijmy więc, że nasi dwaj specjaliści dzielą się tym czasem po połowie. Jeśli weźmiemy połowę stawki kierownika i połowę front-endowca, to w skali 5 miesięcy otrzymamy łączny koszt o wysokości prawie 120 tysięcy, bez uwzględnienia prac graficzno-projektowych i testów. Freelancera do grafiki i UX może uda się zakontraktować za jakieś 5 tysięcy, a testować może któryś z pracowników firmy. Można zatem przyjąć, że udało się zaoszczędzić prawie połowę kosztów (optymistycznie nie liczymy kosztów pracy wewnętrznego „testera”).

Jednak czas realizacji prac programistycznych wydłużył nam projekt z początkowych 4 miesięcy do pięciu. Doliczmy miesiąc na testy i kolejny na rekrutację oraz onboarding (bardzo optymistyczne założenie), a czas realizacji projektu wydłużył się nam o 50%.

Pomińmy tutaj koszty rekrutacji, wszelkich sytuacji losowych, czas urlopów i skupmy się na fakcie, że otrzymamy końcowy produkt prawie dwa miesiące później. No i czas zadać ważne pytanie – ile by zaoszczędziła firma, gdyby system był wdrożony wcześniej? Czy stać nas na takie opóźnienia?

Podsumowanie

Podsumowując, kwestia oceny kosztów outsourcingu nie jest prosta. I choć może finansowo usługa ta wydaje się kosztowna, to jednak biorąc pod uwagę wszystkie nakłady konieczne przy samodzielnej realizacji projektu, wcale tak nie musi być.

W każdym wypadku temat należy analizować indywidualnie. A może zamiast tracić kosztowny czas managementu na tego typu rozważania, lepiej skupić się na wyborze solidnego dostawcy?


Outsourcing IT, czyli współpraca dwóch partnerów i jeden cel

Outsourcing IT to popularna usługa – z tego typu wsparcia korzysta już blisko połowa firm dostępnych na rynku. Najczęściej świadczone...
Czytaj więcej
Outsourcing IT, czyli współpraca dwóch partnerów i jeden cel