In the restaurant last night, I was discussing with two colleagues why open-source software efforts such as Maven sometimes go awry. One reason is that APIs get changed, which really hacks off some of their users. I mentioned that I had seen Joshua Bloch give a really useful talk about the design of APIs about four years ago. If his guidelines were followed more widely, perhaps it wouldn't be necessary for APIs or their semantics to change so often.
You can still get hold of Joshua's presentation slides and my notes of his talk at the SPA Conference web site. Use the local link [u1] to access the slides.
Joshua Bloch contributes to the Official Google Research Blog.