Image for Tworzenie WEB Aplikacji – Podwykonawstwo czy własny zespół?

Tworzenie WEB Aplikacji – Podwykonawstwo czy własny zespół?

Czas czytania:

W tym artykule chciałbym rozpatrzyć jeden przypadek, w którym firma tworząca web aplikację lub start-up rozważa organizację zespołu programistycznego wewnątrz firmy kontra podwykonawstwo w zewnętrznej firmie. Jeśli stoisz przed wyborem w którym zastanawiasz się które rozwiązanie jest lepsze sądzę, że ten artykuł pomoże Ci podjąć decyzję. Poruszę w nim wszelkie kwestie organizacyjne z tym związane, zarządcze, kosztowe jak również kompetencyjne. Aha, artykuł nie dotyczy rozpatrywania organizowania zespołu budowanego na zasadach outsourcingu przez w pełni świadome i doświadczone firmy w obszarze IT, rozpatrujemy tu znacznie mniejszą skalę. Przyjmijmy zatem dość konkretny przypadek:

budowana jest spółka/firma w której zaangażowane osoby bardzo dobrze znają swoją branżę (np. motoryzacyjną) i chcą z pomocą inwestora (lub własnych środków) zbudować platformę wspierającą rynek motoryzacyjny. Niestety nie są specjalistami od IT a core’m biznesu jest właśnie web aplikacja. Planują stworzyć po prostu start-up. Co dalej począć? Zbudować własny zespół? Skorzystać z outsourcingu czy może wynająć podwykonawcę?

Porównamy tutaj scenariusz budowania własnego zespołu do firmy podwykonawczej (takiej jak np. GOGOmedia czy inne Software House’y).

Kompetencje i budowanie zespołu

W przyjętych założeniach zbudowanie dobrego zespołu należało by powierzyć profesjonalnej firmie rekrutacyjnej, która powinna nam dobrać specjalistów do charakteru naszego projektu. Problem tylko w tym, że będzie to całkowicie nowy zespół w nowym dziale IT a co za tym idzie zabraknie na początku takich elementów jak:

  • zgranie zespołu
  • wypracowane procesy wytwórcze

Do tego pamiętajmy, że „zespół IT” to nie tylko programiści. To również managerowie, testerzy, team leaderzy. Może się okazać, że bardzo szybko powstanie nam całkiem spory team. Nasuwa się od razu pytanie – czy jest to potrzebne na samym początku? Prawdopodobnie niektóre kompetencje managerskie nie będą obciążone pracą w 100%. W takim wypadku, jeśli zależy nam na czasie, mamy ograniczony budżet bezpieczniej jest skorzystać z usług doświadczonego Software House.

Co nam daje Software House? Zamknięty budżet, z góry określony termin realizacji, udokumentowane doświadczenie w innych projektach oraz kompetencje wielu osób zatrudnionych w firmie (np. UX  Designer’ów, Grafików, specjalistów od SEO czy marketingu). Do tego programiści z dużym doświadczeniem  w realizacji podobnych projektów. Wszystko w jednym miejscu. Ludzie znający i uzupełniający się w każdym projekcie. Tyle teoria. A ryzyko? Oczywiście, że istnieje. Polega głównie na tym, że podwykonawca po prostu się nie sprawdzi – powodów może być wiele: źle zaplanowany projekt, niedoszacowany, braki w doświadczeniu (czasami zatajane przed klientem) itd.  Ryzyka się nigdy nie wyeliminuje w takim wypadku natomiast dobrze jest monitorować na bieżąco postęp prac i być czujnym na feedback spływający z agencji.

Koordynacja

Podejście do realizacji w standardowych modelach jest z pozoru podobne – każdy z zespołu, czy wewnętrzny czy zewnętrzny ma określony termin realizacji i cele do osiągnięcia. Różnice pojawiają się wtedy gdy zaczynają się problemy. Czyli np. opóźnienia. Dla podwykonawcy jest to czas za który nie dostaje wynagrodzenia i zaczyna tracić a wewnętrzny zespół ma płacone normalnie pensje i się tym (aż tak) nie przejmuje. Jakie to ma przełożenie na projekt? Ano taki, że często podwykonawcy popełniając błąd i niedoszacowując projektu, w momencie kiedy jego budżet się wyczerpał a realizacja nie osiągnęła jeszcze celu zaczyna się szukać uproszczeń i niekiedy realizować oprogramowanie niedbale, po łebkach i szybciej.

Wewnętrzny zespół sobie na to nie pozwoli tym bardziej, że poza wściekłością inwestorów (lub ewentualnym zwolnieniem) nic nikogo złego spotkać nie może. (nie kwalifikuje zwolnienia jako coś złego ponieważ w tej branży prace znajduje się jeszcze przed opuszczeniem poprzedniej firmy)

Reasumując plusy i minusy trzeba pamiętać o jednym: podwykonawca pracuje według wcześniej ustalonych ram, harmonogramu i zasad. Wewnętrzny zespół pracuje często troszkę inaczej – jego najwyższym celem nie jest termin (przecież pracownicy mają płacone miesięczne pensje) lecz dobro projektu. Jeśli trzeba coś udoskonalić to trzeba, jeśli coś ma się opóźnić kosztem jakości – często akceptowalne.

