Współpraca z zamawiającą okazała się problematyczna z powodu szeregu trudności organizacyjnych i technicznych. Na etapie wstępnych rozmów odmówiono mi dostępu do kodu, argumentując to tym, że wcześniej taki dostęp spowodował awarię i przywracanie z kopii zapasowej. Z tego powodu nie mogłem przeprowadzić przeglądu kodu i adekwatnie ocenić zakresu prac.
Po rozpoczęciu pracy okazało się, że kod ma bardzo niską jakość, co znacząco wpłynęło na terminy realizacji. W szczególności:
- Prawie całe niestandardowe funkcjonalności są skoncentrowane w głównym pliku motywu WordPress (functions.php), liczącym prawie 10 000 linii.
- W kodzie nie przestrzegano zasad DRY, OOP oraz standardów WordPress.
- Brakowało struktury, a zmiana w jednym miejscu wymagała długiego czasu na sprawdzenie i poszukiwanie powiązanych zależności.
Oprócz problemów technicznych, były naruszenia ustaleń dotyczących specyfikacji technicznej. Już po rozpoczęciu projektu do specyfikacji dodawano nowe wymagania, co znacznie utrudniało planowanie i realizację prac. Na przykład:
- Początkowo wymaganie wdrożenia wyszukiwania AJAX w panelu użytkownika w ogóle nie było wspomniane.
- Następnie, w szczegółach punktu specyfikacji, już po rozpoczęciu projektu, opisano, jak i które pola mają być filtrowane, oraz wskazano na realizację przycisku resetowania filtrów, podając przykład strony, na której jest on wdrożony.
- Już podczas akceptacji tego punktu specyfikacji postawiono nowe wymaganie – wdrożenie dodatkowej funkcjonalności AJAX, jak na podanej w przykładzie stronie.
Również po zakończeniu głównych zadań pojawiały się dodatkowe poprawki, które nie odpowiadały początkowym wymaganiom, co jeszcze bardziej wydłużało proces zamknięcia projektu.
Z pozytywnej strony, zamawiająca zawsze była w kontakcie, szybko odpowiadała na pytania i wyjaśnienia dotyczące projektu.
Ocena płatności – 5/10, ponieważ ostateczny zakres prac znacznie przekroczył ten zadeklarowany w początkowym opisie projektu.
Ogólnie współpraca była mniej efektywna, niż mogłaby być w przypadku jasno sformułowanej specyfikacji, ponieważ w większości punktów wymagana była poprawa funkcjonalności w miarę jej testowania. Zalecam przyszłym wykonawcom uzgodnienie ostatecznej wersji specyfikacji przed rozpoczęciem projektu, według której będzie weryfikowana wykonana praca.