.

Jak skomponować zespół projektowy do stworzenia złożonej strony?

Przy mniejszych projektach można korzystać z narzędzi typu no-code lub pracy jednego programisty. Musi on być full-stackiem, czyli umieć tworzyć warstwę backendową i frontendową. Budowanie strony w ten sposób kusi uproszczonym zarządzaniem oraz niższymi kosztami. Jednak web development jest skomplikowanym procesem i trudność potrafi rosnąć wykładniczo w stosunku do złożoności strony. Dlatego dla większych projektów składamy komplementarny zespół, który udźwignie zakładaną złożoność.

Czym jest zespół projektowy?

Zespół projektowy to grupa ludzi, która wspólnie pracuje nad wytworzeniem jakiegoś oprogramowania, w naszym kontekście - nad stroną internetową. Praca ta jest złożona, kreatywna, wymagająca zdolności adaptacyjnych, w miarę pojawiania się wyzwań technologicznych i zmian w wymaganiach biznesowych.

Zespół może składać się z osób przypisanych do danego projektu, które są zaangażowane w niego na 100% swojego czasu lub ze specjalistów dzielących swój czas i ekspertyzę na różne projekty. W zależności od wyboru metodyki zarządzania projektem (np. Waterfall lub Scrum), członkowie zespołu mogą być potrzebni tylko na wybranych etapach (np. architekci lub projektanci UI/UX tylko na samym początku) lub przez cały czas trwania projektu.

Dla złożonych projektów, które z natury ciężko w pełni wyspecyfikować, metodyki zwinne będą oferować znacznie wyższą wartość niż Waterfall. Dzięki iteracyjnemu podejściu projekt realizowany jest etapowo, co pozwala sprawdzić, czy robimy odpowiedni postęp, jak też dostosować kolejny zakres prac do, potrafiących się zmieniać, potrzeb. Zamiast przez kilka tygodni lub miesięcy tworzyć opasłą specyfikację, która może mieć spore szanse na dezaktualizację (działamy w szybko zmieniających się warunkach), tworzymy przyrosty prac, które przybliżają nas do celu, nawet jeśli on się zmienia (np. ze względu na uwarunkowania rynkowe lub nowe wymogi biznesowe).

Struktura zespołu deweloperskiego

Zespół projektowy zajmujący się tworzeniem stron internetowych może składać się z różnych ról. Zwykle znajdziemy te, które opisujemy poniżej.

Project manager

Project manager jest osobą, która spina wszystkie wątki projektu w całość. PM odpowiada za organizowanie, planowanie, komunikację oraz realizację projektu w założonych ramach czasowych, budżetowych i zakresowych. Choć każdy projekt jest inny, można wskazać kilka cech project managerów, które będą szczególnie w złożonych przedsięwzięciach.

  • Zdolności adaptacyjne - kompleksowe projekty, zanim zostaną uznane za zakończone, mogą wielokrotnie ewoluować, więc umiejętność pracy przy zmieniających się założeniach i celach jest bardzo pożądana.
  • Umiejętność równoległej współpracy z zespołami lub osobami, zarówno wewnątrz firmy jak i po stronie klienta lub współwykonawców.
  • Jasny, odpowiedzialny i transparentny sposób komunikacji.
  • Kompetencje dotyczące zarządzania projektami - dobór metodyk, znajomość narzędzi, wiedza dziedzinowa.
  • Cechy przywódcze i odpowiedzialność. Project manager to rola, która nie ma zwierzchnictwa nad innymi członkami zespołu. Osoba ta powinna umieć zarządzać, motywować, brać odpowiedzialność zespołową za sukcesy, ale także umieć przyjmować feedback od klienta, odpowiednio go analizować i wdrażać sugerowane ulepszenia w codzienną pracę.
Pracując w zespole projektowym, project manager potrzebuje wielu różnorodnych umiejętności

Źródło: Educba

Architekt oprogramowania

Jest to osoba odpowiedzialna za decyzje projektowe wysokiego poziomu, związane z ogólną strukturą i zachowaniem systemu. Zwykle tę rolę obejmuje programista z bardzo dużym doświadczeniem, który posiada kompetencje tworzenia wizji komplementarnego rozwiązania, dopasowanego do ograniczeń projektu.

Programiści

Jest to zespół inżynierów oprogramowania z kompetencjami dopasowanymi do potrzeb projektu. Ten typu zespoły mogą mieć najróżniejsze cechy. Dla złożonych projektów najważniejszymi są: doświadczenie w pracy przy rozległych lub złożonych rozwiązaniach, umiejętność komunikacji (nie tylko w strukturach wewnętrznych, ale często też zewnętrznych), umiejętność skutecznego rozwiązywania problemów.

Projektanci UI/UX

Te role łączą cechy artystyczne, z techniczno-rzemieślniczymi. Osoby na tych stanowiskach odpowiadają za spójną komunikację wizualną, która realizuje założenia klienta, jednocześnie dbając o niewidoczne na pierwszy rzut oka aspekty. Doświadczony projektant pamięta o dobrych praktykach dotyczących użyteczności, doświadczeń użytkownika, spełnianiu norm związanych z dostępnością (np. dla osób niedowidzących), projektowaniu rozwiązań tak, aby działały na różnych urządzeniach (np. telefon, tablet, laptop, duży monitor) oraz ograniczeniach technicznych, narzuconych przez projekt czy jego grupę docelową.

