Wyszukaj / o blogu

Agile > Scrum > Lean Management > Kanban

Opublikowano śro 24 czerwca 2020 w dev • 3 min read

agile

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

12 zasad

źródło grafiki

agile-vs-waterfall-2

źródło grafiki


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)

podstawowe-zalozenia-scum

źródło grafiki

podstawy-scrum

źródło grafiki

scrum

źródło grafiki


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ść

lean-management źródło grafiki


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.

Kanban


Ź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

Zasady lean

Kanban

Kanban w tworzeniu oprogramowania