Zatrudnienie dobrej jakości developera jest trudne, kosztowne i czasochłonne. Z tych powodów pracodawcy coraz częściej decydują się na zlecenie programowania na zewnątrz korzystając z usług firm outsourcingowym i wolnych strzelców. Mimo niewątpliwych korzyści takiego rozwiązania przed zatrudniającym stawia ono wiele wyzwań. O czym pamiętać zanim rozpoczniesz współpracę z programistą freelancerem lub outsourcerem, aby wspólne projekty okazały się sukcesem?
Outsourcuj właściwe zadania
Współpraca z zewnętrzną osobą lub firmą najlepiej sprawdzi się wtedy, kiedy twoje potrzeby można opisać bardziej jako listę małych, konkretnych prac do wykonania niż duży, pojedynczy projekt. Warto jednocześnie pamiętać, że istnieją zadania, których nigdy nie powinno się powierzać osobom z zewnątrz. Należą do nich obszary, które stanowią najmocniejszą stronę twojego biznesu lub rdzeń jego działalności (tzw. core business).
Zatrudniaj odpowiednie osoby
Wydawałoby się, że jest to oczywiste, jednak nie dla każdego. Często motyw finansowy bierze górę nad wszystkimi innymi argumentami. Jak zatem znaleźć odpowiedniego programistę?
- Zbierz opinie i rekomendacje na temat osoby, z którą zamierzasz podjąć współpracę. Nie wahaj się poprosić o referencje.
- Przyjrzyj się jej poprzednim projektom. Poproś o jeden z nich w formie otwartej i oceń styl kodu.
- Sprawdź, czy developer lub firma outsourcingowa ma doświadczenie w podobnych projektach.
- Podobnie jak w przypadku innych rekrutacji do twojego zespołu, upewnij się, że programista odpowiada ci pod względem osobowościowym.
- Nie szukaj najtańszej opcji pamiętając o tym, że „If you pay peanuts, you get monkeys”.
Bądź project managerem
Przekazując projekt do realizacji osobie z zewnątrz, łatwo stracić nad nim kontrolę. Aby tak się nie stało, musisz być dobrym project managerem rozwiązującym na bieżąco pojawiające wątpliwości czy problemy i czuwającym nad realizacją zleconego zadania na każdym jego etapie. Zapoznaj się z zasadami pracy w SCRUM i dowiedz się, co to znaczy być „product ownerem”. Owszem, to wymaga czasu, ale pamiętaj, że to na tobie spoczywa odpowiedzialność za powodzenie całego projektu.
Wymagaj szczegółowej dokumentacji
Współpracując z zewnętrznym programistą zawsze domagaj się kompletnej i spójnej dokumentacji. Docenisz to, choćby wtedy, kiedy okaże się, że musisz przekazać projekt innemu zespołowi.
Monitoruj jakość kodu
Samo śledzenie postępu prac nie wystarczy. Jako project manager musisz mieć pewność co do jakości kodu. W tym celu możesz użyć gotowych narzędzi takich jak Code Climate, Codacy czy SonarQube.
Komunikuj się
Jeżeli chcesz uniknąć dodatkowych kosztów na koniec projektu, bądź w stałym kontakcie z developerem rozwiewając na bieżąco wszystkie wątpliwości i komunikując ewentualne problemy z jakością. Pamiętaj, że to na tobie spoczywa ciężar kontroli.
Proś o pomoc
Prośba o niezależną opinię na temat finalnego produktu to nie tylko twoje prawo, ale wręcz obowiązek jako project managera. Najlepiej zanim jeszcze podejmiesz współpracę z zewnętrznym developerem znajdź w swoim zespole lub otoczeniu godną zaufania, niezależną osobę, która będzie w stanie fachowym i krytycznym okiem ocenić ostateczne efekty jego pracy. Dobrze, jeżeli będzie to ktoś, kto sprawdzi kod pod względem technicznym i określi, czy będzie łatwy do wdrożenia, ale nie zawsze jest to konieczne. Sprawdzenie funkcjonalności programu przez osobę nietechniczną będzie równie cenne.
Redukcja kosztów, oszczędność czasu, dostęp do najlepszych specjalistów bez konieczności rekrutacji to najczęściej wymieniane korzyści z przekazywania niektórych firmowych zadań zewnętrznym partnerom. Trzeba jednak zdawać sobie sprawę z tego, że taka decyzja niesie również ze sobą szereg zagrożeń, które niejednokrotnie mogą wpędzić firmę w poważne tarapaty. Dlatego szczegółowe przemyślenie wszystkich aspektów, jakie wiążą się z „wynajęciem” programisty i traktowanie samej współpracy z co najmniej taką atencją jakby dotyczyła członków własnego zespołu to postawa sukcesu.