The recent exchanges between Joel Spolsky/Jeff Atwood and Bob Martin have been quite interesting. But I think what is more telling are the comments people have made about these exchanges. There really appears to be a huge divide amongst developers and I have to say it’s quite disturbing indeed. In my career I have worked with many apathetic developers who have spurned good practices, even to the point of ridiculing those who strive to learn/follow them. Critical, but with no gospel of their own. And ironically these same developers would also complain about the rot in the software they were developing. Instead of advocating SOLID (et al) principles they seem to promote what I call LIMP principles:
LRP - Least Responsibility Principle - A developer should have no reason to change.
IIP - Intelligence Inversion Principle - Depend on ignorance and misinformation, not primary sources.
MSP - Minimum Segregation Principle - Make fat interfaces that are application specific.
PSP - Pattern Substitution Principle - Ad hoc design is always substitutable for proven design patterns.
It's encouraging to see folks like Uncle Bob and movements like ALT.Net who encourage good practices, developer responsibility and quality. Although software design is a relatively new art we have learned a lot so far and there is no need to keep making the same mistakes over and over. Worst yet, there is no need to disseminate faulty thinking to newcomers to the field (Who seem to be rare these days).