I try to learn a new programming language every year. Not necessarily to an expert level, but well enough to solve non-trivial problems with it. Last year's language was Groovy. The year before was Python. This year's language is (drum-roll please)...
Is very difficult to improve upon perfection.
If you have the ideas in your head that your (product, tool, process, organization, whatever) is perfect, or even close to perfect, you're not going to have the right mindset to improve it.
Even if it was perfect at some point (highly unlikely), it's probably not now. A commitment to continuous improvement is the hallmark of a true craftsman. You have to accept the fact that everything you do is a hack; A workaround until you can find another way that's less hacky. That's not to imply that you shouldn't make it as good as you can get it...you should. You just need to realize that it can always be made better.
It's about professional ethics and personal responsibility in the software development world. In a larger sense, it's about answering the question: Who ensures that software is useful today, and it continues to be useful in the future? That is; Who ensures that it consistently delivers value?
I think the answer to this question, or something very similar, will define the next generation of software development efforts. As inconvenient as it may be, software developers are not cogs. The dedication and ability of the individuals involved, not the processes or practices they follow, is the primary determinant of success. The realization of this fact will bring about radical change in the industry.
For managers, this will mean a radical shift in how you organize and lead. For developers, this means that you will now have a professional responsibility to ensure that what you're building is actually useful to the person paying for it. I have no doubt that many organizations will fail to make this fundemental change and suffer the consequences.