Przeczytaj
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 chmurzechmurze służą platformy hostingowehostingowe, takie jak wymieniony przez menedżera w przykładzie ze wstępu GitHub czy BitBucket.
Jeśli kiedyś usłyszysz okrzyk „git push”, oznacza to, że któryś z programistów wgrywa najnowszą wersję kodu do repozytoriumrepozytorium. 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:
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.
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.
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 taskamitaskami), 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.
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:
Cała praca jest wykonywana w dwutygodniowych cyklach, zwanych Sprintami, a dla każdego Sprintu jest zakładana jego osobna tablica:
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:
Karty można łatwo przenosić między listami korzystając z mechanizmu przeciągnij‑i-upuść.
Oto karta z wyznaczonym terminem i listą zadań:
Komunikatory
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:
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.
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.
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
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
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ę
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
miejsce przechowywania zasobów cyfrowych (np. kodu czy baz danych)
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