Collaboration with the client turned out to be problematic due to a number of organizational and technical difficulties. At the preliminary discussion stage, I was denied access to the code, arguing that similar access had previously caused a failure and recovery from a backup. Because of this, I was unable to perform a code review and adequately assess the scope of work.
After starting work, it became clear that the code was of very low quality, which significantly affected the deadlines. In particular:
- Almost all custom functionality is concentrated in the main WordPress theme file (functions.php), with nearly 10,000 lines.
- The principles of DRY, OOP, and WordPress standards were not followed in the code.
- There is a lack of structure, and changes in one place required a long time for verification and searching for related dependencies.
In addition to technical problems, there were violations of agreements regarding the technical task. Already after the project started, new requirements were added to the technical specifications, which significantly complicated planning and execution. For example:
- Initially, the requirement to implement AJAX search in the user cabinet was not mentioned at all.
- Then, in the details of the technical specifications point, after the project started, it was described how and which fields should be filtered, and it was specified to implement a reset filters button, with an example page where it is implemented.
- Already during the acceptance of this point of the technical specifications, a new requirement was put forward – to implement additional AJAX functionality, as on the example page provided.
Also, after completing the main tasks, additional edits arose that did not correspond to the initial requirements, further delaying the project closure process.
On the positive side, the client was always in touch, promptly responding to questions and clarifications regarding the project.
Payment assessment – 5/10, as the final scope of work significantly exceeded what was stated in the initial project description.
Overall, the collaboration was less effective than it could have been under conditions of a clearly formulated technical task, as for most points there was a refinement of functionality as it was tested. I recommend future performers to agree on the final version of the technical specifications before starting the project, against which the completed work will be verified.