Over the last couple of months I have consumed a large quantity of technical documents and books relating to design patterns and coding standards. While most of them I've adhered to, I have learned a few things on some patterns I had yet to really practice, such as the MVVM design pattern.
When discussing patterns with developers both online and in person, I've quickly discovered something that is really frustrating. Every developer has a set of patterns that they have used over their career and those are the patterns that they stick with. Any pattern other than what they've already learned is considered a waste of time and they do their best to argue out of using it.
I've seen developers try and apply patterns from other technologies to the current framework they are working on too. For example, applying a MVC pattern to WPF instead of MVVM or avoiding unit tests because they've always just ran the app and stepped through the app features that needed to have its functionality tested.
The next thing that I've seen is developers attempting to apply a pattern, but in the wrong way. I've seen developers treat every model in their project as a POCO. They were extremely against any logic going in to the model object because that belonged in the controller or view model which defeats the whole point of having a model. There are cases for POCO objects, but not every model is a POCO, just like not every model is a Domain object.
These kind of developers are dangerous to projects. They can hinder a project due to constant refactoring by team leads or other developers or they can increase the cost associated with maintaining the app once it is completed.
I'm not sure I understand why developers get like this and I'm making sure that I keep myself open and adhere to proper design philosophies set forth by the owners of the framework I happen to be targetting.