Agile

Agile to tak zwane zwinne metodyki zarządzania projektami. Jednym z najważniejszych założeń metodyki jest obserwacja dotycząca wymagań odbiorcy w trakcie trwania projektu które mogą w pewien sposób ewoluować. Metodyka zwinna przede wszystkim oparta jest na zdyscyplinowanym zarządzaniu i szybkim wytwarzaniu oprogramowania wysokiej jakości. Zwykle zakłada również bardzo częste inspekcje związane z wymaganiami oraz rozwiązaniami w danym projekcie. Przede wszystkim agile odnajduje zastosowanie w mniejszych zespołach programistycznych, które nie są narażone na problemy w komunikacji. Główną zaletą metod zwinnych jest na pewno ich elastyczność i lekkość przy jednoczesnym pilnowaniu zasad umożliwiających osiągnięcie sukcesu. Oprócz tego metodyka idealnie współpracuje z istniejącymi już procesami w danej organizacji. Implementacja Agile działa również według obecnie panujących standardów

Agile pojawiło się podczas spotkania na którym 17 osób napisało pewien manifest wspólnych zasad dla metodyk zwinnych. I tak do podstawowych zasad należy:

  • codzienna współpraca między biznesem a deweloperem
  • ciągła uwaga skierowana jest techniczną doskonałość oraz dokładność projektu, które zwiększają zwinność
  • osiągnięcie satysfakcji klienta dzięki szybkości wytwarzania oprogramowania
  • regularna adaptacja do zmieniających się wymagań
  • osiągnięcie pewnego rodzaju prostoty, która polega na maksymalizowaniu ilości zadań, niekoniecznych do wykonania
  • utrzymywanie bezpośredniego kontaktu zarówno w zespole jak i poza nim jako najlepszej formy komunikacji i najbardziej wydajnej i efektywnej metody przekazywania informacji
  • późne zmiany w specyfikacji
  • miarą postępu według metodyki jest działające oprogramowanie
  • samozarządzalność zespołów, która jest efektem najlepszych architektur, wymagań oraz projektów
  • prawidłowo działające oprogramowanie, dostarczane jest okresowo.

Warto wspomnieć, że zasady zwinności głównie zalecają praktykowanie technik programowania iteracyjnego, który jest realizowany w krótkich kompletnych cyklach, które przede wszystkim dostarczają oprogramowanie: poprawne, funkcjonujące, cenne dla klienta oraz proste w swojej konstrukcji. Taki model tworzenia oprogramowania zdecydowanie dostarcza zwinności w reakcji na ewentualne zmiany wymagań. Dla metodyk zwinnych równie ważnym aspektem jest współpraca osób w czasie projektu. Możemy wymienić pewne zasady tej współpracy:

  • zaspokajanie potrzeb członków zespołu
  • obdarzenie zespołu dużym zaufaniem
  • samodzielna organizacja zespołu
  • silna motywacja członków
  • współodpowiedzialność całego zespołu za efekty pracy.

Oprócz tego byciu zwinnym pomagają takie techniki i metody jak na przykład programowanie parami, automatyczne testowanie, rozwój sterowany testami (TDD, Test Driven Development), ustawiczna integracja kodu, wzorce projektowe (Design Patterns), retrospekcje lub gry planistyczne, historyjki użytkownika, refaktoryzacja oraz kontrola wersji kodu.