Agile > Scrum > Lean Management > Kanban
Opublikowano śro 24 czerwca 2020 w dev • 3 min read
Wstęp
W pierwszej kolejności polecam podcast DVLPR-WNBE #14 -> Scrum Master i odpowiedzi na pytania Developer Wannabe podcast #14, który stał się przyczynkiem do moich dalszych poszukiwań związanych z poruszonymi poniżej kwestiami i pozwolił mi na uporządkowanie wcześniej zasłyszanych pojęć, których zakres nie był mi znany - dodam, że nadal czuję się w nich zagubiony i wraz z upływem czasu mam nadzieję wracać do poniższej treści i ją edytować (głównie wzbogacać ją o tekst - moją własną interpretację niżej przedstawionych pojęć).
Na ogólnym poziomie rozumiem Agile jako pojęcie najwyższego rzędu, ukazujące pewnego rodzaju założenia pracy zespołowej, przełamujące schematyczne myślenie liniowe oparty na szybkim wprowadzeniu danego produktu lub jego modułów do użytkowania i testowania przez klienta, tak aby móc zebrać od niego informacje zwrotną oraz dostosowanie produktu na tej podstawie (zwinne programowanie). To założenie również leży u podstaw Scrum, który angażuje się głębiej w określenie zasad oraz interakcji panujących w zespole (np. poprzez założenie spotkań grupowych w trakcie, których przedstawia się wykonywane zadania ew. problemy czy tzw sprintów - czas w którym jest tworzona forma oprogramowania, która jest możliwa do użytkowania (testowania)). Zarówno Agile jak i Scrum się przenikają i podkreślają wagę tzw umiejętności miękkich (co wydaje się być oczywiste, ale często szybko znika za horyzontem kiedy przychodzi do działania w trakcie realizacji projektów - jest to rzecz jasna zależne od świadomości zespołu).
Lean development również nie jest daleki od wyżej przedstawionych założeń ale kładzie nacisk na nieco inne aspekty/wartości i ujmuje problemy interakcji w zespole oraz pomiędzy nim a klientem na poziomie ogólnym - podobnie do Agile. Kanban oraz Tablica Kanban jest związana z Lean development jak Scrum z Agile - zwraca większą uwagę na proces, w sposób bardziej szczegółowy/konkretny.Tablica Kanban - pozwala na wizualizację tego procesu mając na uwadze zwiększenie jego transparentności oraz umożliwia łatwe zarządzanie organiczne projektem.
Agile/Programowanie zwinne - model realizacji zadania w formie ogólnych założeń
Alternatywa wobec kaskadowego/liniowego sposóbu produkcji oprogramowania (Watefall) - podążania za jasno wytyczonym planem. Stosując metody Agile należy mieć na uwadze możliwe zmiany oraz wykazywać się umiejętnościami miękkimi.
Główne założenia "Agile manifesto"
ważne | istotne | |
---|---|---|
jednostki i interakcje | ponad | proces i narzędzia |
działające oprogramowanie | ponad | dokumentacją |
współpraca z klientem | ponad | negocjację kontraktu |
rekcja na zmiany/elastyczność | ponad | sztywne trzymanie się planu |
Scrum/młyn - szczegółowe zasady współpracy
Termin scrum został zapożyczony z.. Rugby w połowie lat 80-tych przez Japończyków i odnosi się do metod związanych z rozwojem nowego produktu - polega na "tworzeniu wiedzy organizacyjnej [...] oraz wprowadzania innowacji w sposób ciągły i spiralny" [... nie sposób tutaj nie odnaleźć analogii to spirali/koła hermeneutycznej znanej z filozofii/filologii]
W metodzie Scrum istotne są trzy elementy 1) role projektowe (scrum master, klient) 2) narzędzia organizujące pracę (lista funkcjonalności - produkt backlog) 3) wydarzenia (sesja planowania, sprint)
Lean Management/szczupłe zarządzanie - zarządzanie procesem
Dostarczanie produktów takich jakich klienci oczekują (produkcja z myślą o kliencie) mając na uwadze również potrzeby pracowników. Eliminowanie marnotrawstwa (to co nie dodaje wartości do produktu - definiowanej przez klienta) i stawianie na elastyczność oraz zdobywanie nowej wiedzy.
Podstawowe założenia:
-
tworzenie jakości i spójności
-
wzmocnienie pozyskiwania wiedzy
-
podejmowanie decyzji najpóźniej jak to możliwe
-
wdrażanie najwcześniej jak to możliwe
-
wdrażanie zespołu
-
spojrzenie na całość
Tablica Kanban - wizualizacja procesu
Kanban - jest sposobem wizualizacji etapów produkcji związanych z wytwarzaniem np. nowego oprogramowania
Wymaga: wizualizacji (tablica Kanban -> np. trello), ograniczenia pracy w toku (założenie, że na danym etapie tylko określona ilość zadań może być realizowana), pozwala na zarządzanie strumieniem poprzez pomiar, z góry przyjętych wartości.
Źródła:
Agile
The Agile Manifesto and Twelve Principles
Scrum
How scrum help turn around our development process
Lean Management
Lean software development- WIKI
Kanban