Up until last week, I thought that the notion of automated unit tests was relatively new; introduced in the last five to ten years by the agile/XP crowd. Boy was I wrong. Once again I find that whenever I find a "new" technique in software development that is a boon to productivity and/or quality, there's a good chance that Parnas/Dijkstra/Brooks wrote about it - in detail - before I was born.
...
What is hard is living it in your day-to-day development, when you're under the gun to deliver new function and declare bugs fixed. This is where culture comes in. If the culture says that you're not done until your code is Java doc'd and unit tests are written, then code will get Java doc'd and unit tests will get written. If your culture says that you're done when your software simply appears to work, over time your software, your team, your customers, and your partners will all suffer the consequences.