Jeremy's Programming Manifesto...
Jeremy posts about his Programming Manifesto. It's a great read, and while I am still digesting it, I will just summarize it here. Go read his stuff please.
Unit Testing and Testability over Defensive Coding, Tracing, Debugging, and Paranoid Scoping
Sharp Tools over Coding with the Kid Gloves On
Writing Maintainable Code over Architecting for Reuse and the Future
Explicit Code over Design Time Wizards
Software Engineering over Computer Science
Jeremy prefaces his manifesto saying "while I do believe there is some value in the stuff on the right, I think the stuff on the left [in large font bold] is more valuable and important."
The only thing I am grappling with in his manifesto is how will the next paradigm shift in programming fit in with this? Model-driven, software-factory stuff, for example. We've got to move somehow from building a high-rise office building (ie. enterprise app) by mixing the concrete with shovels in a wheelbarrow, instead of assembling pre-stressed concrete sections of floors and walls. The Design Time Wizards that Jeremy is (rightly) eschewing need to be much more standard, much more flexible, much more powerful.
There is a quantum shift in the programming paradigm coming, just when and how and who will drive it is the mystery.