Co znaczy Agile?

Jest zima 2001 roku. W ośrodku narciarskim Snowbird w stanie Utah spotyka się siedemnastu specjalistów od inżynierii oprogramowania. Oprócz jazdy na nartach spędzają czas na dyskusjach, poszukując skuteczniejszych metod produkcji softwaru.

Manifest Agile

Wynikiem ich spotkania jest Agile Manifesto, czyli Manifest Zwinnego Wytwarzania Oprogramowania. Jest to zbiór wartości, pokazujących co jest najważniejsze w tworzeniu oprogramowania. Zasady te to:

  • Ludzie i ich współdziałanie, którzy są ważniejsi niż procesy i narzędzia
  • Działające oprogramowanie, które jest ważniejsze od rozbudowanej dokumentacji
  • Współpraca z klientem, która jest ważniejsza od negocjowania kontraktu
  • Reagowanie na zmiany, które jest ważniejsze od realizowania planu

Manifest wyraźnie mówi, że choć dostrzega się wartość elementów wymienionych po prawej, to bardziej docenia się to co po lewej.

Agile to nie brak procesu

Warto tu podkreślić dwie rzeczy. Po pierwsze Agile nie odrzuca podejścia procesowego, tworzenia dokumentacji, kontraktów i planów, co tak często zarzucają mu oponenci. Mówi natomiast, że elementy te nie są tak istotne jak efektywna współpraca między ludźmi, istniejący i działający kod, wspólne z klientem tworzenie oprogramowania i dostosowywanie planów do sytuacji rynkowej i nowej wiedzy, która jest zdobywana w trakcie trwania projektu.

Kultura Agile

Przede wszystkim jednak, Agile to rodzaj kultury, a nie procesu. Tym samym, to sposób naszego myślenia definiuje, czy podejście do tworzenia oprogramowania jest Zwinne czy nie. Dlatego tak wiele metodyk (jak Extreme Programming, Scrum, Kanban, czy Lean) podpada pod parasol Agile, ponieważ łączy je właśnie wspólny sposób postrzegania rzeczywistości projektów informatycznych. Z tego też powodu mówimy raczej, że narzędzia i techniki wspierają Zwinność, a nie są Zwinne, gdyż samo zastosowanie tych technik nie implikuje bycia Agile. Można nie używać TDD i ciągłej integracji i wciąż być Zwinnym. Można też używać wszystkich narzędzi, ale mieć zespół pozbawiony możliwości podejmowania decyzji. Wtedy zdecydowanie nie jest się Agile. Jest to chyba pierwsza i najważniejsza lekcja, jakiej powinni się nauczyć wszyscy, którzy chcą być Agile. Gdyż poza przynależnością do modnej grupy i uzyskaniem certyfikatu CSM wymaga przede wszystkim zmiany sposobu myślenia na Zwinny. I tego należy życzyć wszystkim zwinnym zespołom i ich managerom.