O czym jest ten blog ?
Witajcie drodzy czytelnicy.
Tytuł tego blogu w dość pokrętny ;) sposób oddaje dwie
najważniejsze koncepcje, które będą osią opisywanych przeze mnie zagadnień.
Pierwsza część tytułu odnosi się do sytuacji w której proste
stosowanie reguł opisanych w SCRUM guide (wraz z najbardziej popularnymi ich implementacjami)
nie wystarczy aby zagwarantować sukces projektu. Wielkość zespołu
developerskiego, złożoność systemu który tworzycie oraz umocowanie w
organizacji (zarówno Twojej jak i klienta) może zmusić was do niezłego
gimnastykowania się, aby zakończyć
przedsięwzięcie sukcesem.
W tym miejscu chciałbym jednak uspokoić scrumowych purystów.
Opisywane przez mnie metody i techniki i nie łamią fundamentalnych zasad scrum’a,
lecz raczej stanowią ich uzupełnienie lub konkretną implementację.
Druga część tytułu odnosi się do sposobu, w jaki będę
prowadził ten blog. Koncentrować się będę na konkretnych problemach które pojawiły
się w moim projekcie, pomyśle na ich rozwiązanie oraz subiektywnych
obserwacjach po dokonaniu zmiany. Nie jest to kolejny Agile’owy blog
teoretyczny. Jest to relacja wojenna mojego zespołu … bezpośrednio z okopów.*
* Pomysł
zaczerpnąłem w serii książek Henrika Kniberga „SCRUM/Lean from trenches”
Trochę o produkcie, zespole i procesie deploymentu
Zespół do którego należę zaangażowany jest w tworzenie i
rozwój systemu związanego z realizacją transakcji finansowych. Jest to typowe
rozwiązanie backend’owe z małą ilością elementów GUI (głównie konfiguracja)
oraz wieloma połączeniami do systemów zewnętrznych. System składa się z
kilkudziesięciu modułów rozmieszonych na 26 serwerach wirtualnych. Sam zespół w chwili obecnej liczy
13 developerów, 2 testerów, 2 administratorów, jednego developera BI, Scrum
Mastera oraz Project Managera. Daje to 20 osób nie licząc „ludzi” po stronie
naszego klienta. Oczywiście z powodu tego, że system rozwijany jest od kilku
lat oryginalny skład zespołu zdążył się w między czasie prawie całkowicie
zmienić. Można więc powiedzieć, że z tego powodu mamy sporo tzw. „legacy
code’u”. Ciekawie prezentuje się też proces deploymentu. Każda nowa
funkcjonalność musi przejść przez 3 środowiska: developerskie, pre-produkcyjne
oraz oczywiście produkcyjne. Na każdym z tych środowisk wymagane jest
przeprowadzenie testów oraz sporządzenie raportu z testów. Aby było jeszcze
zabawniej za instalacje odpowiedzialny jest osobny team, znajdujący się po stronie klienta i oczywiście
zlokalizowany w Indiach. Dodatkowo mamy jeszcze osobne zespoły do utrzymania
sieci, maszyn wirtualnych, bazy danych, pierwszej linii suportu. Każdy z nich
ma osobnego managera oraz niechętnie (czytaj wcale) chce dzielić się
uprawnieniami z zespołem deweloperskim. Wszystko
to przekłada się na długość procesu deploymentu, który obecnie średnio wynosi
około 40 dni.
Nie da się
Po przeczytaniu akapitu powyżej Ci z was, którzy przeszli
przez proces „forsowania” podejścia zwinnego w swoich firmach z pewnością
zidentyfikowali trzy najczęściej stosowane argumenty z kategorii „Agile jest
super ale u nas się nie da, ponieważ ….” … no właśnie ponieważ … zespół jest za
duży, system się nie nadaje (brak GUI, zależność od zewnętrznych dostawców), podejście/procedury
w firmie klienta są nieodpowiednie.
Oczywiście że „się da” chociaż prosto i bezboleśnie
nie jest. O tym jak wyglądała walka z przeciwnościami w naszym zespole
przeczytasz w dalszej części niniejszego blogu.
I na koniec przestroga
Nie stosuj technik i
pomysłów które prezentuję na tym blogu. Nie bezpośrednio. To co zadziałało
u mnie w zespole nie oznacza, że zadziała w twoim. Zanim wprowadzisz zmianę do
waszego procesu tworzenia oprogramowania dokładnie ją przemyśl. Zwróć
szczególną uwagę na ludzi z którymi pracujesz, zarówno w twoim zespole jak po
stronie klienta. Jeśli zdecydujesz się na wprowadzenie prezentowane przez mnie
pomysłu dokonaj w nim kilku zmian, które dostosują go do Twoich realiów
projektowych. Mam też nadzieję, że moje posty stanowić też będą swego rodzaju bodźcem
do tworzenia zupełnie nowych koncepcji i pomysłów. Jeśli tak się stało w sekcji
komentarzy podziel się ze mną i innymi czytelnikami swoją koncepcją.
Categories:
SCRUM