Przez jedenaście lat kierowania projektami internetowymi dla dużych korporacji i dla mniejszych klientów, ciągle spotykam się z pytaniami: ,,Pomocy! Prosty projekt z agencją X ciągnie się w nieskończoność.'' albo ,,Dlaczego nasz 20-osobowy zespół prześcignęła dwójka maturzystów?''. Na szczęście, ponieważ jest to problem globalny, rozwiązanie już dawno znaleziono. Zadziwiająco mało firm je stosuje
,,Żaden plan nie wytrzymuje kontaktu z wrogiem” — von Moltke
,,Plany są niczym, planowanie wszystkim” — Dwight D. Eisenhower
,,Inżynierowie zawsze mówią prawdę, chyba że pytanie dotyczy czasu” — Scott Adams
Przy pracy nad projektami internetowymi pojawiają się trzy rodzaje problemów. Najmniej ważne są problemy techniczne, najbardziej komunikacyjne i te związane z umową, czyli różnymi interesami klienta i wykonawcy.
Częstym źródłem nieporozumień jest to, że dla laików zrobienie dziesięciu podobnych stron powinno zajmować i kosztować z grubsza dziesięć razy tyle, ile zrobienie jednej (z ewentualną zniżką hurtową). Tymczasem w rzeczywistości, jeżeli strony różnią się tylko elementami tworzonymi automatycznie, to zrobienie stu stron trwa tyle, co zrobienie jednej, która jest szablonem. Natomiast jeżeli szczegóły różniące strony wymagają stworzenia nowego szablonu, to może się okazać, że zrobienie dwóch stron zajmuje pięć razy tyle, co zrobienie jednej, w zależności od skomplikowania nowego szablonu.
Dlatego często klienci przecierają oczy ze zdumienia, że pozornie taka sama praca może zająć tydzień i kosztować tysiąc złotych, albo trzy miesiące i kosztować sześćdziesiąt tysięcy złotych w zależności od tego, czy chcą mieć jakiś niepozorny przycisk na stronie.
Dobry szef projektu będzie tak pracował ze zleceniodawcą, żeby wybrać do realizacji te szablony i stories (więcej piszę o tym dalej), które dadzą najlepszy efekt biznesowy.
Projekty internetowe, jak to projekty związane z programowaniem, wymagają dużej precyzji i synchronizacji. Dlatego każdy musi się komunikować z każdym, przez co liczba komunikacji rośnie z grubsza wykładniczo i szybko staje się nie do opanowania.
Próby ograniczenia komunikacji do wybranych osób kończą się jeszcze gorzej, bo rozpoczyna się zabawa w głuchy telefon i biurokratyczne leżenie papierów na biurku „aż nabiorą mocy urzędowej” i zostaną przekazane dalej.
- nie ma z tego powodu żadnych bonusów dla programisty
- musi on zsynchronizować pracę z innymi
- i ma rację, bo po wprowadzeniu prawdziwych danych i tekstów okazuje się, że trzeba zmodyfikować projekt struktury stron, bo np. nie mieszczą się linki w nawigacji
Dlatego trzeba z jednej strony ograniczać liczbę osób pracujących nad projektem (też przez metodologiczne ograniczanie codziennego zaangażowania Wyższych Czynników) a z drugiej zbierać wszystkie możliwe informacje w jednym, ogólnie dla wszystkich dostępnym miejscu (tablica na ścianie, wiki, Basecamp itp.)
- Funkcje kluczowe dla użytkownika
- Funkcje, które produkt musi mieć, ale inwestowanie w nie ponad minimum nie zwiększa wartości dla użytkownika
- Funkcje ważne dla użytkownika tylko jeżeli będą bardzo dobrej jakości (wisienki na torcie)
- Funkcje nie zwiększające wartości dla użytkownika, a więc i nie realizowane
Tego typu kontrakt jest standardowym efektem przetargu, w którym zleceniodawca ogłasza szczegółowo, jak ma wyglądać serwis i wybiera dostawcę według ceny i tego, jak komu z oczu patrzy. Teoretycznie ryzyko ponosi dostawca. W rzeczywistości:
Często prace nad prezentacją specyfikacji w Power Poincie zajmują więcej czasu, niż później prace nad samym serwisem. A taka prezentacja to też koszty pracy uczestników zebrań, często na wysokich szczeblach.
Widziałem kosztorys projektu, w którym serwis kosztował 60 tys. złotych, z czego tylko 12 tys. poszło na prace nad nim samym, a reszta to delegacje zarządu, zakup zdjęć skaczących, uśmiechniętych ludzi do prezentacji szkicu serwisu itp.. Sam szkic serwisu był zrobiony tabelkami w Wordzie i w ogóle skopiowany Ctrl+C/Ctrl+V z innego projektu nie do końca adekwatnie.
Popularną alternatywą jest umowa, według której płaci się za godzinę pracy według raportu na koniec miesiąca. Jest to rozwiązanie lepsze, ale wymaga dużej wiary w uczciowość dostawcy, który jest praktycznie bezkarny. A bezkarność korumpuje…
A można podpisać umowę, która jest skuteczną hybrydą obu podejść zachęcająca do współpracy. Kontrakt ustala tylko ogólne zasady typu prawa autorskie, osoby kontaktowe czy wyłączenia odpowiedzialności. Koszty i zakres prac określane są dla etapów (Prince2, Scrum, …) i uzgadniane po każdym etapie. Każdy etap kończy się działającym dla użytkowników produktem.