Projekty ukierunkowane na Agile, zwłaszcza gdy dana organizacja zaczyna “być Agile”, mają tendencję do bycia bardzo dokładnym i precyzyjnym – zgodnym z Agile. Proponuję więc kilka zaleceń, które mi pomagają w pracy i być może pomogą innym.
- Krócej znaczy lepiej. Iteracja nie powinna być dłuższa niż 4 tygodnie, w przeciwnym wypadku możesz wpaść w styl tworzenia oprogramowania mini-waterfall. Osobiście preferuję jedno lub dwutygodniowe iteracje. Dzięki temu tempo tworzenia oprogramowania lub modeli jest stałe, jako że regularne dostarczasz nowe artefakty.
- Zacznij od niekomfortowego okresu czasu. Kiedy zmieniasz tradycyjną organizację na ewolucyjne (iteracyjne i przyrostowe) podejście do tworzenia oprogramowania spróbuj określić okres czasu, który będzie odpowiedni (np. 8 tygodni) i odejmij tydzień lub dwa (np. zacznij od 6-tygodniowej iteracji) aby zmusić ich do zmniejszenia biurokracji. Zrób kilka takich iteracji, a następnie skracaj długość iteracji dopóki nie dojdziesz do sensownego okresu czasu (np. mniej niż 4 tygodnie).
- Zignoruj kalendarz. Jeśli Twoja iteracja została zaplanowana na tydzień, zrób ją od środy do wtorku. Iteracje trwające od poniedziałku do piątku zazwyczaj cierpią przez to, że w piątek skupienie i energia dramatycznie zmniejszają się, ponieważ jest to koniec iteracji i koniec tygodnia. Ten zbieg okoliczności zmniejsza produktywność.
- Stwórz coś użytecznego. Zasadniczo iteracja powinna być na tyle długa, abyś był w stanie zrobić coś pożytecznego w jej trakcie. Niektóre zespoły robią jednodniowe iteracje, ale to ekstremum. skorzystaj z własnych doświadczeń – sam wiesz ile czasu zajmuje ci zbudowanie czy zaprojektowanie czegoś konkretnego.
- Przeprowadź tyle iteracji, ile potrzebujesz. Wymagania zmieniają się, co oznacza, że czas potrzebny na wdrożenie systemu też musi się zmienić, aby to odzwierciedlić.
I na sam koniec. Iteracja to pojęcie umowne i każda organizacja może mieć inną jej długość oraz innej wielkości artefakty są w niej tworzone. Staraj się jednak by każda iteracja kończyła się czymś zakończonym na danym etapie.