Welcome to ValentinZachia.com !
Web developer portfolio
I am a Web developer with more than 5 years commercial experience and this is my portfolio. Lately I've been working on custom projects in teams with different development styles and I've spoted some common mistakes for both small and large enterprises. My focus now is to cover project management and user experience (UX) aspects as well in Web projects. Covering or even understanding these aspects will help a developer be more efficient and also cross any gaps in large teams that are using project managers and UX experts.
I will outline THE best practices below, some might consider that paying more for an experienced programmer or project manager is not worth it since things can be done cheaper with less experienced developers. That might be true, however this will bring chaos lately when patches for patches will be needed in order to add the tiniest new feature. Always use "lazy" programmers that work less but get all the application features done. If two applications are exactly the same and do exactly the same thing always choose the application with the least number of lines of code, it is the most efficient and "natural". It will be easier to maintain and add new functionality in the future and it will be the cheapest in the long term. The time of simple websites that were just right is long gone, the Web is a new and cooler place thanks to top-level quality and functionality and they will make the difference from now on.
Project management
The most successful project I have managed and developed is the "info" platform for some already developed websites mentioned in the portfolio page. The delay between the project manager and the Web developer was, well, none, since I was covering both of them and everything was crystal clear.
One of my latest project was a complex application managed too loosely by a project manager that just outlined lots of ideas on two A4 pages without even covering all aspects on how this app will work or be implemented in websites (it was built as a plugin for existing websites). It's a waste of development time.
So what is the best way to manage a project? Well, in my oppinion, a project manager should be able to "run" the application before the project is sent to the developers. Also he/she should have a background in development, thus being able to blend the ideas with reusability of the code in a logical and efficient (logic brings efficiency) application. Not covering these aspects will put extra pressure on the development team that has to fill the gaps or ask for guidance on more steps than necessary.
Knowing the end result is hard and sometimes impossible, however the developers must know that and prepare for large changes. It takes great experience for that and in junior teams asking them to start a project in order to fill the gaps in it's functionality might even have them start all over in the future. It might be hard to understand for some project managers, however I have been asked just recently to start a project just to see how things work and cover aspects of functionality later. It is a great waste of time since it might need some extensive code or database structure rebuild ;)
Reusable code
When talking about the reuse of code most developers think about classes that will be used on other projects in the future. To some extent this is the best description for reusable code, however reusing the code inside the applications as well will bring something "natural" in the development flow. Always try to minimize the amount of code that is just copied inside the application for different pages or modules. Having a block of code doing the same thing on different pages of the website is the best way since it will take less development and troubleshooting time.
So, everybody is talking about OOP and MVC these days. Try to understand the real benefits of using them when developing applications; these are not big words or techniques that will make your code pretty or even easy to reuse, using them will make the end result, the website You are developing, rock solid and as efficient as possible. Adding new features and maintaining it will be also cheaper. Granted, OOP and MVC are hard to use efficiently and even harder to apply and might bring chaos in the end, however proper project management will get development time to fractions during the lifetime of the application.