Często również sposób prowadzenia projektu wewnętrznie różni się metodologiami czy priorytetami od prowadzenia i realizacji oprogramowania przez zewnętrzną firmę. Oczywiście wszystko rozbija się finalnie o koszty i wymaganą przez inwestora/klienta jakość (jak nie wiadomo o co chodzi to chodzi o pieniądze).

Wsparcie i utrzymanie

Planując jakikolwiek projekt, który ma być rozwijany i utrzymywany dłużej niż do momentu zakończenia developmentu trzeba przewidzieć i zaplanować utrzymanie oraz bieżącą obsługę projektu przez zespół IT. Można to rozwiązać na dwa sposoby:

  1. Podpisanie z podwykonawcą umowy na obsługę techniczną i wsparcie z gwarantowanymi zasobami, czasami reakcji na zgłoszenia oraz pakietem roboczogodzin miesięcznie na rozwój projektu
  2. Uruchomienie własnego małego działu IT

Własny dział IT ma jedna zasadniczą przewagę – jest pod ręką, reaguje natychmiast i możemy mu zlecać tyle zadań ile tylko jest on w stanie przerobić w ramach etatów pracowników. A podwykonawca? Gwarantuje nam wiedzę o projekcie (jeśli go wcześniej realizował), zna jego słabe i mocne strony. Posiada „in-house” szereg specjalistów, analityków, projektantów i może wnieść do naszego projektu na prawdę dużo nowości i niekiedy „świeżości”.

W naszej ocenie budowa wewnętrznego i kompletnego (a to ważne) zespołu IT jest zasadna tylko w przypadku stabilnych finansowo firm, gdzie budowa działu developmentu będzie miała swoje ekonomiczne uzasadnienie. Z drugiej wewnętrzny team to wygoda i luksus spokojnego i stabilnego rozwoju oprogramowania.

Elastyczność

Z zewnętrznym podwykonawcą, przy podpisaniu umowy „na projekt” wspomniana elastyczność jest wyraźnie ograniczona ponieważ ma on konkretny harmonogram, plan prac i z góry zdefiniowany zakres. Bez wątpienia w aspekcie elastyczności wewnętrzny zespół gwarantuje o wiele większą swobodę. Możemy pozwolić sobie na więcej modyfikacji, zmiany planu czy koncepcji (to już problem project managera jak proces uporządkować). Jeśli tylko inwestora stać na zmiany – wewnętrzny team zrobi absolutnie wszystko.

Podsumowanie

Sposób pracy z zewnętrznym podwykonawcą często diametralnie się różni od pracy z własnym zespołem.  Wspomniane tu aspekty są tylko przykładowe, w rzeczywistości jest ich znacznie więcej i każdy kto pracował w obu modelach najlepiej zrozumie wszystkie różnice. Najlepiej więc przed podjęciem decyzji dokładnie przeanalizować potrzeby projektowe, długofalowy plan realizacji i rozwoju, dostępny budżet oraz możliwości organizacyjne firmy. 

Porównanie plusów i minusów

Własny zespół?Podwykonawca?
(plus) Większa stabilność i oddanie zespołu tylko do jednego projektu(plus) Swoboda i większa elastyczność przy realizacji projektu(plus) Cała wiedza związana z projektem i kompetencje zostają wewnątrz jednej firmy

 

(plus) Większe możliwości lepszej organizacji obsługi technicznej i rozwoju projektu

(minus) Możliwa większa rotacja pracowników, braki doświadczenia, błędy rekrutacyjne

(minus) Inwestor ponosi pełną odpowiedzialność za kompetencje (lub ich brak) zespołu IT

(minus) Większe koszty

(plus) Podwykonawca bierze na siebie pełną odpowiedzialność za prawidłową realizację aplikacji(plus) Wykorzystanie zgranego i doświadczonego zespołu developerów(plus) Zazwyczaj z góry ustalony termin i budżet realizacji

 

(plus) Nie podejmujesz ryzyka przekroczenia budżetu projektu (jeśli podpisujesz na początku umowę na cały projekt)

(minus) Mniejsze koszty

(minus) Pracownicy i kompetencje należą do zewnętrznej firmy, w przypadku „problemów” duże utrudnienie w zmianie podwykonawcy

(minus) Całe ryzyko związane z wyborem firmy należy do Ciebie. Przez jedną złą decyzje może ucierpieć cały projekt

Jeśli posiadasz swoje doświadczenia w tym temacie – podziel się swoimi doświadczeniami w komentarzu. Każde spostrzeżenie jest dla nas bardzo cenne.

Zainteresował Cię ten artykuł?

Oferujemy profesjonalne wsparcie programistów w technologii Web.
Może Cię również zainteresować:
5 rzeczy, na które warto zwrócić uwagę, wybierając dedykowany system klasy ERP, WMS lub LMS

Tworzenie dedykowanych aplikacji web’owych (dostępnych przez przeglądarkę WWW z poziomu komputera, tabletu czy telefonu) jest… Read More

Warsztaty Discovery – 5 powodów dla których warto je przeprowadzić

Post pochodzi bezpośrednio z naszych oficjalnych kanałów na Social Media. W dynamicznym… Read More

Optymalizacja eCommerce vs. Zewnętrzny Dyrektor Technologiczny

🛠️ Studium przypadku 🛠️Post pochodzi bezpośrednio z naszych oficjalnych kanałów na Social… Read More