Przewodnik dla początkujących dotyczący zarządzania rozwojem oprogramowania za pomocą Kanban i Trello
Opublikowany: 2022-03-11Każdy jest kierownikiem projektu. Niezależnie od tego, czy zarządzasz rozwojem nowej aplikacji i rozwijasz swój startup, pracujesz nad nowym projektem korporacyjnym o wartości miliardów dolarów, czy po prostu próbujesz ożywić swoje podwórko za pomocą majsterkowania, zawsze zarządzasz projektem.
Sukces twojego projektu zależy od wielu czynników, ale jednym z najczęstszych powodów niepowodzenia projektów jest brak zarządzania lub wręcz złe zarządzanie projektem. Bez względu na to, jak mały jest Twój zespół lub jak przejrzyście udokumentowane są Twoje wymagania, jeśli nie będziesz właściwie nim zarządzać, Twój projekt na pewno się nie powiedzie.
Zwinne zarządzanie projektami to powszechnie akceptowana metoda podejścia do nowoczesnych projektów rozwoju oprogramowania. Ale co tak naprawdę oznacza Agile?
Aby głębiej zagłębić się w zasady Agile, sugeruję przeczytanie naszego Ultimate Guide to Agile Project Management.
W tym poście wyjaśnimy podstawy zwinnego zarządzania projektami za pomocą Kanban.
Nawet jeśli jesteś doświadczonym kierownikiem projektu, który rozumie zasady Agile, powinieneś odświeżyć swoją pamięć i przypomnieć sobie podstawowe pojęcia. Cykle innowacji w tworzeniu oprogramowania stale przyspieszają, co z każdą iteracją sprawia, że zarządzanie projektami staje się coraz bardziej złożone. Powrót do fundamentalnych zasad i utrwalenie podstawowych zasad Agile jest zawsze ważne. W końcu powtórzenie jest matką wszelkiej wiedzy.
Kanban to jedna z najłatwiejszych metod zarządzania dowolnym projektem programistycznym Agile. Możesz łatwo obsługiwać lokalny zespół programistów, który pracuje w tym samym biurze lub rozproszonym zespole, rozłożonym na kilka stref czasowych.
Kanban nie jest procesem. Jest to sposób na zarządzanie dowolnym procesem przy minimalnych zmianach w ustalonych działaniach operacyjnych zespołu.
Aby zastosować zasady Kanban do swojej pracy, musisz zastosować dwie proste zasady:
- Wizualizuj swój proces.
- Ogranicz pracę w toku.
Wizualizuj swój proces
Wizualizacja danych to szybki i łatwy sposób przekazywania informacji w uniwersalny i łatwy do zrozumienia sposób. Podczas oglądania obrazów ludzki mózg może przetwarzać kilka informacji jednocześnie. Niektórzy badacze twierdzą, że może to być nawet 60 000 razy szybsze niż czytanie tekstu.
Najpopularniejszym sposobem wizualizacji procesu jest tablica Kanban. Tablica Kanban to tablica podzielona pionowo na kilka kolumn, przy czym każda kolumna reprezentuje jeden stan w procesie.
Przyjrzyjmy się, jak wyglądałaby prosta tablica programistyczna. Najpierw musimy zdefiniować stany dla naszych funkcji programistycznych:
- To-Do - funkcja czeka na rozwój
- Development - funkcja jest przypisana programiście i on/ona nad nią pracuje
- Zapewnienie jakości — funkcja jest w trakcie sprawdzania
- Wdrożone — funkcja została zaakceptowana i uwzględniona w wydaniu aplikacji
Na tej podstawie twoja tablica powinna mieć następujący układ:
Wizualizacja poszczególnych zadań jest tak prosta, jak tworzenie prostej karty (podobnie jak samoprzylepna karteczka), która przedstawia pracę, którą należy wykonać. Możesz nazwać zadanie, dodać nazwę przypisanego programisty, termin i wszelkie inne istotne informacje do tej karty.
Kiedy dodajesz tę kartę do kolumny na tablicy Kanban, wyobrażasz sobie, że na przykład określony programista pracuje nad określonym zadaniem, które ma upłynąć w określonym terminie i jest obecnie w fazie rozwoju.
Limit pracy w toku (WIP)
Wielozadaniowość człowieka to złudzenie. Zamiast zwracać uwagę na jedną lub dwie rzeczy jednocześnie, nasze mózgi bardzo szybko przełączają się między nimi.
Jest to bardziej widoczne w tworzeniu oprogramowania niż gdziekolwiek indziej. Deweloperzy mogą pracować tylko na jednym fragmencie kodu na raz, a przełączenie na inną funkcję spowoduje opóźnienia oraz wpłynie na ich koncentrację i wydajność.
Nie oznacza to, że musisz ograniczyć liczbę zadań do jednego na raz. Programowanie jest złożoną i kreatywną pracą, niektóre zadania zajmują więcej czasu, a inne mniej czasu, a programista zawsze czeka na coś lub kogoś. Ważne jest, aby ograniczyć przydzielane zadania do rozsądnej liczby, która nie spowoduje chaosu (zwykle jest to od trzech do pięciu zadań na raz).
Zakładając, że twój zespół programistów składa się z dwóch programistów i inżyniera QA, twoja płyta może mieć następujące limity WIP:
- Do zrobienia — Nieograniczone
- Rozwój — limit sześciu kart (dwóch programistów, każdy ograniczony do maksymalnie trzech zadań)
- Zapewnienie jakości — limit trzech kart (1 inżynier ds. kontroli jakości ograniczony do maksymalnie trzech kart)
- Wdrożone — bez ograniczeń
Twoim zadaniem, jako kierownika projektu, jest upewnienie się, że lista zadań do wykonania ma odpowiednie priorytety, a zadania są przydzielane programistom nie wcześniej niż to konieczne.
Prawidłowo zarządzana tablica Kanban da Ci jasny obraz stanu Twojego projektu na pierwszy rzut oka. Możesz zobaczyć, że twoi programiści mają wystarczająco dużo pracy, że przygotowałeś nowe zadania, które mogą przejąć po wykonaniu ich zadań, a twój inżynier QA czeka na nowe zadania do sprawdzenia.
Użyj Trello do zarządzania tablicą Kanban
Trello to internetowa aplikacja do zarządzania projektami Kanban. Umożliwia łatwą współpracę w czasie rzeczywistym między członkami zespołu, a nawet wieloma zespołami i projektami.
Aby utworzyć tablicę w Trello, kliknij element menu „Utwórz nową tablicę…” i ustaw tytuł tablicy.
Zaczniesz z pustą planszą. Użyj pola „Dodaj listę…”, aby utworzyć kolumny dla swoich kart Kanban.
Klikając „Dodaj kartę…” u dołu dowolnej listy, możesz łatwo utworzyć zadanie. Każda utworzona karta powinna reprezentować zadanie, które zostanie wykonane przez członka zespołu.
Karty w Trello można dostosować na wiele sposobów:
- Przypisz członków zespołu odpowiedzialnych za wykonanie zadania
- Oznacz je kolorami w zależności od konkretnych grup, które chcesz dodać
- Ustaw terminy
- Dodaj załączniki
- Dodaj niestandardowe pola, takie jak lista kontrolna, w której możesz śledzić postęp mniejszych elementów składających się na zadanie
- Członkowie zespołu mogą komentować kartę, a wszyscy zostaną powiadomieni o wszelkich wprowadzonych zmianach.
Wizualizacja to w Kanbanie wszystko, więc tak wygląda karta na tablicy:

