AGILE

Proces wytwarzania oprogramowania zwany Agile (ang. zręczny, sprawny) oznacza koncepcję skupioną na produkcji oprogramowania i prezentacji jego komponentów w możliwie małych odstępach czasowych, aby uniknąć rozbieżności pomiędzy wymaganiami zamawiającego system, a wyobrażeniami jego twórcy.

Agile można zaliczyć do tzw. lekkich metodologii projektowania oprogramowania. W porównaniu do starszych koncepcji, takich jak RUP (gdzie do 50% nakładu pracy przeznacza się na dokumentację projektową), Agile jest procesem, w którym bardziej się ceni bezpośrednią komunikację z klientem, niż opisy w postaci fizycznych dokumentów. W rozumieniu koncepcji Agile, miarą postępu projektu jest ilość działających komponentów, a zatem projekt architektoniczny schodzi na drugi plan

Istnieje wiele praktyk Agile: m.in. Agile Modeling, Agile Unified Process, Extreme Programming (XP), Scrum.

Agile opiera się na dwunastu zasadach zawartych w dokumencie Manifest Agile

  1. Satysfakcja klienta poprzez szybkie i ciągłe dostarczanie oprogramowania
  2. Zmiany wymagań nawet w późnym etapie tworzenia oprogramowania nie mają negatywnego wpływu
  3. Działające oprogramowanie dostarczane jest często (raczej w okresach tygodniowych niż miesięcznych
  4. Bliska, codzienna współpraca pomiędzy biznesem i developerami
  5. Projekty tworzone przez osoby zmotywowane, z pełnym zaufaniem
  6. Bezpośrednie rozmowy są najlepszą formą komunikacji
  7. Działające oprogramowanie jest podstawową miarę postępów
  8. Ciągły rozwój oprogramowania utrzymywany w stałym tempie
  9. Ciągła skupienie na doskonałości technicznej o dobrym projekcie
  10. Prostota
  11. Samozarządzalne zespoły dostarczają najlepszą architekturę, wymagania oraz projektu
  12. Regularnie, zespół zastanawia się, jak stać się bardziej efektywnym oraz ciągle dostosowuje do zmieniających wymagań

Zalety Agile

Mniej dokumentacji projektowej, czyli wymierne oszczędności na etapie projektowania systemu

Szybsze dostarczenie działającego (choćby częściowo) oprogramowania, a zatem mniejsze ryzyko rozbieżności w wyobrażeniach zamawiającego i wykonującego.

Większa elastyczność w sytuacji gdy wymagania często się zmieniają

Z uwagi na mniejszą ilość dokumentacji (w porównaniu do tradycyjnych metodologii), przy wykonywaniu projektów zgodnie z Agile, wymagany jest bardziej zgrany zespół, którego członkowie darzą siebie wzajemnym zaufaniem. Warunkiem koniecznym sukcesu stosowania Agile jest także co najmniej poprawny poziom relacji wykonawca-zamawiający, gdzie obie strony muszą, choćby w pewnym stopniu, wykazywać dobrą wolę i wzajemne zrozumienie

Przydatne linki