Zespół QA (testerzy)

Zespół QA (testerzy) zajmuje się quality assurance, czyli zapewnieniem jakości. Praca ta polega na przeprowadzaniu różnych testów, których celem jest wyłapanie defektów, tworzeniu ich listy i udostępnianiu jej programistom, aby mogli dokonać potrzebnych poprawek. Czasem deweloper poprawiając jeden błąd, tworzy inne, w odmiennej części kodu. Mówimy wtedy o regresji. Wyłapanie jej w złożonych projektach może być skomplikowane. Doświadczony QA dobiera odpowiednie metodyki testowania do specyfiki projektu. Na przykład tworzy zestaw testów automatycznych (mniejszych programów), które są uruchamiane po spełnieniu jakichś warunków - np. gdy programista zakończy pracę nad swoim zadaniem.

Inni członkowie zespołu projektowego

W bardziej złożonych projektach może powstać zapotrzebowanie na udział dodatkowych specjalistów, takich jak.:

  • UX researcher. Przeprowadza badania focusowe i użyteczności, eye tracking (śledzenie ruchów gałek ocznych w celu sprawdzenia percepcji jakiegoś elementu), a następnie dostarcza informacje na temat postrzegania produktu przez użytkowników.
  • Business analyst. Zajmuje się zaawansowanym zbieraniem i analizą danych. Jest to specjalista, który zwykle współpracuje z product ownerem. Analizując duże zbiory danych, potrafi przedstawić wnioski z nich płynące, które mogą mieć duże znaczenie dla decyzji biznesowych.
  • SEO specialist. Pomaga w prawidłowej optymalizacji strony pod wyszukiwarki internetowe.
  • Marketing lub content marketing specialist. Bierze udział w zadaniach dotyczących strategii marketingowej strony lub jej treści.
  • ML/AI specialist - osoba zajmująca się nauczaniem maszynowym i sztuczną inteligencją. Analizuje i przetwarza ogromne zbiorów danych (tera/petabajty), tworzy teksty, obrazy, a nawet filmy na podstawie skonsumowanych treści z Internetu.

Przeczytaj także: Nie tylko programiści. Poznaj role w zespole deweloperskim

Jak skomponować dobry zespół deweloperski?

Odpowiednio dobrany zespół znacząco zwiększa szanse powodzenia projektu. Jak zrobić to dobrze? Należy poznać potrzeby klienta, dobrać optymalną metodykę prowadzenia projektu, zdefiniować zaangażowanie klienta w proces tworzenia strony, dobrać odpowiednie role, a potem znaleźć i przydzielić do nich konkretne osoby.

Analiza wymagań projektu

Ta czynność powinna się odbyć w jednym z początkowych etapów współpracy. Metaforą dla analizy wymagań może być most, łączący biznes oraz IT. Dzięki analizie poznajemy wymagania funkcjonalne (np. czy użytkownik będzie wgrywał zdjęcia z komputera, czy bezpośrednio z komórki), które będą niosły za sobą jakieś rozwiązania IT (inne rozwiązania przedstawimy w aplikacji mobilnej, a odmienne na stronie przeznaczonej na komputery). Im bardziej poznamy te wymagania, tym lepiej będziemy w stanie przewidzieć, jakie role będą nam potrzebne w zespole.

Określenie potrzebnych kompetencji

Wiemy już, czego potrzebuje klient, zdefiniowaliśmy role, które będą potrzebne w zespole, czas odpowiedzieć sobie, czy jesteśmy w stanie zbudować taki zespół. Możemy znaleźć w naszej firmie osoby, które spełniają wszystkie wymagania kompetencyjne, ale to nie musi oznaczać że będą one dostępne w czasie realizacji projektu. Może więc powstać potrzeba zatrudnienia lub skorzystania z konsultacji osób z zewnątrz.

Wyznaczenie interesariusza

Przy większych projektach kluczowe będzie wyznaczanie jednego interesariusza (stakeholdera), który będzie odbierał i akceptował kolejne etapy pracy. Z tą osobą powinny być formalnie ustalone założenia odnośnie czasu, jaki posiada na akceptację lub odrzucenie nowych fragmentów projektu. Jeśli tego nie dopilnujemy, mogą się pojawić opóźnienia, które negatywnie wpłyną na rytm pracy (np. przebieg sprintów w Scrumie).

Ustalenie wielkości zespołu

Duże projekty oznaczają dłuższy czas potrzebny na ich realizację lub większe zespoły. Istnieją pewne ograniczenia, których nie jesteśmy w stanie przeskoczyć. Scrumowe zespoły składają się zwykle z 6-9 osób. Są to product owner, scrum master i deweloperzy. W przypadku większych projektów możemy złożyć więcej zespołów scrumowych, które mogą równolegle pracować nad różnymi funkcjonalnościami strony internetowej.

