The best practices are the ones that allow you to do business and where the maintenance work is relatively not too painful considering the budgeted development time.
Your task is to deliver a good product, not necessarily good code.
> The best practices are the ones that allow you to do business and where the maintenance work is relatively not too painful considering the budgeted development time.
the problem is even that in concrete terms can be controversial. everyone wants to minimize maintenance work; not everyone agrees on what kind of code will achieve that.