unity wiedza

Czas czytania: 6 minut

Korzyści z wyboru jednego dostawcy do złożonego projektu

Wybranie odpowiedniego dostawcy dla planowanego projektu jest równie istotnie jak zatrudnienie dobrej ekipy budowlanej do wykonania naszego wymarzonego domu. Nie powierzylibyśmy tego zadania pierwszej lepszej firmie znalezionej w Panoramie. Oczywiste wydaje się, że proces wyboru, w obu przypadkach, poprzedzony byłby dokładnym badaniem rynku. W końcu chcemy znaleźć takiego partnera, który jest w stanie zapewnić nam wykonanie powierzonych zadań przy jednoczesnym utrzymaniu jakości, budżetu i terminu.

Dodatkowo, cały proces selekcji partnera biznesowego utrudnia nam aspekt ewentualnego rozdzielenia części projektu między różne firmy. W niektórych przypadkach może wydawać się, że zatrudnienie osobnego software house’u do wykonania np. aplikacji mobilnej, a osobnego do części backendowej jest dobrym rozwiązaniem, jednak taka decyzja pociąga za sobą konsekwencję, z których istnienia klienci często nie zdają sobie sprawy.

W Unity Group każdego dnia mierzymy się z wielowątkowymi, cross-platformowymi projektami, dlatego z naszego własnego doświadczenia wiemy jaką wartość dodaną wnosi dla klienta współpraca z jednym dostawcą podczas całego Software Development Lifecycle (SDLC).

Kiedy projekt staje się złożony

Co wpływa na złożoność projektu? Czynników może być wiele:

Ilość detali czyli np. mnogość zadań, złożoność procesu, który należy odwzorować, czy chociażby duża liczba UX’owych makiet

Wielomodułowość, czyli tam, gdzie zachodzi potrzeba integracji wielu elementów. Najprostszym przykładem takiego projektu jest stworzenie portalu wraz z jego odpowiednikami na urządzenia mobilne oraz modułem backendowym.

Niepewność im bardziej wzrasta, tym większe ryzyko, że coś nie pójdzie po naszej myśli. Zwiększa to narzut na samo zarządzanie ryzykiem, ale wiąże się też ze zwiększeniem kosztów (nie mamy tutaj tylko na myśli działań naprawczych, które wdrażamy kiedy dane ryzyko się zmaterializuje, ale również narzuty, które są dodawane do samych wycen)

Nieprzewidywalność jeśli dany projekt jest obciążony dużą liczbą zmiennych wymaga większych nakładów pracy po stronie analityków, architektów i PM’ów.

Dynamika projektu/biznesowa – objawiająca się szybkim tempem zmian, a co za tym idzie dużą zmiennością w scope’ie projektu.

Interesariusze – duża ilość zaangażowanych osób i/lub ich zależności miedzy sobą, co może się przekładać na rozmycie odpowiedzialności, brak jasnych wytycznych albo na długi czas oczekiwania na podjęcie decyzji po stronie klienta

Team – wielkość zespołów lub duża ilość zespołów, które są od siebie zależne może zmniejszać efektywność pracy (wymaga większego nakładu na spotkania, wspólne planowanie, update’y etc.)

Czas – tutaj musimy spojrzeć na oba końce spektrum. Przy bardzo naprężonym harmonogramie zwiększa się ryzyko błędów (będące bezpośrednią wypadkową uciętego czasu na planowanie oraz testowanie i częstego przeciążenia zespołu projektowego). Natomiast przy przedsięwzięciach długoterminowych, znacznie zwiększa się potrzeba dokumentowania i przekazywania wiedzy. Równocześnie (ale jest to też powiązane z wcześniej wspomnianą dynamiką) istnieje większe prawdopodobieństwo, że wczesnoprojektowe założenia się zdezaktualizują (może zmieni się wstępna koncepcja, budżet ulegnie zmianie albo klient postanowi dołożyć nową funkcjonalność, która będzie od nas wymagała przemodelowania już wytworzonych elementów).

Wybór dostawcy

Czemu warto zdecydować się na jednego dostawcę? Tak jak nie zlecilibyśmy wykonania każdej ściany nośnej naszego domu innej firmie, tak też nie powinniśmy sztucznie rozdzielać systemu (który de facto stanowi jedną całość), gdzie nie jest to absolutnie konieczne.

Z doświadczenia wiemy, że wybranie jednego partnera przy pracy nad złożonym projektem ma wiele przewag.

Stały zespół

Podczas współpracy z jednym dostawcą będziesz mieć przypisany swój stały zespół. Dzięki temu masz okazję poznać ludzi, a co za tym idzie ich mocne strony i styl pracy. To z kolei przekłada się na wykonywanie dokładniejszych i pewniejszych estymat. A jak wiemy, lepsze estymaty oznaczają większą kontrolę nad postępem prac, dotrzymaniem terminów i wyrobieniem się w budżecie.

Pracowanie z jednym teamem od samego początku wpływa też na zaangażowanie ludzi. Osoby, które są od dnia pierwszego w danym projekcie bardziej się z nim identyfikują i są bardziej zmotywowane. Tym samym chętniej biorą na siebie tzw. Ownership – czyli czują odpowiedzialność za powodzenie całego przedsięwzięcia.

