Słyszałeś ten termin, ale nie wiesz, jak elastyczność i szybkość mają się do tworzenia oprogramowania? Ten artykuł jest zdecydowanie dla Ciebie. Zanim go przeczytasz, poznasz tło i najważniejsze podstawy zwinnego tworzenia oprogramowania.

Chociaż Agile został pomyślany jako rozwiązanie wyzwań związanych z tworzeniem oprogramowania, musimy najpierw powiedzieć coś o zarządzaniu projektami. Tradycyjne podejście do wykonywania złożonych prac wywodzi się z wojska, przeszło do przemysłu ciężkiego i ostatecznie znalazło swoje miejsce w przedsiębiorstwach zajmujących się tworzeniem oprogramowania. W rezultacie pomysły i metody działania w wysoce zhierarchizowanych organizacjach (wojsko) zostały przeniesione do organizacji i zespołów, które zawsze miały inne problemy, takie jak firmy programistyczne. Bardzo często nie był to najlepszy pomysł. Tworzenie oprogramowania to złożony proces. Jednak tradycyjne zarządzanie projektami nie było najlepszym sposobem na jego realizację. Dlaczego? I jak Agile zmieniło krajobraz?

Spis treści

Dlaczego Waterfall nie zawsze sprawdza się w tworzeniu oprogramowania?

Tradycyjnym sposobem robienia złożonych rzeczy, przynajmniej od czasów II wojny światowej, jest Waterfall Project Management. Ale dlaczego nazywa się to Waterfall? Wyobraźmy sobie rzekę. Woda płynie z prądem od źródła do ujścia. Można płynąć pod prąd, ale tylko do momentu napotkania wodospadu. Jak tylko spadniesz w dół wodospadu, nie ma już drogi powrotnej. W zarządzaniu projektami Waterfall jest podobnie. Istnieje bardzo jasny i sztywny proces z etapami, które następują jeden po drugim. Po ukończeniu zadania nie ma możliwości powrotu. Musisz przejść do następnego. Jedno zadanie po drugim, przechodzisz od rozpoczęcia do zamknięcia projektu. Prosto przed siebie, bez odwrotu.

Takie podejście wydaje się być uzasadnione w wojsku i przemyśle ciężkim, gdzie zazwyczaj masz bardzo precyzyjne wymagania i rozkazy. Wszystko, co trzeba zrobić, to skutecznie wdrożyć plan. Jak można się domyślić, tradycyjne zarządzanie projektami ma krytyczne wady w odniesieniu do tworzenia oprogramowania.

Niektóre z nich to:

  • Ustalone wymagania i harmonogram pozostawiają niewiele miejsca na zmiany i ulepszenia;
  • Każdy błąd jest niezwykle kosztowny do naprawienia;
  • nie ma miejsca na informacje zwrotne od użytkowników i innych interesariuszy podczas rozwoju.

Rozwijanie oprogramowania zgodnie z zasadami Waterfall skutkowało drogimi, nieprzyjaznymi dla użytkownika programami, które nie odpowiadały na rzeczywiste problemy. Programiści zmagali się z tymi problemami w swojej codziennej praktyce i próbowali zaprojektować lepsze, bardziej odpowiednie ramy. Tak narodziło się Agile.

Zwinne tworzenie oprogramowania

Według słownika Cambridge, zwinność to zdolność do szybkiego i łatwego poruszania się, ale także sposób "planowania i wykonywania pracy, w którym rozumie się, że wprowadzanie zmian w miarę potrzeb jest ważną częścią pracy". Podobnie jest z Agile jako podejściem do tworzenia oprogramowania.

W przeciwieństwie do SCRUM, PRINCE2 czy PMI, Agile nie jest kompletną metodologią. Jest to raczej zestaw wytycznych, które zwiększają możliwości tworzenia oprogramowania i usprawniają proces rozwoju. Pomysły dotyczące nowego, lepszego sposobu tworzenia oprogramowania pojawiały się wśród programistów na całym świecie.

Manifest Agile

