As developers we are, the mindset should remain always as open asand sceptical at the same time.
Open, because we don't know when a developer (no matter the role) may surprisesurprise us, and sceptical about our own ideas because we should be humble enough to acceptoften forget that in the software engineery there are different waysthere's not a single correct way to achive the very same goal andimplement a solution. The rationale behind our solutions, as our rationale, could make sense for us, and make no sensenone for others.
Behind a code smell there could be a great idea. Maybe, the developer didn't find the way to express it properly.
Due to we (humans) are terrible at communicationcommunicating, don't make false assumptions, be up for askingwilling to ask to the code owner about the code you have reviewedare reviewing. If he/she failed at coding the idea under the codecompany' standars, as lead developer be ready for providing with guidance and mentoring.
It doesn't meanwilling to say: "Do It as I say it should be. It rather means: Delve into this other approach, seek for references and feel free of asking in case of doubtsguide him/her too.
Here the subjective approach. The objective approach, IMO, is very well explained herein this question.
In addition to the link above, the set of objectives to be meetachived (maintainability, readability, portability, high cohesion, loose coupling, etc.), are not necessarily the Ten Commandments. You (and thethe team) should be able to adapt these objectives to a point where the balance between quality and productivity makes the job confortable and "habitable for developers". Once you have found the balance, try adding new objectives or change those that were proven to be unecessary or inefficient for the team.
I would suggest the usage of static code analysis tools for measuring the progress of the quality, according to thethese objectives of the team. Tools like SonarQube, provide us with Quality Gates and Quality Profiles that can be customized according to our priorities. It also provides us with a issue tracker, where developers can be targeted with issues related to code smell, bugs, doubtful practices, etc.
These kind of tools couldcan be also a good starting point. But, but as I said, keep yourself sceptic, you. You could find some rules in Sonar, to be meaningless for you, so feel free to ignore them or remove them from your quality profile.