GitLab w rozwoju oprogramowania – część 1: Workflow

GitLab to menadżer repozytoriów oparty o architekturę Gita, a także potężne narzędzie służące do rozwoju oprogramowania.Wykorzystując przyjazny interfejs użytkownika, GitLab umożliwia wydajną pracę, zarówno przy użyciu wiersza poleceń, jak i samego UI.

Cykl rozwoju oprogramowania w jednym miejscu

GitLab jest bardzo pomocny zarówno dla deweloperów, jak i również dla innych członków zespołu, zapewniając wszystkim pracownikom pojedynczą, unikatową platformę roboczą.

Workflow GitLab’a jest intuicyjny i łatwy w odbiorze, dzięki czemu użytkowanie całej platformy nie jest skomplikowane, a samo jej wdrożenie stosunkowo proste.

Workflow GitLab’a

Workflow GitLab’a to nic innego jak sekwencja działań podczas całego procesu tworzenia oprogramowania z wykorzystaniem platformy GitLab.

Workflow GitLab’a oparty jest o GitLab Flow i wspiera tym samym zarządzanie wersjonowaniem zgodnie z zasadami Git’a. Jego głównym celem jest zintegrowanie pracy zespołów i poprawa wydajności na wszystkich etapach – od implementacji do produkcji. Tak właśnie nazwano “szybkie przejście od idei do produkcji w 10 krokach”.

1. pomysł; 2. zgłoszenie; 3. plan; 4. kodowanie; 5. commit; 6. testy; 7. recenzja; 8. staging; 9. produkcja; 10. feedback.

Etapy rozwoju oprogramowania

Proces rozwoju oprogramowania w tradycyjny sposób przebiega najczęściej w 10-ciu głównych krokach. GitLab stworzył rozwiązanie dla każdego z nich:

  • POMYSŁ: Każda nowa propozycja zaczyna się od pomysłu, z reguły wyrażanego w rozmowie. Na tym etapie, GitLab wykorzystuje integrację z Mattermost.
  • ZGŁOSZENIE: Najbardziej wydajnym  sposobem na omówienie pomysłu jest zgłoszenie go w systemie. Twój zespół i współpracownicy mogą pomóc Ci w jego dopracowaniu i rozwoju przy pomocy Issue Trackera.
  • PLAN: Po zakończeniu procesu konsultacji, zaczyna się czas kodowania. Najpierw jednak trzeba nadać priorytety i zorganizować workflow. W tym celu możemy użyć Issue Board.
  • KODOWANIE: Gdy zakończymy planowanie, możemy zacząć pisać kod.
  • COMMIT: Gdy wersja robocza jest już satysfakcjonująca, możemy commitować kod do funkcjonalnego brancha z kontrolą wersji.
  • TESTY: Dzięki GitLab CI możemy uruchamiać skrypty budujące i testujące naszą aplikację.
  • RECENZJA: Gdy nasze skrypty, buildy i testy działają, jesteśmy gotowi do recenzji kodu i akceptacji.
  • STAGING: Teraz czas na wysłanie kodu do środowiska testowego, aby sprawdzić czy wszystko działa poprawnie.
  • PRODUKCJA: Gdy wszystko działa prawidłowo, czas na wdrożenie w środowisku produkcyjnym.
  • FEEDBACK: Ostatni etap to miejsce na wprowadzanie poprawek. Możemy wówczas również wykorzystać narzędzie Cycle Analytics, aby sprawdzić ile czasu poświęciliśmy na każdy z etapów.

Efektywne przejście przez wszystkie wymienione etapy wymaga dobrych mechanizmów wspierających workflow. W kolejnych sekcjach zamieściliśmy opis zestawu narzędzi ułatwiających pracę i przygotowanych przez GitLab.

GitLab Issue Tracker

GitLab oferuje funkcję śledzenia zgłoszeń, pozwalając Tobie, Twojemu zespołowi oraz współpracownikom na swobodne udostępnianie i wymianę pomysłów, zarówno przed ich wdrożeniem, jak i w trakcie.

GitLab Issue Tracker to funkcja śledzenia zgłoszeń w GitLab

Zgłoszenia (issues) to pierwsza z ważnych funkcji workflow GitLab’a. Rozpoczęcie dyskusji od zgłoszenia to najlepszy sposób na śledzenie ewolucji nowego pomysłu.

