I have nearly 6 years of development experience. I like to deliver good quality code, making sure to follow best practices and take responsibility for my work like any professional developer.
At every company I have worked for, the quality of the work is less than the so-called industry standard, by which I mean the contents we see in blogs, books, talks by experts, language specifications, etc. Unfortunately, I am not in a role where I can enforce my team members to follow these principles. Whenever I ask my team lead or manager about following best practices, the usual answer is they are good in books and theory, but not in practice.
The team members also do not support my initiative, as even if I bring in any best practice, it is all left to me to follow it until the end of project. Because of taking these initiatives, I have spent nearly 70% of my personal time in the last few years. It frequently happens that I do my tasks first, and then rework or refactor other team members' work to follow the best practices. During the critical project moments, I have to be the person who stays up late at nights.
Someone suggested me to find a place where most team members are eager to follow the best practices and where management supports these initiatives. Most people, however, say you will never find any such proper work, and all project are like this.
How can I identify or find such good workplaces, where everyone follows the best practices?
EDIT:
Couple of points to share after going through the answers:
- I believe that, the fundamental goal of building a software is to solving a purpose rather than working on standards and practices. For that reason, any solution / project which gives client satisfaction is a best practice, even though it is not a best one when compared to the industry standard.
- I partly agree with @keltari, as recently in a project, i have just done my work and kept silent, on the things happening around, like ignoring whether the code quality (which was written by other team members) is good or not, requirements are documented correctly or not, project is moving in the right direction or not, since those are all not my action items. I am done with my work after few days and i am free. But the project quality is going down and very little amount of work is happened from other team members with respect to project and with respect to client, and not in my point of view. Then i have two ways, unless my team lead ask me to work on the others taks, continue to keep silence and make my personal time happy or take initiative and explain to team in which areas they are doing wrong and my old story begins.
- Coming to the extra hours comment, every minute i work is from the project perspective only and will be resulted in good progress of the project, and finally we as a team got appreciation and myself personally too. But only thing i would like to see is the balancing of the work across team members.