Outsourcing to niewątpliwie świetny sposób na szybkie pozyskanie wykwalifikowanych specjalistów oraz zoptymalizowanie wydatków na IT. Co decyduje o jego sukcesie i jak skutecznie przenieść go na nowy, wyższy poziom?
1. Przedstaw jasną wizję projektu oraz cel biznesowy, który chcesz osiągnąć
Pomimo, że każdy z programistów pracuje nad swoim “kawałkiem kodu” i docelowo zaangażowany jest w jakiś jeden, konkretny obszar, dobrze byłoby, aby znał on całościowe założenia realizowanego projektu i wiedział, czego częścią jest wykonywana przez niego praca. Dlaczego ma to tak ogromne znaczenie? Kościół, muzeum czy centrum handlowe – każde z nich może powstać z cegły, ale też każde z nich powinno mieć inny kształt. Przybliżając pracownikom wizję oczekiwanego, końcowego efektu prac, nie tylko znacząco ułatwimy im podejmowanie codziennych decyzji, ale również sprawimy, że będą one bardziej efektywne.
2. Ustal zasady i procesy rozwoju
Upewnij się, czy wszyscy członkowie projektu znają i wykorzystują te same metodologie. Przed rozpoczęciem projektu ustal, jakie zasady i procesy będą obowiązywać wszystkie zaangażowane w niego osoby. Niezależnie od tego, czy będzie to Scrum, AgilePM, Lean, Prince 2, czy jeszcze coś innego – uzgodnienie zestawu obowiązujących zasad i procesów już na samym początku projektu z pewnością ułatwi zespołom współpracę oraz zwiększy jej wydajność.
3. Ustal zasady architektoniczne i techniczne
Wykorzystujesz chmurę? Czy to Amazon czy Azure? PWA vs. Natywny Android, Micro Services, Docker, Java, Angular.JS lub Angular 6 – istnieje wiele różnych zasad architektonicznych i technicznych, które koniecznie trzeba ustalić. Pracując z kilkoma różnymi zespołami, musisz upewnić się, że nie tylko wiedzą, co budują, ale także stosują te same zasady i narzędzia. W przeciwnym razie ryzykujesz, że pod koniec prac okaże się, że zespół zbudował coś, co z jednej strony przypomina kościół, z drugiej muzeum, a z trzeciej centrum handlowe. Na domiar złego jest to zbudowane trochę z drewna, trochę z betonu, a trochę ze szkła. Niby nie brzydkie, całkiem innowacyjne, ale czy funkcjonalne? Czy o taki efekt Ci chodziło?
4. Ustal pipeline projektu bazując na podejściu DevOps
Obecnie, korzystając z infrastruktury opartej o kontenery, można zautomatyzować naprawdę dużą część procesu programowania. Zbudowanie zautomatyzowanego pipeline’u pozwala zwiększyć szybkość programowania, umożliwiając przejście od testów do konfiguracji produkcyjnej w ciągu zaledwie kilku minut.
Zainteresowała Cię tematyka DevOps? Przeczytaj nasz artykuł i dowiedz się więcej –> DevOps Engineer. Człowiek-orkiestra w świecie IT. Czym się zajmuje?
5. Utwórz środowisko testowe
Testuj, testuj i jeszcze raz testuj – dotyczy to wszystkiego, co zostało już opracowane przez Twoich pracowników. Ważne jest jednak, aby wszystkie zespoły przeprowadzały testy w ten sam sposób, dlatego należy stworzyć dobre środowisko testowe, a następnie zintegrować je z pipeline’m CI / CD. Pamiętaj, że testami powinny zostać objęte wszystkie usługi, ponieważ tylko automatyzacja całego procesu pomoże Ci poprawić ogólną wydajność i jakość pracy zespołów.
6. Ustanów osobę, która obejmie rolę inżyniera RTE i skoordynuje zespoły i wydania
Podczas pracy z kilkoma zespołami programistycznymi niewątpliwie przyda Ci się wsparcie osoby, która zajmie się koordynacją prac. Taka osoba nie tylko zgromadzi ludzi, ale też upewni się, że wie, co należy opracować, jakie są priorytety i w jakich przedziałach czasowych muszą one zostać zrealizowane. Będzie ona odgrywać kluczową rolę w fazie ciągłej eksploracji, napędzi rozwój projektu, zarządzi ryzykiem i będzie eskalować przeszkody. Bez RTE lub podobnej roli, nie wykorzystując SAFe’a (Scaled Agile Framework), narazisz swój projekt na spore ryzyko niepowodzenia, wynikające z faktu, że zatrudnione zespoły nie będą się poruszać w jednym, tym samym kierunku, lecz w wielu zupełnie różnych.
7. Potraktuj komunikację jako swój priorytet
Komunikacja jest ważna zawsze, jednak w outsourcingu odgrywa szczególnie znamienną rolę. Jeśli nie możesz osobiście spotkać się z zespołem i przy filiżance dobrej kawy porozmawiać o wyzwaniach projektowych, musisz stworzyć taką strukturę, która umożliwi Wam współpracę i swobodny przepływ informacji. Video-konferencje, narzędzia do szybkiej komunikacji (jak np. Slack), wirtualne tablice – wszystko to sprawi, że będzie Wam się pracowało (i żyło) lepiej. Doradzamy planowanie regularnych, aczkolwiek nieprzesadnie częstych spotkań, w perspektywie maksymalnie dwóch tygodni naprzód – tak, aby każdy z członków zespołu mógł dotrzymać ustalonych wcześniej terminów. Odpowiednia komunikacja ważna jest na każdym etapie projektu, jednak szczególne znaczenie ma już na samym starcie, kiedy to dzięki niej możemy szybko “wyłapać” ewentualne nieporozumienia, które mogłyby negatywnie wpłynąć na jakość dalszych prac.
8. Zatrudniaj całe zespoły
Outsourcing programistów niewątpliwie jest dobrym sposobem na obniżenie kosztów. Aby jednak naprawdę znacząco obniżyć wydatki na IT i zapewnić sobie wysoką jakość pracy, warto skoncentrować się na inwestowaniu w wynajem całych zespołów, a nie wyłącznie pojedynczych ekspertów. Wybierając gotowy zespół otrzymujesz kompetentnych ludzi, którzy są w stanie natychmiast przystąpić do pracy i w sposób wydajny dostarczać wyznaczone cele. To zintegrowana grupa, która wie jak razem pracować i po prostu robi to dobrze.
Inwestycja w przygotowanie i dobrą organizację pracy nad projektem z pewnością szybko się zwróci i to z nawiązką. Jeśli więc planujesz outsourcing IT, koniecznie podejdź do niego metodycznie.
Zobacz też: Outsourcing usług IT – dlaczego warto?