If you’re designing, writing or maintaining a UI test automation framework, read this before you start:
http://www.joelonsoftware.com/items/2009/09/23.html
A great quote from the article:
A 50%-good solution that people actually have solves more problems and survives longer than a 99% solution that nobody has because it’s in your lab where you’re endlessly polishing the damn thing.
I’ve written up similar stuff: Finding the balance between hacky and over-engineered UI test automation frameworks.