Stały zespół to też łatwiejsza i większa kontrola nad zasobami. Jako Product Owner dostajesz zebrane szacunki tylko z jednego źródła.

Komunikacja

Często w ramach większego projektu musimy połączyć ze sobą moduły wytworzone w różnych technologiach. Zazwyczaj, w takim wypadku mamy dedykowane zespoły specjalizujące się w konkretnych rozwiązaniach. Jeśli są to różne zespoły, które pracują dla jednej firmy, w tym samym biurze, posiadające jednego PM’a, który czuwa nad procesami, to odchodzi nam wiele problemów komunikacyjnych, które na pewno by zaistniały przy próbie połączenia teamów od różnych dostawców.

Po pierwsze, te zespoły się znają. Widzą się na korytarzach, jedzą wspólnie obiad, grają razem w piłkarzyki… mają do siebie zaufanie. Nie będziemy obserwować przerzucania się odpowiedzialnością, bo choć mamy różne teamy technologiczne, to tworzą one jeden zespół, który ma wspólny cel.

Po drugie, zespoły te są fizycznie w tym samym miejscu. Nie mamy problemów logistycznych związanych z organizowaniem ciągłych konferencji dla trzech (a często i większej liczby) zainteresowanych stron. W przypadku jakichkolwiek niejasności nie musimy czekać na odpowiedzi od drugiego wykonawcy. Tym samym znacznie oszczędzamy czas i zmniejszamy bezwładność.

Po trzecie, niwelujemy bezruch nie tylko przy samym procesie komunikacji, ale również dzięki temu, że teamy mogą wspólnie planować pracę na kolejne sprinty. Nie czekają też na innego wykonawcę, żeby ten wykonał swoją część pracy, co zapewnia nam brak przestojów.

Ciągłość wiedzy

Jeden zespół zapewnia nie tylko mniej problemów komunikacyjnych, ale też znacznie ułatwia zachowanie ciągłości w przekazywaniu wiedzy. Osoby zaangażowane w podejmowanie kluczowych projektowo decyzji, jak architekci, analitycy, deweloperzy czy PM pracują stale ze sobą.  Cały zespół rozumie dlaczego podszedł do danej funkcjonalności w ten, a nie inny sposób.

Wpływa to też korzystnie w przypadku jakichkolwiek rozbudów czy refactoringu. Nikt nie musi się wdrażać do napisanego przez inny team kodu. Deweloperzy znają projekt, więc mogą szybciej i sprawniej podejść do dodawania funkcjonalności, czy też podnoszenia ich jakości.

Dodatkowo pracując z jednym dostawcą likwidujemy ryzyko rozjazdu w przypadku używanych narzędzi, czy choćby przy samych standardach pracy. Mam tutaj na myśli sytuacje, gdzie jeden team używa Git’a i zdecydowanie trzyma się GitFlow, a drugi nie, albo kiedy jeden zespół korzysta z JIRA do planowania procesu wytwarzania oprogramowania, a inny np. z Targetprocess. Złożone projekty już z samej definicji są skomplikowane, nie trzeba ich jeszcze dodatkowo utrudniać.

Bezpieczeństwo

Kolejnym ważnym aspektem jest też kwestia zapewnienia bezpieczeństwa. SecOps, czyli zbiór narzędzi i procesów, które mają za zadanie je zapewnić, jest o wiele prostsze do wprowadzenia i zarządzania przy mniejszej liczbie grup pracujących nad projektem. Spójrzmy choćby na dostępy do newralgicznych danych – ludzie są zawsze najsłabszym ogniwem w procesie, dlatego ograniczenie dostępów samo w sobie gwarantuje zmniejszenie ryzyka wycieku danych.

Podsumowanie

Wracając na chwilę do analogii budowania domu, więcej czasu i energii poświęcimy na skoordynowanie prac z wieloma dostawcami i usługodawcami niż z jednym, który będzie czuwał i realizował cały proces spójnie. Jednak tak jak przy budowie domu dość trudne może być znalezienie jednego podwykonawcy dla całego procesu, tak w IT nie jest to wyzwaniem.

Firmy prześcigają się wzajemnie ofertą, nowymi produktami, wielkością i dostępnością eksperckich zespołów. Ale to wieloletnie doświadczenie w doradztwie, projektowaniu, wdrażaniu i utrzymaniu rozwiązań leży największa przewaga. Kompleksowa wiedza partnera biznesowego połączona z wysokim standardem jakości wykonywanych prac pozwoli zrealizować każdy projekt z dbałością o detale.

unity

unity

Skontaktuj się z profesjonalnym doradcą IT

Napisz do nas

Wyrażam zgodę na przetwarzanie danych osobowych na zasadach określonych w polityce prywatności. Jeśli nie wyrażasz zgody na wykorzystywanie cookies we wskazanych w niej celach, w tym do profilowania, prosimy o wyłącznie cookies w przeglądarce lub opuszczenie serwisu. więcej

Akceptuj