Po co nam narzędzia?

W projektach informatycznych uczestniczy zazwyczaj wiele osób. Coraz więcej z nich pracuje zdalnie, czasem mieszkają w innych miastach, a nawet na różnych kontynentach. Każda z nich musi mieć jednak dostęp do istotnych informacji, dokumentów, kodu. Czasem członkowie zespołu potrzebują szybko podzielić się wiedzą, a nawet ze sobą porozmawiać. W takich przypadkach z pomocą przychodzi technologia.

Specjalistyczne aplikacje pomagające usprawnić pracę zespołową można podzielić na kategorie w zależności od ich przeznaczenia.

Systemy kontroli wersji/repozytoria kodu

Są to miejsca, w których przechowuje się kod wraz z całą historią jego zmian. Narzędzia takie umożliwiają pisanie kodu wielu programistom równocześnie; pozwalają też przywrócić jedną z zapisanych wcześniej wersji. Najpopularniejszym z takich systemów jest Git. Z kolei do utrzymywania kodu w chmurzechmura obliczeniowachmurze służą platformy hostingowehostinghostingowe, takie jak wymieniony przez menedżera w przykładzie ze wstępu GitHub czy BitBucket.

Ciekawostka

Jeśli kiedyś usłyszysz okrzyk „git push”, oznacza to, że któryś z programistów wgrywa najnowszą wersję kodu do repozytoriumrepozytoriumrepozytorium. Programiści pracują na lokalnej wersji kodu ściągniętej na swoje komputery, a „pushują” dopiero po zakończeniu danego etapu.

Okno GitHuba wygląda następująco:

RgpYmA5qB5v6k
Źródło: Bianka Rowińska, licencja: CC BY-SA 3.0.

Kod nie jest przechowywany w jednym pliku, ale w folderach, co umożliwia utrzymanie porządku i szybsze znalezienie odpowiedniego fragmentu. Wersje całego projektu przechowywane są w tzw. „branchach”, czyli gałęziach – dzięki temu można jednocześnie utrzymywać wersję testową (zwaną deweloperską, stąd napis „devel” na zrzucie ekranu) oraz produkcyjną, czyli tę, która wychodzi na światło dzienne. Większe zmiany najpierw testuje się „na devie”.

Wiele czynności można zautomatyzować za pomocą dostępnej w GitHubie opcji Workflow. Przykładowo, możemy z niej skorzystać, jeśli chcemy, aby kod był regularnie poddawany testom.

Repozytoria dokumentacji i aplikacje do wspólnej pracy nad dokumentami

Każdy projekt musi mieć dokumentację, w której szczegółowo określa się cechy przyszłego produktu, sposób wdrożenia poszczególnych funkcjonalności i wytyczne, którymi ma się kierować programista.

Dokumentacja to w praktyce obszerne pliki tekstowe, które zawierają bardzo szczegółowe opisy. Często przygotowuje się ją wraz z klientem. W miarę rozwoju projektu wiele rzeczy będzie ustalanych na bieżąco, dlatego dokumentację często się uaktualnia. Pliki można przechowywać online, np. na Dysku Google.

Ciekawostka

Im bardziej szczegółowa dokumentacja, tym mniej wątpliwości będą mieli programiści podczas wdrożenia, warto więc poświęcić czas na jej przygotowanie.

Czasem kilka osób musi edytować ten sam dokument równocześnie. Przykładowo – opracowano plan testów i każdy z testerów ma wykonać część prac, ale nie powinni oni się dublować. Z pomocą przychodzą narzędzia pozwalające na współdzielenie dokumentów i śledzenie zmian w czasie rzeczywistym. Służą do tego np. Dokumenty Google czy Spreadsheets lub MS SharePoint.

RRPLydhohtMVD
Źródło: Bianka Rowińska, licencja: CC BY-SA 3.0.

Jak widać, osoba mająca zielony awatar umieściła kursor w środku pierwszego słowa, a osoba z fioletowym awatarem – w środku ostatniego. Wszystkie zmiany na bieżąco są zapisywane w chmurze. Osoby, którym udostępniono odsyłacz do pliku, nie muszą mieć konta Google.

Oprogramowanie do zarządzania projektami

Narzędzia tego typu pozwalają tworzyć zadania (zwane potocznie taskamitasktaskami), oznaczać pracowników, którzy mają je wykonać oraz rozliczać ich z czasu pracy i jej efektów. Dzięki takim programom każdy wie, czym ma się zająć w najbliższym czasie. Najczęściej wykorzystuje się program Jira, ale istnieją także inne – np. YouTrack czy Asana.

Ciekawostka

Zarządzanie projektem informatycznym jest na tyle skomplikowane, że pracę tę wykonuje specjalna osoba – menedżer projektów (ang. project mamager, czyli w skrócie PM czytane jako „pi em”). Pilnuje on, aby każdy członek zespołu miał niezbędne informacje, przypisuje taski wykonawcom i rozlicza ich z pracy, rozwiązuje bieżące problemy i komunikuje się z klientem.

