Сотрудничество с заказчиком оказалось проблемным из-за ряда организационных и технических трудностей.
На этапе предварительного обсуждения мне отказали в предоставлении доступа к коду, аргументируя это тем, что ранее подобный доступ вызвал сбой и восстановление из резервной копии. Из-за этого я не имел возможности выполнить код-ревью и адекватно оценить объем работ.
После начала работы оказалось, что код имеет очень низкое качество, что значительно повлияло на сроки выполнения.
В частности:
- Почти весь кастомный функционал сосредоточен в главном файле темы WordPress (functions.php), объемом почти 10 000 строк.
- В коде не соблюдены принципы DRY, OOP и стандарты WordPress.
- Отсутствует структурированность, а изменение в одном месте требовало длительного времени на проверку и поиск связанных зависимостей.
Кроме технических проблем, были нарушения договоренностей по техническому заданию.
Уже после старта проекта в ТЗ добавлялись новые требования, что значительно усложняло планирование и выполнение работ. Например:
- Сначала требование реализовать AJAX-поиск в кабинете пользователя вообще не упоминалось.
- Затем, в детализации пункта ТЗ, уже после старта проекта, было описано, как и какие поля должны фильтроваться, и указано реализовать кнопку сброса фильтров, и приведена в пример страница, где она реализована.
- Уже во время приемки этого пункта ТЗ было выдвинуто новое требование – реализовать дополнительный AJAX-функционал, как на приведенной в пример странице.
Также после завершения основных задач возникали дополнительные правки, которые не соответствовали первоначальным требованиям, что еще больше затягивало процесс закрытия проекта.
С положительной стороны, заказчик всегда был на связи, оперативно отвечал на вопросы и уточнения по проекту.
Оценка оплаты – 5/10, поскольку финальный объем работ существенно превысил заявленный в первоначальном описании проекта.
В целом сотрудничество было менее эффективным, чем могло бы быть при условиях четко сформулированного ТЗ, потому что по большинству пунктов была доработка функционала по мере его тестирования.
Рекомендую будущим исполнителям согласовать финальный вариант ТЗ перед началом проекта, по которому будет сверяться выполненная работа.