![-](/sites/droptica.pl/files/styles/blog_banner_image/public/media/image/programisci-uzywajacy-narzedzi-do-web-developmentu.jpg?itok=Vjgy7pN-)
Chaos w procesie web developmentu? Narzędzia, które usprawnią projekty w Twojej firmie
Dobrze dobrane narzędzia i procesy w firmie webdeveloperskiej to jeden z głównych czynników wpływających na satysfakcję klientów. Bez dbania o ten aspekt, projekty często są opóźnione, nie jest zachowana odpowiednia jakość i w efekcie klienci nie są zadowoleni. Zobacz, jak na bazie ponad dziesięciu lat doświadczenia w Droptica, dobraliśmy narzędzia do wspomagania budowy aplikacji webowych i serwisów internetowych. W tym wpisie znajdziesz gotową listę rozwiązań do wdrożenia od zaraz w Twojej firmie.
Spis treści
- Na początek ustal cel wdrożenia narzędzia
- Dobry sprzęt skraca czas pracy
- Jedno źródło prawdy dla usprawnienia komunikacji
- Zarządzanie projektami w Jira, by mieć wszystko pod kontrolą
- “Inbox Zero” w skrzynce pocztowej zmniejsza czas potrzebny na obsługę e-maili
- Slack - centrum szybkiej komunikacji w pracy zdalnej
- Bez rozmowy wideo nie da się zrobić idealnej komunikacji - Google Meet
- Google Workspace doskonale uzupełnia pozostałe narzędzia
- Twórz kod szybko dzięki dobrym narzędziom
- Zobacz pełną listę narzędzi używanych w Droptica
Na początek ustal cel wdrożenia narzędzia
Decyzja o wyborze narzędzia lub wdrożenia procesu powinna wiązać się z osiągnięciem konkretnego celu. Zanim więc zaczniesz wcielać w życie rozwiązania z tego artykułu, przejrzyj listę poniższych celów i zastanów się, czy dane narzędzie pomoże Ci osiągnąć któryś z nich dla Twojej organizacji. Jeśli jasno nie sprecyzujesz celu, to nigdy nie dojdziesz do momentu, w którym wdrożenie będzie można uznać za sukces.
Przykładowe cele wdrażania narzędzi wspomagających pracę w firmie webdeveloperskiej:
- Skrócenie czasu realizacji zadań (tu najlepiej określić, jakiego typu zadań ten cel ma dotyczyć).
- Zwiększenie wartości dostarczanych w czasie dla klienta, np. dla klientów, którzy regularnie co miesiąc płacą za czas pracy (np. jeśli mają wykupiony pakiet 40h, to jak możemy w tym czasie dostarczać im więcej zadań/funkcjonalności lub rozwiązywać więcej błędów etc.).
- Poprawa terminowości realizacji projektów.
- Usprawnienie komunikacji. Warto zdefiniować, jak mierzyć taki cel, np. poprzez zmniejszenie liczby zgłoszeń od klienta, które nie zostały zrealizowane w projekcie lub poprzez zmierzenie komunikacji wewnętrznej za pomocą ankiety i ponowienie ankiety po wdrożeniu narzędzia.
Dobry sprzęt skraca czas pracy
Narzędzia to nie tylko software. Hardware jest równie ważny. W Droptica od początku dobieraliśmy sprzęt tak, aby praca na nim nie była wąskim gardłem (np. przez długi czas oczekiwania na budowanie projektu lub długie wczytywanie dużego pliku graficznego).
Dobrym przykładem są tutaj projekty z większą bazą danych (kilkadziesiąt lub kilkaset gigabajtów danych).
Jeśli zmniejszymy czas importu bazy danych z 30 do 15 minut i taki import programista wykona raz w tygodniu, to w ciągu roku oszczędzimy 15 minut x 50 tygodni = 750 minut (12,5h). Jeśli mamy 10 programistów, to w skali roku będzie to 125h, co daje już prawie jeden pełny miesiąc pracy jednej osoby.
Przy niektórych zmianach sprzętu mieliśmy poprawę w imporcie i budowaniu projektów z 60 na 30 minut, a to jeszcze większe liczby.
W Droptica obecnie używamy dwóch rodzajów laptopów:
- Macbook Pro 14 (aktualnie najnowszy procesor to M3 Pro lub M3 Max) z 32/36 GB RAM,
- HP Elitebook (aktualnie najnowsza seria to G11) z 32 GB RAM i procesorem AMD.
Developerzy w naszej firmie mogą wybrać, czy wolą pracować na MacOS, czy na Ubuntu i na tej podstawie dostają odpowiedni sprzęt.
![W Droptica developerzy używają aktualnie dwóch rodzajów laptopów - Macbook Pro 14 oraz HP Elitebook.](/sites/droptica.pl/files/inline-images/sprzet-hardware_0.png)
W przypadku HP Elitebook rekomendujemy procesor AMD, ponieważ mniej się grzeje niż Intel. Wiatraki nie są zbyt głośne i można długo pracować na samej baterii (nasze testy dają wyniki w postaci 5-8h na samym laptopie).
Oprócz laptopa używamy dodatkowych monitorów - dwóch monitorów full HD lub jednego większego (27 cali 4K lub 34 cale ultrawide).
W naszym systemie intranetowym w ewidencji sprzętu spisujemy wynik Geekbench Multicore dla każdego laptopa. Regularnie sprawdzamy, które laptopy mają najniższy wynik i zmieniamy je na nowsze modele.
Jedno źródło prawdy dla usprawnienia komunikacji
Obecnie model pracy zdalnej lub hybrydowej jest standardem w wielu organizacjach. Firmy mają dużo narzędzi do komunikacji online i z nich korzystają. Czasem jednak jest ich tak dużo (e-mail, system do zarządzania projektami, komunikator tekstowy, komunikator wideo, dokumenty online itp.), że informacje są rozproszone w zbyt wielu miejscach i ciężko pamiętać, co gdzie było zapisane i ustalone.
Dlatego ważne jest, aby w trakcie realizacji projektu ustalić główny kanał komunikacji, w którym będzie ogólna informacja o statusie całego projektu oraz szczegółowe informacje o każdym realizowanym zadaniu. W Droptica takim miejscem jest Jira.
Jeśli coś ustalamy w rozmowie wideo, w wiadomości e-mail czy na Slacku, to finalnie zawsze ma to odzwierciedlenie później w postaci zadania w Jira. Jak już taki task związany z danym działaniem do wykonania znajduje się w systemie Jira, to tam trzymamy również całą powiązaną z nim dyskusję. Dotyczy to również komunikacji z klientem.
Ustalenie jednego głównego systemu komunikacji i systemów pomocniczych bardzo pomaga w zapanowaniu nad chaosem komunikacyjnym. W sytuacji gdy w projekcie mamy np. 4 osoby po stronie Droptica i 3 osoby po stronie klienta, to tej komunikacji robi się bardzo dużo.
Zarządzanie projektami w Jira, by mieć wszystko pod kontrolą
W Droptica wybraliśmy Jira do zarządzania projektami z dwóch powodów:
1. Jest to system znany wielu naszym klientom.
2. Istnieje dużo opcji dostosowania Jiry pod potrzeby firmy czy danego projektu.
Ad 1.
Projekty prowadzimy w Jira i tam zapraszamy naszych klientów, aby widzieli dokładnie, co dzieje się w trakcie realizacji projektu. Nasza praca jest tak ustawiona, aby była zawsze transparentna (co robimy i kto konkretnie pracuje nad zadaniami). Jeśli klient zna już ten system, nie trzeba go edukować ze sposobu działania narzędzia. To nam skraca czas na starcie projektu i jest dużym ułatwieniem dla klientów, kiedy słyszą, że będą mogli się z nami komunikować w Jira.
Ad 2.
Jira daje ogrom możliwości konfiguracji. Według mnie numerem jeden jest JQL, czyli język zapytań pobierających zadania z bazy danych Jira. Zapytania JQL można zapisać jako filtry i je później wykorzystać, tworząc dedykowane dashboardy lub boardy w projekcie.
Struktura projektów w Jira
Projekty w Jira dzielimy na kilka sposobów. Każdy projekt jest przypisany do klienta i w nazwie projektu znajduje się nazwa klienta, np. “[Acme] Intranet system” lub “[Droptica] Marketing”. Jak widać, mamy też projekty wewnętrzne. Wszystkie działania w Droptica mamy zorganizowane wokół projektów w Jira.
Takie nazewnictwo pozwala łatwo poruszać się po liście projektów i znajdować projekty przypisane do danego klienta (często nasi klienci realizują z nami kilka systemów webowych i każdy z nich ma swój projekt w Jira).
Workflow w backlogu
Domyślnie projekt w Jira ma zadania w otwartym sprincie i w backlogu. W sekcji Backlog w Jira można tworzyć przyszłe sprinty i tam planować zadania. Ta funkcjonalność jest u nas wykorzystywana do podziału zadań na kilka grup, aby lepiej zaplanować przyszłe sprinty. Ten podział mamy w większości projektów, również w działaniach wewnętrznych.
Sekcje w backlogu w Jira:
- Ready to start / estimated - zadania tutaj mają w pełni przygotowany opis oraz estymację czasu. Wszystkie zadania, które trafiają do sprintu muszą mieć oszacowany czas realizacji, aby dobrze planować, ile zadań możemy zmieścić w sprincie.
- More information needed - tutaj mamy zadania, których opis nie jest w pełni uzupełniony i są potrzebne odpowiedzi na dodatkowe pytania, aby zrozumieć, co jest do zrobienia oraz dobrze oszacować czas.
- To estimate - tutaj trafiają zadania, które zespół projektowy powinien oszacować lub zadać dodatkowe pytania i przesunąć do sekcji “More information needed”.
- Icebox - tutaj trzymamy zadania, których nie chcemy na razie realizować, ale może wrócimy do nich w przyszłości.
- Backlog - ta sekcja jest traktowana jako inbox i staramy się ją czyścić regularnie (najlepiej raz dziennie), przerzucając zadania do jednej z pozostałych sekcji.
![Sekcje w backlogu w Jira, systemie do zarządzania projektami, ułatwiają planowanie zadań w sprintach](/sites/droptica.pl/files/inline-images/sekcje-w-jira_0.png)
Dashboardy w Jira
Każdy Project Manager ma u nas pod opieką od 10 do 20 projektów klienckich. Jako projekt rozumiemy tutaj zarówno projekty realizowane przez zespół pracujący na pełny etat, jak i projekty utrzymaniowe, gdzie klient ma pakiet godzin w miesiącu (np. 40 godzin).
Używamy głównie dwóch typów dashboardów w Droptica:
1. Dashboard per Project Manager: na jednym dashboardzie zbieramy informacje ze wszystkich jego projektów.
2. Dashboard per projekt: na jednym dashboardzie zbieramy informacje tylko z danego projektu.
Celem dashboardów jest szybkie wyciągnięcie informacji:
- Jakie zadania powinny być realizowane jako następne?
- Jakie zadania muszą być przeanalizowane i oszacowane (backlog)?
- Czy są przekroczenia czasów w realizowanych zadaniach w stosunku do estymacji?
- Czy jakieś zadania są realizowane zbyt długo (przekroczona data wpisana w zadaniu jako data dostarczenia)?
- Wykres burndown, aby sprawdzać, czy realizacja zadań idzie zgodnie z planem.
Zależnie od Project Managera i projektu oraz specyfiki klienta, dashboardy są rozbudowywane o dodatkowe informacje. Przykładowe dashboardy znajdziesz na końcu tego artykułu.
Boardy w projekcie w Jira
Domyślne boardy w projekcie w Jira pokazują zadania pogrupowane według przypisania do osób. Zależnie od projektu zmieniamy to ustawienie i najczęściej porządkujemy zadania według takiej kolejności:
- P1 - błędy krytyczne typu P1
- Overdue - zadania z przekroczoną datą zakończenia zadania
- Highest priority - zadania z najwyższym priorytetem
- High priority - zadania z wysokim priorytetem
- Created X+ days ago - zadania utworzone X dni temu (ustawiamy wartość zależnie od projektu np na 15, 30, 60 dni)
- Medium priority
- Low priority
- Lowest priority
Taki podział pozwala całemu zespołowi zobaczyć, co jest obecnie na projekcie najważniejsze do zrobienia i na czym zespół musi się skupić. Project Manager nie musi tłumaczyć priorytetów. Wszystko jest widoczne na boardzie w Jira.
Pluginy dla Jira
Dwa główne pluginy, które mamy zainstalowane w Jira to:
- Timesheets Tempo - głównie do przeglądania i tworzenia raportów związanych z zalogowanymi godzinami pracy.
- Activity Timeline - do planowania pracy zespołu na najbliższe dni i tygodnie.
Mamy też napisaną customową aplikację w Symfony. Opis jej funkcjonalności znajdziesz w zestawieniu narzędzi na końcu artykułu.
“Inbox Zero” w skrzynce pocztowej zmniejsza czas potrzebny na obsługę e-maili
Podobnie jak w Jira, również w przypadku skrzynki pocztowej ustaliliśmy sposób zarządzania e-mailami. Dążymy do stanu “Inbox Zero”.
Maile przychodzące sortujemy na 3 foldery:
- 01 Action Needed - tutaj trafiają e-maile, które wymagają reakcji, ale to potrwa więcej niż 2 minuty;
- 02 Waiting for - tutaj trafiają e-maile, gdzie czekamy na odpowiedź od kogoś;
- 03 Someday - tutaj trafiają e-maile do zrobienia “kiedyś”, nie są to pilne zadania.
Używamy też filtrów, aby automatycznie kategoryzować e-maile. Najczęściej to takie filtry:
- Per klient - aby mieć w jednym miejscu wszystkie maile od danego klienta.
- Powiadomienia z Jira.
- Powiadomienia z kalendarza (np. ktoś potwierdził udział w spotkaniu).
- Maile, w których jesteśmy w polu CC lub BCC.
- Maile na ogólne adresy mailowe (np. do [email protected]).
Filtry i “Inbox Zero” pozwalają nam na sprawniejsze i szybsze zarządzanie wiadomościami e-mail.
Slack - centrum szybkiej komunikacji w pracy zdalnej
Wybraliśmy Slacka jako centrum naszej komunikacji tekstowej niedługo po jego pojawieniu się na rynku. Wcześniej korzystaliśmy z już nieistniejącej aplikacji HipChat od Atlassian.
Slack był z jednej strony prostą aplikacją do komunikacji tekstowej (jeśli pamiętasz IRC, to ogólna koncepcja kanałów i wiadomości prywatnych jest tutaj podobna). Z drugiej natomiast wyglądał ładniej, pracowało się z nim przyjemniej oraz miał możliwość dodawania integracji, których liczba stale rosła.
Dzisiaj nie wyobrażamy sobie codziennej pracy bez używania Slacka. Służy nam nie tylko do komunikacji dotyczącej projektów klienckich. Jest też głównym sposobem komunikacji na temat projektów wewnętrznych, jak również rozmów niezwiązanych z pracą (np. do dyskusji o serialach, samochodach, elektronice, itp).
Slack jest u nas zintegrowany z szeregiem aplikacji zewnętrznych, dzięki czemu w komunikatorze możemy otrzymywać istotne powiadomienia. Szczegóły znajdziesz na diagramie na końcu wpisu.
Bez rozmowy wideo nie da się zrobić idealnej komunikacji - Google Meet
Do rozmów wideo korzystamy z Google Meet. Mamy zasadę, że każde spotkanie musi się odbywać z włączoną kamerą. W czasie pracy w rozproszonym zespole to sprawia, że jego członkowie lepiej się dogadują i efektywniej pracują.
W przypadku większości projektów mamy wideorozmowy codziennie. Są to zazwyczaj krótkie spotkania na 5-15 minut. Na potrzeby dłuższych spotkań często posiłkujemy się aplikacją tldv.io, która tworzy nam później notatki tekstowe ze spotkania.
Google Workspace doskonale uzupełnia pozostałe narzędzia
W pracy sięgamy po pakiet Google Workspace. Oprócz Gmail i Google Meet, codziennie używamy też dokumentów tekstowych i arkuszy kalkulacyjnych z pakietu Google.
Mamy przygotowany szereg szablonów dokumentów, które są używane przy pracach projektowych, m.in:
- Estymacje projektów (czas, koszt, zasoby, harmonogram);
- Kontrola budżetu projektu;
- Agenda spotkań i notatki ze spotkań;
- Definition of Done, Social Contract;
- Dokumenty PDCA dla projektów, zespołów i ogólnofirmowe (planowanie celów i kontrola ich realizacji).
Szablonów mamy dużo więcej. Regularnie je też ulepszamy, ponieważ porządkują nam prace i skracają czas realizacji zadań.
Twórz kod szybko dzięki dobrym narzędziom
Tworzenie kodu to zadanie, które zajmuje w naszej firmie najwięcej czasu, dlatego usprawnienia tutaj mają wpływ na to, ile i jakiej jakości kod dostarczamy klientom. Głównym narzędziem do tworzenia kodu jest IDE/edytor tekstowy. W Droptica większość osób korzysta z PHPStorm, część osób używa Visual Studio Code. Mamy listę rekomendowanych wtyczek i rozszerzeń do obu aplikacji, które sprawiają, że tworzenie kodu jest jeszcze bardziej efektywne. Zestawienie znajdziesz na końcu artykułu.
Od początku jak powstał Github Copilot, używamy go regularnie do pomocy w tworzeniu kodu. Według naszych szacunków narzędzie to przyśpiesza pracę o 20-40% zależnie od projektu i rodzaju aplikacji do zrobienia.
Posiadamy też repozytorium uniwersalnych modułów i klas, które mogą być używane w wielu projektach. Repozytorium to stale rośnie i sprawia, że tworzenie kolejnych aplikacji jest coraz szybsze i tańsze dla naszych klientów.
Takim dużym gotowcem jest nasz projekt open source Droopler - site builder zoptymalizowany pod SEO. Używamy go jako starter przy większości projektów stron firmowych. Pozwala nam zaoszczędzić setki godzin pracy i dać klientom dużo lepszą ofertę niż przy budowaniu wszystkiego od zera.
Korzystamy też z innych gotowców (tzw. dystrybucji drupalowych), zależnie od potrzeb klienta. Dla wydawców i mediów stosujemy Thunder CMS, dla intranetów i społeczności online używamy OpenSocial, a dla systemów e-commerce korzystamy z Drupal Commerce, Syliusa lub Magento, dopasowując platformę do konkretnego przypadku.
Do pracy lokalnie używamy DDEV. To bardzo szybko rozwijające się narzędzie sprawia, że programista może się skupić na tworzeniu kodu, a nie na problemach z lokalnym uruchomieniem projektu. Startowanie projektu czy dodanie nowego developera do projektu zajmują bardzo mało czasu. Bez DDEV traciliśmy sporo czasu na nieprogramistyczne zadania.
Turbo-drupal to kolejne usprawnienie, które pozwala skrócić czas pracy programistów. Jest to starter do nowych projektów na Drupalu, który ma w sobie DDEV, narzędzia do automatycznego sprawdzania kodu, do automatycznej aktualizacji Drupala i modułów oraz integrację z Platform.sh.
Platform.sh to nasza główna platforma hostingowa. To nie tylko zwykły hosting, ale cała platforma z ogromnymi opcjami konfiguracji, możliwością dodania wielu instancji, zarządzaniem z konsoli (CLI) i wieloma innymi opcjami. Przejście na Platform.sh stanowiło następne usprawnienie, które skróciło nam czas związany z wytwarzaniem aplikacji.
Zobacz pełną listę narzędzi używanych w Droptica
Oprócz tego artykułu przygotowaliśmy dla Ciebie diagram (w języku angielskim) zawierający pełną listę narzędzi, które używamy obecnie w Droptica do tworzenia projektów webowych. W zestawieniu znajdują się m.in. wtyczki do PHPStorm i Visual Studio Code, przykładowe dashboardy z Jira, przykładowe JQL w Jira do dashboardów i boardów, a także przykład dokumentu PDCA.
![Baner zachęcający do odkrycia wszystkich narzędzi ułatwiających web development na diagramie.](/sites/droptica.pl/files/inline-images/narzedzia-web-development-baner.png)
Wypełnij formularz kontaktowy, aby otrzymać e-mail z linkiem do diagramu z listą narzędzi, które pomogą usprawnić procesy w Twojej firmie.
Narzędzia usprawniające web development - podsumowanie
Nasz zestaw aplikacji i procesów regularnie się zmienia. Lista rozwiązań, których używamy obecnie, pewnie za rok będzie wyglądała już inaczej, bo cały czas się rozwijamy i poszukujemy nowych usprawnień. Jednak na bazie ponad dziesięciu lat doświadczeń opracowaliśmy już pakiet narzędzi i procesów, które eliminują potencjalne problemy w budowie aplikacji webowych oraz skracają czas ich dostarczania. Dzielimy się nimi wyżej.
Warto na pewno testować i eksperymentować w ramach swojej organizacji - weryfikować, co działa, a co się zupełnie nie sprawdza. W Droptica mamy doświadczenie we współpracy z agencjami interaktywnymi, więc możemy pomóc w wyborze odpowiednich rozwiązań. A jeśli już korzystasz z ulubionego oprogramowania czy sprzętu, zachęcamy do podzielenia się swoimi zestawami narzędzi lub procesów pod naszymi wpisami o tym artykule w social mediach (na Facebooku, LinkedInie lub X). Na pewno będzie to przydatne dla innych czytelników.