There is a great debate on the topic we are discussing here. Many a times we work in software companies, our bosses want us to implement certain design patterns to be followed through out the organization. Like giving an example, one of a senior in our company tends to fall toward caliburn Micro if we are to do windows phone development. No doubt it helped here and there but focusing on that cause a lot of time to understand that first and than implement it, and as many a design patterns are work of community so they are not 100% fulfilling 100% of the requirements.

The point is that not everybody understands every design pattern but everybody can adhere to coding standards within the organization.

a- Not every design pattern fits for every project, but coding standards can be made to fit for most of the projects.

b- Injecting design patterns might cause difficulty for on-comers in the project while implementing coding standards cause fluent code understanding for people to come later on in the project.

c- Analysts, Designers [Software Designers], Team Leads, or all in all if I call Bosses should understand this fact. I am not against design patterns but recommending a design pattern should only be made on the basis of previous experiences and recommendations not by doing a small tiny project which does not fully utilize it.

d- If we follow the basic principal of software engineering that is “Keep it Simple”, then we will definitely go for coding standards.