Wystarczy spojrzeć na kartę, bez otwierania szczegółowego widoku, aby zobaczyć, że:
- Zadanie konfiguracji repozytorium kodów GitHub czeka na wykonanie na liście zadań do wykonania.
- Zadanie ma nastąpić do 27 stycznia.
- Zadanie posiada opis.
- Do zadania jest jeden komentarz.
- Istnieje lista kontrolna składająca się z dwóch pozycji i żadna z tych pozycji nie jest obecnie ukończona.
- Zadanie jest przypisane do użytkownika DS, który następnie je odbierze.
- Zadanie należy do grupy kart koloru zielonego, co oznacza, że jest wymagane przed rozpoczęciem projektu.
Oszacuj czas i złożoność prac rozwojowych
Planowanie i zarządzanie projektem jest niemożliwe bez zrozumienia wysiłku i czasu potrzebnego do wykonania określonego zadania. Jednak jedną z najtrudniejszych rzeczy do zrobienia w tworzeniu oprogramowania jest określenie, ile czasu zajmie dostarczenie nowego produktu lub funkcji.
Scrum, jedna z najpopularniejszych zasad Agile, w dużej mierze opiera się na szacunkach, niezależnie od tego, czy są one oparte na czasie, czy na „punktach złożoności”.
Zespół powinien poświęcić dużo czasu na określenie zadania.
Dzieje się tak, ponieważ Scrum opiera się na określonych przedziałach czasowych, w których oczekuje się wykonania określonej grupy zadań. Aby zaplanować dostawę, musisz mieć pełne zrozumienie całej pracy zaplanowanej w tym przedziale czasowym.
Kanban nie polega na dostawach ograniczonych czasowo, a jeśli chcesz, możesz zaplanować codzienne dostawy. Polega na optymalizacji przepływu, co oznacza, że celem zespołu jest jak najszybsze uzupełnienie i opróżnienie kolumny WIP.
Zespół nie poświęca czasu na szacowanie pracy z dużym wyprzedzeniem. Deweloper pobierze następny element z zadania do wykonania; wypełnij go tak szybko, jak to możliwe; i podejmij kolejne zadanie.
Nie oznacza to, że zespół nie powinien szacować wielkości swojego obciążenia pracą.
Możesz korzystać z tygodniowych lub codziennych połączeń, aby aktualizować i weryfikować terminy.
Jednak w przypadku małego zespołu ważniejsze jest upewnienie się, że programiści pracują w danym momencie nad zadaniem o najwyższym priorytecie i że nie ma wąskich gardeł, zmuszających programistę do wstrzymania pracy.
W końcu Twój projekt się rozwinie i będziesz musiał zacząć bardziej szczegółowo szacować ilość pracy programistycznej. Kiedy dojdziesz do tej sytuacji, poświęć trochę czasu na przeczytanie naszego przewodnika szacowania kosztów oprogramowania w zwinnym zarządzaniu projektami.
Niezbędne praktyki zarządzania
Do tej pory dowiedziałeś się, jak ważna jest wizualizacja procesu i ograniczanie WIP oraz jak używać Trello do zarządzania projektem.
Projekt oprogramowania może być zarządzany nie tylko za pomocą kart i kolumn. Dlatego ważne jest, aby wdrożyć również najlepsze praktyki Agile:
Organizuj regularne spotkania zespołu.
Rób to co najmniej raz w tygodniu, aby przejrzeć, co zostało zrobione, oraz w razie potrzeby doprecyzować i ustalić priorytety (lista zadań do wykonania). W ten sposób cały zespół będzie otrzymywał aktualizacje w tym samym czasie, a pomysły będą mogły być dzielone. Podczas tych spotkań ważne jest, aby interesariusz projektu (klient, dyrektor ds. technicznych firmy lub ktokolwiek z zespołu ds. produktu, który może podjąć decyzję i odpowiedzieć na pytania), w końcu dostarczy nietechniczną informację zwrotną.Zapewnij stałą komunikację z poszczególnymi członkami zespołu.
Ułatwi to wszystkim codzienną pracę. Niech te spotkania lub synchronizacje będą bardzo krótkie i proste, wystarczy szybka aktualizacja w ulubionym programie czatu. Przydatne jest przeprowadzanie codziennych meldunków, co może oznaczać 15-minutowe codzienne spotkanie ze swoim zespołem. Na tym spotkaniu każdy członek zespołu mówi przez kilka sekund, stwierdzając:
- Nad czym pracowali wczoraj.
- Nad czym planują dzisiaj popracować.
- Z jakimi wyzwaniami lub wąskimi gardłami się borykają.
Rób notatki podczas rozmowy i zwracaj uwagę, aby znaleźć możliwe problemy (blokery, niewłaściwa koncentracja na zadaniu, nieoczekiwane wyzwania techniczne) i pracuj nad nimi z zespołem.
Zainicjuj swój projekt rozwoju oprogramowania
Chociaż każdy projekt tworzenia oprogramowania jest inny, w prawie każdym znajdziesz pewne zadania. Oto niektóre z zadań, które powinieneś zaplanować, rozpoczynając projekt rozwoju oprogramowania:
Skonfiguruj wersjonowanie kodu i repozytorium.
Śledzenie zmian i monitorowanie kodu jest niezwykle ważne, zwłaszcza podczas współpracy nad projektami, w których wiele osób będzie aktualizować ten sam kod.
Jedną z najpopularniejszych usług do wersjonowania kodu jest GitHub. GitHub to internetowe repozytorium Git lub kontroli wersji, które oferuje wszystkie funkcje rozproszonej kontroli wersji i zarządzania kodem źródłowym (SCM) usługi Git.
Zapewnia kontrolę dostępu i kilka funkcji współpracy, takich jak śledzenie błędów, prośby o funkcje, zarządzanie zadaniami i wiki dla każdego projektu.Zdefiniuj zasady tworzenia kopii zapasowych bazy danych.
Korzystanie z usług takich jak GitHub zapewni regularne tworzenie kopii zapasowych kodu.
Bazy danych zwykle nie są częścią systemu wersjonowania i należy również skonfigurować częste tworzenie kopii zapasowych baz danych.
Proces rozwoju jest podatny na błędy i łatwo popełnić błąd i zaktualizować nieprawidłowe dane podczas tworzenia. Posiadanie kopii zapasowej pozwoli Ci zaoszczędzić kłopotów, jeśli taki problem wystąpi.Skonfiguruj narzędzia do współpracy i udostępnianie plików.
Dokumentacja projektowa, specyfikacje funkcjonalne, pliki projektowe oraz wszelka inna dokumentacja i pliki używane podczas opracowywania projektu są stale aktualizowane i powinny być dystrybuowane do Twojego zespołu.
Możesz korzystać z wielu różnych usług, aby udostępniać te pliki. Google umożliwia proste i efektywne kosztowo rozwiązanie tego problemu. Używaj Dysku Google, Dokumentów Google, Arkuszy Google i innych aplikacji Google do udostępniania plików i współpracy nad nimi.Skonfiguruj oddzielne serwery programistyczne i testowe.
Proces rozwoju musi trwać przez cały czas.
Deweloperzy nie powinni czekać na wyniki testów aplikacji i powinni kontynuować pracę nad swoimi zadaniami, podczas gdy Dział Jakości sprawdza ukończone funkcjonalności.
Jednocześnie klient powinien mieć możliwość sprawdzenia aktualnego stanu aplikacji w dowolnym momencie, bez czekania na zespół programistów. Posiadanie dedykowanego serwera testowego, który jest regularnie aktualizowany, usunie wszystkie wąskie gardła w tym procesie i zapewni nieprzerwane działanie Twojego zespołu.Zdefiniuj stały czas dla cotygodniowych rozmów zespołowych i stały czas dla codziennych rozmów zespołu lub czatów.
Poproś wszystkich członków zespołu o zaplanowanie w kalendarzu czasu na rozmowy i spotkania. Dzięki temu Twój zespół ma stały harmonogram bez przerw w pracy.
Na wynos
Zarządzanie projektami to złożone i często bardzo stresujące zajęcie. Dodanie do niego struktury i sprawienie, by status projektu był zawsze widoczny i dokładny, łagodzi większość tego stresu. Zastosowanie metody Kanban i zasad Agile w połączeniu z odpowiednimi narzędziami pozwoli Ci zaoszczędzić sporo czasu.
Mając to na uwadze, nie ma narzędzia ani metodologii, które zrekompensują czas, który jako kierownik projektu musisz poświęcić na zarządzanie projektem.
A to, że projekt jest mały, niekoniecznie oznacza, że wymaga mniej czasu. Ta mentalność to świetna recepta na wielki ból głowy.
Oto prosta lista kontrolna, która pomoże Ci zweryfikować, czy Twój projekt jest prawidłowo zarządzany:
- Czy Twój proces jest odpowiednio zwizualizowany?
- Czy WIP dla każdego członka zespołu jest ograniczone i zminimalizowane?
- Czy Twój zespół ma zaplanowane spotkania – co tydzień lub codziennie?
- Czy Twoja tablica Kanban jest regularnie aktualizowana?
- Czy posiadasz repozytorium kodu?
- Czy zaplanowałeś tworzenie kopii zapasowych baz danych?
- Czy skonfigurowałeś narzędzia do komunikacji i współpracy zespołowej?
- Czy Twoje środowisko programistyczne jest oddzielone od testowania, akceptacji i produkcji?
Pamiętaj, że ta lista jest daleka od ostatecznej i skończonej; to dopiero początek.
Zostaw swoje komentarze i podziel się wskazówkami i praktykami z kierownikami projektów, którzy dopiero rozpoczynają swoją niekończącą się podróż we wzmacnianiu zespołów programistycznych.