Manifest Agile powstał w wyniku spotkania, w którym wzięło udział 17 praktyków programowania (16 programistów i tester). Napisali oni i podpisali manifest, składający się z czterech wartości:

  • Osoby i interakcje ponad procesami i narzędziami;
  • Działające oprogramowanie z obszerną dokumentacją;
  • Współpraca z klientem nad negocjacjami umów;
  • Reagowanie na zmiany zamiast postępowania zgodnie z planem.

Jak widać, nie jest to lista określonych praktyk, których należy przestrzegać. Wartości te stanowią jedynie przewodnik i wskazują, co powinno być ważne w Twojej pracy. Nie oznacza to, że procesy i narzędzia są nieistotne, ale ludzie i ich interakcje są ważniejsze. Dokumentacja jest nadal istotna i cenna, ale to działające oprogramowanie jest potrzebne w pierwszej kolejności. Oczywiście umowy są kluczowe, ale tylko świadoma współpraca z klientem doprowadzi do wydania dobrego oprogramowania. Wreszcie, potrzebujemy planu, ale jeśli warunki się zmienią, musimy na nie zareagować.

12 zasad Agile

Kolejnym aktem założycielskim Agile jest lista 12 zasad. Są one znacznie bardziej szczegółowe, ale nadal należy je traktować jako zalecenia, a nie zasady.

1. Naszym najwyższym priorytetem jest zadowolenie klienta poprzez wczesne i ciągłe dostarczanie wartościowego oprogramowania

2. Przyjmowanie zmieniających się wymagań, nawet na późnym etapie rozwoju. Zwinne procesy wykorzystują zmiany dla przewagi konkurencyjnej klienta.

3. Częste dostarczanie działającego oprogramowania, od kilku tygodni do kilku miesięcy, z preferencją krótszych ram czasowych.

4. Ludzie biznesu i deweloperzy muszą współpracować ze sobą codziennie przez cały czas trwania projektu.

5. Buduj projekty wokół zmotywowanych osób. Zapewnij im środowisko i wsparcie, którego potrzebują, i zaufaj im, że wykonają swoją pracę.

6. Najbardziej wydajną i skuteczną metodą przekazywania informacji zespołowi programistów i wewnątrz niego jest bezpośrednia rozmowa.

7. Działające oprogramowanie jest główną miarą postępu.

8. Zwinne procesy promują zrównoważony rozwój. Sponsorzy, deweloperzy i użytkownicy powinni być w stanie utrzymać stałe tempo w nieskończoność.

9. Ciągła dbałość o doskonałość techniczną i dobry projekt zwiększa zwinność.

10. Prostota - sztuka maksymalizacji ilości niewykonanej pracy - jest niezbędna.

11. Najlepsze architektury, wymagania i projekty powstają w samoorganizujących się zespołach.

12. W regularnych odstępach czasu zespół zastanawia się nad tym, jak stać się bardziej efektywnym, a następnie dostraja i odpowiednio dostosowuje swoje zachowanie.

Efektem wdrożenia podejścia Agile jest organizacja skoncentrowana na użytkowniku. Jego przewaga wynika ze swobodnej współpracy między specjalistami z różnych dziedzin, takich jak rozwój, marketing, zapewnienie jakości itp. Samoorganizujące się zespoły są tworzone w nowy sposób, z naciskiem na gromadzenie odpowiedniego zestawu umiejętności wśród zespołu, a nie poszczególnych jednostek. Wszystko to zapewnia większą zwinność i zdolność adaptacji do zmian w turbulentnym środowisku biznesowym.

Jak wdrożyć Agile do tworzenia oprogramowania?

Metodologią najczęściej kojarzoną z Agile jest SCRUM, chociaż jej historia sięga lat 80-tych, czyli znacznie wcześniej niż manifest Agile. Agile polega na określonym sposobie myślenia, a nie na określonych praktykach i ich dokładnym zastosowaniu. Pomyśl o Agile jako o wytycznych, zwiększających twoją zdolność do reagowania na zmiany i tworzenia lepszego oprogramowania.

Ostatnia wskazówka. Agile Alliance udostępnia tak zwaną Subway Map, która pokazuje większość przydatnych praktyk z najpopularniejszych obszarów i metodologii zaangażowanych w tworzenie oprogramowania. To może być dobre miejsce do rozpoczęcia.

5/5 - (1 głos)