First, Mozilla Firefox. I love the browser and couldn't use IE again. Opera is faster and less resource-hungry but lacks many of the nice extensions I've come to love in Firefox. But damn, the Firefox development process is abysmal. The latest idea is to merge in to the nightly builds what they're calling 'Places' functionality, which on the surface is a handy combination of bookmarking and history, working on the the Google (or Web 2.0 if you're up with your buzzwords) mantra of 'search, don't sort'. All well and good, except the interface and most of the functionality is horribly broken. This might be acceptable for many nightly builders, except it didn't need to be broken so badly before they removed the other functionality. Of course, they merged it into the more stable development branch when it is still throwing up about 10 new bugs a day due to the shoddy state that it is in. Someone needs to tell the Firefox developers that test driven development does not mean writing something that's half-finished, then giving it to your testers to see how badly you've broken it. When using development builds I expect bugs and I expect unrefined features, but there is no need to break things so spectacularly when changes can be done incrementally.
The other subject of my ire is TurboGears, a Python web framework I mentioned before, which originally caught my eye because it brings together several other well-known libraries into one whole. Unfortunately, it spectacularly fails to document exactly how it does so, instead relying on the growingly-trendy Quicktime webcast video to convince you of how easy it is to use, and some very contrived examples that don't do anything interesting or useful (such as validate HTML form submissions). In response to the lack of documentation, the usual answer is "use the Google Group to ask for help", but unfortunately most of the people on there are bleeding-edge source readers who've all moved on to the alpha of the next version anyway, so you get little help. This is presumably due to the poor documentation weeding out anybody who was going to stick with official releases or who doesn't want to trawl through the code anyway. The end result is that although you can allegedly write a wiki in 20 minutes using Turbogears, doing something else like a simple login page can take hours while you wait for someone to point out which deeply-buried piece of the API you're supposed to use to achieve a certain goal. Grr!
Documentation matters, people. I don't expect a full user manual with everything you write, but seriously, I'm sure that some people write these so-called 'tutorials' and don't even read through it afterwards. If they did, they'd spot the unreasonable assumptions they tend to make throughout, expecting you to know all sorts of things that you shouldn't need to know in a tutorial.