Nadrzędną kategorią w narzędziu Jira jest projekt, do którego przypisywane są taski, czyli zadania, jakie należy wykonać, by skończyć kolejne etapy projektu. Tak wygląda tablica projektu w Jira:

RMdIY2548gG21
Źródło: Bianka Rowińska, licencja: CC BY-SA 3.0.

Cała praca jest wykonywana w dwutygodniowych cyklach, zwanych Sprintami, a dla każdego Sprintu jest zakładana jego osobna tablica:

R2W4CwWPhGYbY
Źródło: Bianka Rowińska, licencja: CC BY-SA 3.0.

Task TP‑1 został już wykonany, dlatego jest przekreślony.

Trello to aplikacja łącząca funkcje repozytorium i narzędzia do zarządzania projektami. Umożliwia ona stworzenie dla projektu tablicy, w której znajdują się listy z kartami. W kartach można umieszczać dowolne informacje, oznaczać użytkowników oraz tworzyć listy rzeczy do zrobienia:

RSPMRNrgRACQr
Źródło: Bianka Rowińska, licencja: CC BY-SA 3.0.

Karty można łatwo przenosić między listami korzystając z mechanizmu przeciągnij‑i-upuść.

Oto karta z wyznaczonym terminem i listą zadań:

R3TpovLdwTsE3
Źródło: Bianka Rowińska, licencja: CC BY-SA 3.0.

Komunikatory

RhsbFsw5iB0RO
Źródło: dostępny w internecie: slack.com [dostęp 24.11.2020], tylko do użytku edukacyjnego.

Czasem najłatwiej „złapać kogoś” na czacie. Takim rozbudowanym czatem jest aplikacja Slack. Dla każdego projektu można stworzyć osobny kanał. Tak wygląda lista kanałów na ekranie telefonu:

Nieprzeczytane wątki są zaznaczone pogrubieniem, aby łatwo było je odnaleźć. Przykładowa rozmowa wygląda następująco:

RIRvcOoVKKH0r
Źródło: dostępny w internecie: slack.com [dostęp 24.11.2020], tylko do użytku edukacyjnego.

Jak widać, można także dzielić się dokumentami i ustawiać powiadomienia. Na bieżąco można również zobaczyć, kto jest dostępny.

Minusem Slacka jest to, że w gąszczu wpisów trudno odnaleźć ważne informacje, a wersja darmowa usuwa po pewnym czasie część historii. Dlatego istotne sprawy lepiej przekazywać w inny sposób.

Ciekawostka

Programiści rzadko korzystają z e‑maila – na odpowiedź wiadomość wysłaną tym kanałem można czekać nawet parę dni.

Narzędzia do prowadzenia spotkań online

Kiedy wszystkie sposoby komunikacji zawiodą, trzeba „się zdzwonić”. Internet oferuje wiele aplikacji do komunikacji zdalnej, niektóre z nich nie wymagają nawet założenia konta. Często korzysta się z aplikacji Whereby lub Zoom; w dużych firmach używa się zazwyczaj MS Teams.

Jeśli chcesz przeprowadzić spotkanie za pomocą Zoom czy Whereby, musisz się zarejestrować. Następnie możesz utworzyć wirtualny pokój do konwersacji. Program poda ci jego adres – wystarczy, że przekażesz go pozostałym uczestnikom, a dołączą do ciebie w oknie przeglądarki, bez konieczności tworzenia nowego konta.

Dodatkowo uczestnicy mogą w czasie rzeczywistym pokazywać zawartość swoich ekranów, a w okienku czatu wymieniać się odsyłaczami internetowymi.

Ciekawostka

Wszystkie programy zaprezentowane w czasie bieżącej lekcji są darmowe (w podstawowych wersjach) i działają w przeglądarkach WWW. Można je wykorzystywać nie tylko w projektach informatycznych, ale także do organizacji pracy własnej lub grupowej.

Słownik

chmura obliczeniowa
chmura obliczeniowa

sposób dostarczania usług za pośrednictwem Internetu, bez konieczności instalacji specjalnego oprogramowania; w tym modelu pliki, aplikacje, dokumenty są przechowywane nie na twoim laptopie lub domowym komputerze, ale na jednym z rozmieszczonych gdzieś w świecie serwerów

estymat
estymat

oszacowanie czasu, który będzie potrzebny na zrealizowanie jakiegoś zadania; najczęściej podaje się go w godzinach; estymat podaje osoba, która będzie wykonywać estymowaną pracę

hosting
hosting

usługa polegająca na odpłatnym udostępnianiu procesora, pamięci, miejsca na dysku, łącza internetowego; dzięki niej zasoby mogą być udostępniane wielu użytkownikom

repozytorium
repozytorium

miejsce przechowywania zasobów cyfrowych (np. kodu czy baz danych)

task
task

inaczej zadanie, pewna praca, której wykonanie rzadko przekracza jeden dzień; przed wykonaniem taski są estymowane, co oznacza, że osoba, która będzie wykonywać zadanie, określa, ile czasu jej to zajmie