Zwinne programowanie, czyli o metodologii Agile

Zwinne zespoły wyróżniają trzy poziomy planowania: całość procesu wytwórczego - iteracja - pojedynczy dzień. Każdy kolejny poziom opisuje coraz krótszy okres czasu na coraz niższym poziomie abstrakcji. Planowanie, podobnie jak w przypadku projektowania architektury rozłożone jest w czasie. Iteracyjne podejście do planowania następujących po sobie cykli wytwórczych umożliwia zespołowi stosunkowo szybką odpowiedź na zmieniające się warunki zewnętrzne (potrzeby rynku, nowe technologie, itp. ). Im krótsze iteracje, tym szybciej zespół ma możliwość uwzględnienia nowych faktów w planowaniu (zasadą jest, że iteracji nie przerywamy w połowie).

Podział planowania na trzy poziomy zapewnia dodatkowo dobrą kontrolę nad aktualnym i przewidywanym stanem projektu. Planowanie projektu w skrócie można opisać jako posortowanie wymagań według rozmiaru i ważności oraz przypisanie ich do iteracji. Planowanie iteracji to analiza i rozbicie wymagań na zadania. Planowanie dnia to zobowiązywanie się członków zespołu do wykonania zadania z listy zadań w iteracji. Postęp pracy zmierzony po każdym dniu daje nam wiedzę o stanie iteracji, postęp pracy po każdej iteracji daje nam wiedzę o stanie projektu. Wraz z upływem czasu zespół z coraz większą dokładnością jest w stanie określić datę wypuszczenia produktu na rynek. Godzimy się z faktem, że w początkowej fazie data określona jest z dokładnością do kwartału, po upływie kilku iteracji, zespół jest w stanie zapewnić dostarczenie produktu w określonym miesiącu, by po następnych kilku iteracjach określić datę z dokładnością do dnia.

Podsumowując, zwinne metodologie wytwarzania oprogramowania charakteryzują się bezpośrednią i otwartą komunikacją w zespole, wspólnym podejmowaniem decyzji oraz naciskiem na ciągły kontakt z klientem

Najbardziej popularne odmiany zwinnych metodologii to:

  • SCRUM
  • Extreme Programming (XP)
  • Feature Driven Development (FDD)
  • Lean Software Development
  • Rational Unified Process
  • Crystal
  • Dynamic Systems Development Method (DSDM)

Łukasz Rycharski jest testerem w Krakowskim Laboratorium Oprogramowania. Pracując w wielku projektach w Labie miał możliwość pomagać przy wdrażaniu podejścia Agile w zespołach przechodzących na tą metodologię. Obecnie, Łukasz pracuje w projekcie Tivoli Asset Dependency Discovery.

Więcej o narzędziach IBM i programowaniu na serwisie My Developer Works.


TOP 200