1. I bought a laptop as my primary research machine when I started this job (so, 2.5 years ago). This laptop has been nothing but problematic for me almost since the beginning, and now it's looking like I'm going to have to replace it (much) sooner rather than later. My "favorite" trick is when it decides to completely freeze, and the only way I can "fix" it is to shut it down by holding down the power button (or, sometimes when that doesn't work, pull out the battery). It has now decided to do this trick almost every time I use it. And customer support? Yeah, it's been less than helpful, as in not at all helpful. The original plan was to muddle through until the summer, and then order a new laptop, but now I'm seriously considering buying one sooner. And I really don't have the time or energy to do so right now, especially since I still have to decide whether I'm going to go with a Mac or a Windows machine (the one I have right now runs Linux), and I can't make up my mind (Macs are soooo nice, but I do some Windows programming and might have to go that route). Gah.
2. Course management software. I'm beta-testing one such system right now. It sucks. Instead of making my life easier, it's been one headache after another. My old system of web pages works much more smoothly, and more importantly I don't have to spend hours figuring out how to do something using web pages, like I do with this system. Maybe I'm just too much of a power user. Maybe I'd like it better if I saw the value in giving multiple-choice tests, or not assigning partial credit. But it's totally unintuitive to both me and my students.
3. Programming environments. I use Visual Studio when I do Windows programming. It's ok, although I much prefer Eclipse. But sometimes, it will decide that it doesn't like my project settings or preferences or something, and that it won't allow me to access my current project. The only solution I've found that works? Make a new project and import all of the old files into the new one.
You know, it's so easy as a technologist to "blame the user" when things go wrong. After all, if a user can't understand how to use the software, then the problem must be with the user, right? But it's doubly frustrating when someone like me, who knows an awful lot about what's going on under the hood, who really understands the technology, still can't get it to work. And that's where we, as computer scientists, have utterly failed. If the technology doesn't work for us, then surely the problem is not with the user, but with those who develop, make, and test the technology. Shame on us, really, for not doing better.