Issue Tracker umożliwia między innymi:

  • dyskutowanie o pomysłach,
  • proponowanie nowych rozwiązań,
  • zadawanie pytań,
  • zgłaszanie błędów i nieprawidłowego działania,
  • otrzymywanie wsparcia,
  • rozważanie nowych implementacji kodu.

Każdy projekt hostowany przez GitLab’a dysponuje swoim Issue Trackerem. Aby stworzyć nowe zgłoszenie w odpowiednim projekcie wybierz Issues > New issue, nadaj mu tytuł odpowiadający tematowi i opisz przy pomocy Markdowna. Możesz posłużyć się wskazówkami jak tworzyć dobre opisy.

GitLab Issue Tracker zapewnia dodatkowe funkcje ułatwiające organizację i nadawanie priorytetów, które opisane zostały poniżej.

Pole obejmuje m.in. osobę przypisaną, wagę zgłoszenia, etykiety i datę wykonania.

Zgłoszenia poufne

Jeśli chcesz, aby dyskusja pod zgłoszeniem była dostępna tylko dla Twojego zespołu, możesz oznaczyć je jako poufne. Nawet jeśli projekt jest publiczny to konkretne zgłoszenie będzie chronione. Przeglądarka pokaże błąd 404 jeśli ktoś bez uprawnień przynajmniej na poziomie Reporter spróbuje otworzyć adres URL zgłoszenia.

Terminy

Do każdego zgłoszenia możesz przypisać termin. Niektóre zespoły mają napięty grafik, więc konieczna jest możliwość ustawienia deadline’u dla wdrożeń i rozwiązywania problemów. Terminy wprowadzają taką możliwość.

W przypadku terminów w projektach wielozadaniowych, takich jak: nowy release, uruchomienie produktu czy też kwartalne śledzenie zadań, mamy do dyspozycji milestone’y.

Przydziały

Gdy ktoś rozpoczyna pracę nad zgłoszeniem, można je przypisać bezpośrednio do tej osoby. Przydziały można zmieniać bez ograniczeń. Idea jest taka, by osoba przypisana była odpowiedzialna za zgłoszenie do momentu przydzielenia go komuś innemu. Oczywiście istnieje możliwość filtrowania zgłoszenia według przydziałów.

Oznaczenia

Oznaczenia GitLab to kolejna ważna część workflow GitLab’a. Możemy używać ich do kategoryzowania zgłoszeń, rozmieszczania ich w workflow, jak i również do nadawania priorytetów.

Oznaczenia pozwalają pracować z tablicą zgłoszeń GitLab, umożliwiając planowanie i organizując workflow.

Nowością jest możliwość tworzenia oznaczeń grupowych, które pozwalają na przypisywanie tych samych oznaczeń do grup projektów.

Waga zgłoszeń

Każdemu zgłoszeniu można przypisać odpowiednią wagę, aby precyzyjnie ustalić stopień trudności wdrożenia zgłoszonego pomysłu. Łatwiejsze z nich mogłyby otrzymać wagę 01-03, nieco trudniejsze 04-06, a najtrudniejsze 07-09. W porozumieniu z zespołem możesz oczywiście wypracować własne standardy wagowe.

Mała uwaga: funkcja opisana powyżej dostępna jest tylko w wersji GitLab Enterprise Edition i GitLab.com.

GitLab Issue Board

GitLab Issue Board (tablica zgłoszeń) to znakomite narzędzie do planowania i organizowania zgłoszeń, umożliwiające dopasowanie ich do procesów w Twoim projekcie.

Tablica wyświetla odpowiednio oznaczone listy, umożliwiające dzielenie zgłoszeń według kategorii. Każda z list zawiera odpowiednie dla niej zgłoszenia, zaprezentowane w formie kart.

Karty można przypinać do list w dowolny sposób. Taka akcja powoduje dodanie do niej znacznika listy. W efekcie ułatwia to pracę po przełączeniu z widoku tablicy (Board) na widok zgłoszenia (Issues).

Nowością która została wprowadzona niedawno jest możliwość wykorzystywania wielu tablic zgłoszeń (Multiple Issue Boards) w jednym projekcie. Multiple Issue Boards jest najlepszym sposobem na jednoczesne organizowanie zgłoszeń z kilku różnych workflow.

Chcesz wiedzieć więcej na tema licencji lub poznać lepiej możliwości GitLab? Napisz do nas – nasi konsultanci chętnie odpowiedzą na wszystkie pytania!

źródło: https://about.gitlab.com/2016/10/25/gitlab-workflow-an-overview/