I am involved in a website project, where main implementation language is PHP. Main development is done by two full-time developers, who lack a lot of understanding about program architecture and modern PHP features. I am involved in the project part time.
Development was done a long time without any code review process, so low quality code is currently running on the website.
Some specific areas of concern:
- app related data is stored in a single deeply nested associative array
- functions are used with way too many arguments
- functions are not used appropriately
- no knowledge of unit tests
- a lot of trivial functionality is reinvented instead of using available solutions
- no separation of abstraction levels (database operation, result processing and theme output on same code block)
I am looking now options how to get these developers' motivated about improving their skills and how to actually accomplish improvement goal. At the same time, development work should not be affected too much.
There is a code review process now, and I am pointing out things there. However, I have no idea if they really understand the concepts.
Any ideas how to most effectively make progress on developer skills and at the same time improve existing code?