Pracując z klientem, często łączymy siły ze specjalistami po jego stronie. Na przykład tworząc landing page dla kampanii marketingowej, współpracujemy z osobą z działu marketingu, która dostarcza informacje branżowe, testuje i akceptuje wytworzone prace. Równolegle możemy pracować z jeszcze inną firmą, specjalizującą się w jakiejś wąskiej dziedzinie, która jest nam niezbędna w projekcie. Im więcej różnych podmiotów zaangażowanych w projekt, tym bardziej trzeba dobrze go koordynować, synchronizować komunikację, oczekiwania, terminy i odpowiedzialności za rozłączne części składowe.

Wskazanie wszystkich specjalistów zaangażowanych po stronie klienta

Jeśli będziemy współpracować ze specjalistami po stronie klienta, powinniśmy ustalić jasne i transparentne zasady tej kooperacji:

  • Jak będziemy się komunikować? Za pomocą maila, Slacka, a może Teams?
  • Gdzie będziemy tworzyć zgłoszenia i jak będziemy się o nich informować? W narzędziu Jira czy Asana?
  • Jak szybko możemy oczekiwać odpowiedzi na pytania i w jakim czasie sami jesteśmy w stanie je udzielać?
  • Kto jest odpowiedzialny za podejmowanie ostatecznych decyzji, w szczególności gdy kompromis z jakichś względów nie wchodzi w grę?

Na początku może się wydawać, że takie ustalenia to przerost formy nad treścią. Jednak doświadczenie pokazuje, że to ważny etap współpracy, który, poprawnie zrealizowany, pozwoli uniknąć wielu problemów i opóźnień.

Zaangażowanie firmy outsourcingowej

Jeśli w zespole brakuje osób posiadającyh wiedzę z wąskiej dziedziny, możemy poszukać takich specjalistów w firmach outsourcingowych. Posiadają one bazę specjalistów z różnych dziedzin, którzy świadczą swoje usługi zwykle na określony czas, “z doskoku” do danego projektu.

Jak wybrać firmę outsourcingową? Szukamy takiej, która oferuje potrzebne nam usługi, jest w stanie podjąć się współpracy w odpowiadającym nam czasie, potrafi dopasować się do naszej metodyki pracy i mieści się w naszym budżecie. Jeśli nie mamy wcześniej wyrobionych relacji z żadną z takich firm, warto poszukać opinii na jej temat w serwisach typu G2 czy Trustpilot.

Planowanie pracy zespołu przy projekcie dużej strony internetowej

Projekt, który przykładowo zajmuje sześć miesięcy i angażuje jeden typowy zespół scrumowy (7 osób), sam w sobie jest już złożony. Jeśli dodamy do tego współpracę z 2-3 zespołami lub specjalistami zewnętrznymi (np. po stronie klienta) i nowe technologie, otrzymamy nie lada wyzwanie. Trudność minimalizujemy doświadczeniem, profesjonalnymi metodykami prowadzenia projektów, narzędziami i procesami, które redukują potencjalne problemy.

Przy dużych projektach trzeba zwrócić uwagę na takie zagadnienia jak:

  • Praca w grupie programistów a praca samodzielna. W przypadku pracy zespołowej będziemy korzystać z narzędzia do śledzenia zadań (np. Jira), aby mieć pogląd kto i czym się zajmuje w projekcie. Nad kodem będzie pracować kilka osób równolegle, więc praca z systemem kontroli wersji (np. Git) będzie przebiegać inaczej. Przy współpracy z zespołem QA, możemy skorzystać ze specjalnie przygotowanych środowisk testerskich, które będą osobne od produkcyjnych. W przypadku pracy samodzielnej, nasza organizacja może być dużo prostsza, gdyż nie trzeba zapewniać transparentności czy dbać o zrównoleglenie prac.
  • Planowanie pracy. Trzeba uwzględnić równloległość pracy. Czasem dzieląc zadania między osoby, może sie okazać, że zadanie X nie może być jeszcze zaczęte, bo należy najpierw ukończyć zadanie Y, które robi ktoś inny. Trzeba więc przesunąć zadanie X w sprintach i poczekać na dokończenie zadania Y.
  • Notowanie ustaleń. Obowiązkowo wszystko powinno być opisywane w narzędziu do zarządzania projektami (typu Jira) i dokumentowane (tu są różne sposoby). Przy projekcie na szęść miesięcy dla trzech osób nikt nie będzie pamiętał, co było ustalane pół roku temu.
  • Komunikacja. Nie obejdzie się bez codziennych spotkań (tak zwanych daily) i wymiany informacjami co kto robi oraz nad czym aktualnie pracuje. To jest czas na sprawdzanie, czy idziemy zgodnie z planem, czy może trzeba coś odblokować.

Jeśli do tej pory pracowaliśmy przy mniejszych realizacjach, a teraz pojawia się przed nami coś większego, warto skorzystać choćby z pomocy firmy tworzącej strony internetowe - np. agencji drupalowej - abyśmy mogli skonfrontować swoje wyobrażenia z ich doświadczeniem.

2. SEO dla strony internetowej na Drupalu