I think unit tests are a bit like dental floss. We all know we should use it daily (the floss), but we still don't do it. The knowledge of its usefulness does not automatically mean we are going to actually do it. The same goes with unit tests. I believe every single developer in our department is aware that unit tests would improve that quality of our product, but we still don't do it.
I keep wondering: why can't we have some working (and useful) unit tests for our software, when everyone else in the industry seems to be doing it? I actually took active part in an effort to establish a unit test suite for our product a couple of years back, and it failed. It didn't fail because of a lack of commitment from the team, on the contrary, everyone was on-board trying to make this work. But it failed because the maintenance costs for the test suite were too high with respect to the benefits it provided. That is why I thought that the XUnit Test Patterns and Smells presentation would be useful for our team. What was wrong with our test code that made it unmaintainable?
The presentation was given by Gerard Meszaros. The first thing he said that really caught my attention was this (he called it a sobering thought): "there should be at least as much test code as there is production code, or maybe twice as much." For me this was a pretty shocking declaration. What he said next was not nearly as shocking, and it made a lot of sense given the first assertion: "test code should be much easier to maintain than production code". Another point the presenter made is that we should design for testability upfront.