Programowanie zwinne

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Programowanie zwinne (ang. Agile software development) – grupa metodyk wytwarzania oprogramowania opartego na programowaniu iteracyjno-przyrostowym, powstałe jako alternatywa do tradycyjnych metod typu waterfall. Najważniejszym założeniem metodyk zwinnych jest obserwacja, że wymagania odbiorcy (klienta) często ewoluują podczas trwania projektu[1]. Oprogramowanie wytwarzane jest przy współpracy samozarządzalnych zespołów, których celem jest przeprowadzanie procesów wytwarzania oprogramowania. Pojęcie zwinnego programowania zostało zaproponowane w 2001 w Agile Manifesto.

Generalnie grupa metodyk oparta jest na zdyscyplinowanym zarządzaniu projektem, które zakłada częste inspekcje wymagań i rozwiązań wraz z procesami adaptacji (zarówno specyfikacji jak i oprogramowania). Najczęściej znajdują zastosowanie w małych zespołach programistycznych, w których nie występuje problem komunikacji, przez co nie trzeba tworzyć rozbudowanej dokumentacji kodu. Kolejne etapy wytwarzania oprogramowania zamknięte są w iteracjach, w których za każdym razem przeprowadza się testowanie wytworzonego kodu, zebranie wymagań, planowanie rozwiązań itd. Nastawiona są na szybkie wytwarzanie oprogramowania wysokiej jakości.

Skład zespołów jest zazwyczaj wielofunkcyjny oraz samozarządzalny, bez zastosowania jakiejkolwiek hierarchii organizacyjnej. Członkowie zespołu biorą odpowiedzialność za zadania postawione w każdej iteracji. Sami decydują jak osiągnąć postawione cele.

Metodyki zwinne dużą wagę przywiązują do bezpośredniej komunikacji między członkami zespołu, minimalizując potrzebę tworzenia dokumentacji. Jeśli członkowie zespołu są w różnych lokalizacjach, to planuje się codzienne kontakty za pośrednictwem dostępnych kanałów komunikacji (wideokonferencja, e-mail itp.).

Częstym błędem występującym u osób i zespołów stosujących metodykę Agile jest nadinterpretacja jej założeń i całkowicie błędne pomijanie bardzo ważnych etapów projektu tj. "zbierania wymagań", a następnie na ich podstawie "analizy" oraz "planowania".

Podstawowe zasady[edytuj]

 Osobny artykuł: Manifest Agile.

Manifest Agile (ang. Agile Manifesto) – założenia:

  • osiągnięcie satysfakcji klienta poprzez szybkość wytwarzania oprogramowania,
  • działające oprogramowanie jest dostarczane okresowo (raczej tygodniowo niż miesięcznie),
  • podstawową miarą postępu jest działające oprogramowanie,
  • późne zmiany w specyfikacji nie mają destrukcyjnego wpływu na proces wytwarzania oprogramowania,
  • bliska, codzienna współpraca pomiędzy biznesem a deweloperem,
  • bezpośredni kontakt jako najlepsza forma komunikacji w zespole i poza nim,
  • ciągła uwaga nastawiona na aspekty techniczne oraz dobry projekt (design),
  • prostota,
  • samozarządzalność zespołów,
  • regularna adaptacja do zmieniających się wymagań.

Zobacz też[edytuj]

Przypisy

Linki zewnętrzne[edytuj]