Agile IT, czyli zwinne programowanie
Tworzenie oprogramowania nie jest prostą dziedziną, dlatego procesy i sposób podejścia do budowy systemów informatycznych wymaga odpowiedniego zarządzania. Jednym ze sposobów realizacji założonych projektów, którą my również stosujemy jest Scrum, wywodzący się z Agile. Scrum nie jest metodyką, a jedynie tzw. frameworkiem, czyli ramą strukturalną, w której organizuje się pracę.
W zespole projektowym, pracującym zgodnie z metodyką Scrum możemy wyróżnić kilka podstawowych funkcji:
Scrum Master – jest to osoba odpowiedzialna za pilnowanie poprawności procesu oraz zarządzaniu tzw. backlog (lista funkcjonalności do wykonania)
Product Owner, właściciel projektu – osoba definiująca funkcjonalności do wykonania, funkcja ta powinna być pełniona przez przedstawiciela klienta
Zespół – zespół realizujący projekt, w założeniu powinien być interdyscyplinarny, z całkowitą wymiennością funkcji pomiędzy jej członkami. Scrum Master jest również członkiem zespołu.
Jak przebiega taki proces? Na początku musimy zebrać dokładne wymagania – m.in. funkcjonalność, wygląd, budżet, itd. Następnie, na ich postawie musi stworzyć odpowiedni projekt techniczny, przeprowadzić analizę, stworzyć dokładny plan działania i w momencie, gdy wszystko zostanie zaakceptowane przez inwestora – przystąpić do właściwej budowy. W całym tym procesie stały, aktywny udział bierze również przedstawiciel klienta. Po danych okresach czasu osiągnięty zostaje założony kamień milowy projektu, a rezultaty prac są na bieżąco pokazywane klientowi.
Takie podejście do zarządzania projektem daje możliwość wypracowania produktu końcowego, który jest całkowicie zbieżny z potrzebami inwestora, nawet jeżeli te uległy zmianie w trakcie trwania projektu wdrożeniowego. Dzieje się tak dlatego, że system powstaje po kawałku i w krótkich odstępach czasu, podlegając ciągłym ulepszeniom.
Fundamentami Scruma są takie wartości jak:
- Transparentność
- Inspekcja
- Adaptacja
Transparentność, określenie to odnosi się do jawności i przejrzystości. Trudno sobie wyobrazić zmotywowanie pracowników do wykonania jakiegoś zadania, jeżeli im nie powiemy, dlaczego to robimy. Zarówno osoby pracujące nad projektem jak i klient muszą być świadomi założeń i celów wspólnych prac.
Kolejnym istotnym aspektem jest inspekcja służąca wykrywaniu niezgodność w trakcie trwania całego projektu, na bieżąco. Pozwala nam to na dostosowywanie produktu do zmiennych warunków i uniknięcie sytuacji w której realizowana funkcjonalność nie jest zgodna z oczekiwaniami klienta.
Adaptacja jest logicznym następstwem inspekcji. Zapewnia, że w przypadku gdy wykryjemy jakiekolwiek rozbieżności w stosunku do oczekiwanych rezultatów, zachodzi odpowiednia korekta. Pozwala to naprowadzić Zespół na właściwy tor pracy.
W zespole siła. Aby osiągnąć sukces, zarówno deweloperzy jak i interesariusze muszą być otwarci na nowe pomysły i wyzwania. Scrum pozwala redukować koszty oraz znacząco wpływa na produktywność i zaangażowanie zespołu. Takie podejście do prowadzenia projektów w dłuższej perspektywie spowoduje wzrost zaufania u naszego klienta. A zaufanie w biznesie jest bezcenne i na pewno się zwróci.