Zwinne programowanie, czyli o metodologii Agile
Termin Agile Software Development jest używany w odniesieniu do metodologii wytwarzania oprogramowania umożliwiających jak najszybszą odpowiedź na zmienne potrzeby rynku. Termin ten upowszechnił się po 2001 r.
Wówczas to powstał http:// agilemanifesto.org/" target="_blank" class="link" title="Manifest Agile Software Development">Manifest Agile Software Development wyrażający cztery podstawowe wartości, na których bazują metodologie Agile. Te wartości to:
- ludzie i ich wzajemne oddziaływania ponad procesy i narzędzia,
- działające oprogramowanie ponad obszerną dokumentację,
- współpraca z klientem ponad negocjowanie kontraktów,
- reakcja na zmianę ponad realizację planu.
Czytając manifest możemy odnieść wrażenie, że zdecydowanie marginalizuje on znaczenie procesów i narzędzi, dokumentacji, twardych negocjacji z klientem oraz postępowania zgodnie z planem. Wrażenie to jest dodatkowo wzmocnione sposobem, w jaki zapisano każde z tych zdań. Odczucie to jest jak najbardziej słuszne. Należy jednak pamiętać, że manifest nie neguje zasadności istnienia tych elementów, lecz kładzie nacisk na te aspekty wytwarzania oprogramowania, którym dotychczas nie poświęcano wystarczającej uwagi lub pomijano w klasycznej metodzie wodospadowej (waterfall).
Każdy z czterech punktów zostanie rozwinięty poniżej w celu przedstawienia ogólnej charakterystyki metodologii wytwarzania oprogramowania typu Agile.
Ludzie i ich wzajemne oddziaływania ponad procesy i narzędzia
W klasycznym podejściu zgodność z procesem lub narzędziem jest często celem samym w sobie i jest postrzegana jako kryterium sukcesu projektu. Proces zwykle jest bardzo sztywny i trudny do zmiany. Zauważalną tendencją jest również bezkrytyczne wdrażanie procesu w danym projekcie, nawet jeżeli nie adresuje on jego potrzeb. Dodatkowo, w klasycznym podejściu do wytwarzania oprogramowania, komunikacja jest bardzo sformalizowana i odbywa się poprzez dokumenty lub systemy.
Zwinne metodologie traktują procesy i narzędzia jako wsparcie dla ludzi w podejmowaniu decyzji, zapewnianiu jakości, czy utrzymaniu kontroli nad projektem, które, jeżeli zachodzi taka potrzeba, mogą w części lub całości zostać zmodyfikowane, lub w skrajnych przypadkach pominięte. Zwinne metodologie kładą nacisk na bezpośredni kontakt miedzy ludźmi jako najefektywniejszą formę przekazywania informacji. Ponadto promują wspólne, zespołowe podejmowanie decyzji w przeciwieństwie do eksperckich decyzji w klasycznym podejściu. Np.: szacowanie rozmiaru wymagań, czasu realizacji danego wymagania, wyboru technologii lub zewnętrznego komponentu są dokonywane gremialnie, w oparciu o rzeczową dyskusję. Zaletą takiego podejścia jest podejmowanie lepszych decyzji, nie bazujących na jednej, ale na wielu różnych perspektywach, a także poprawa integracji w zespole i identyfikacji z projektem.
Działające oprogramowanie ponad obszerną dokumentację
Na wstępie pragnę zaznaczyć, że nie chodzi tu o dokumentację końcową produktu dostarczaną klientowi w postaci przewodnika dla użytkownika.
Wodospadowy model wytwarzania oprogramowania zakłada długą fazę analizy wymagań oraz projektowania całości systemu, która owocuje dużą ilością dokumentacji opisującą implementację w bardzo szczegółowy sposób. Niestety, na etapie planowania bardzo często umysł ludzki nie jest w stanie ogarnąć wszystkich aspektów złożoności oprogramowania jak i ograniczeń wybranej technologii. Kiedy przychodzi do fazy wytwarzania oprogramowania okazuje się, że cześć udokumentowanego projektu jest niemożliwa, bądź bardzo trudna do implementacji, co wymusza zmiany zarówno w projekcie, jak i w istniejącej już dokumentacji, co z kolei powoduje dodatkowy narzut czasowy. Dodatkowo, zazwyczaj zmiany architektury projektu w jednym miejscu pociągają za sobą zmiany w innej, zależnej części. To z kolei sprawia, że czas potrzebny na aktualizację dokumentacji znacząco się wydłuża. Ostatecznie okazuje się, że nie jesteśmy w stanie odzwierciedlić w dokumentacji wszystkich zmian architektonicznych, co czyni ją nieaktualną, a czas poświęcony na szczegółowe projektowanie jest czasem zmarnowanym (nie mamy ani aktualnej dokumentacji ani działającego kodu).
Więcej o narzędziach IBM i programowaniu na serwisie My Developer Works.
Oceń artykuł
Komentarze (3)
Sam (niepoprawny!) tytuł artykułu skutecznie zniechęca do czytania jego treści.
Genialne jest zestawienie słów: "... nie mamy ani aktualnej dokumentacji ani działającego kodu. Więcej o narzędziach IBM i programowaniu na serwisie My Developer Works. " Nic dodać, nic ująć (brałem udział w takich projektach z wykorzystaniem narzędzi IBM)
"...zwinne metodologie..." -> Drogi Autorze, metodologia to nauka o różnych metodykach...powinno być "zwinne metodyki"
Najpopularniejsze
- Pierwsze w Polsce testy transmisji danych z...
- Magdalena Gaj została Przewodniczącą Rady...
- Asseco wątpi w obiektywny wybór dostawcy w...
- Raport Państwo 2.0, czyli nowa wizja...
- Sygnity: wezwanie Asseco i sezonowość...
- Ogromna liczba komputerów Mac wciąż...
- Nasza Klasa uruchomiła inkubator...
- Google prezentuje okulary z Augmented Reality
- Oracle daje klientom bezpłatny system do...
- CBA kontroluje przetargi związane z CEPiK
Rekomendacje
Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści - Prenumerata: Computerworld, Networld, PC World
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88






