James Shore has been posting a very cool retrospective diary relating his experiences trying to effect organizational change as a developer to push agile practices and improve quality and efficiency. I've enjoyed reading each entry as it's been posted, not only because of the original content, but also because of the retrospective reflection James attaches to each entry.
One thing that struck me while reading them, particularly the last entry, is how much of the feelings James describe applies to several aspects of software development work. I've personally witnessed and tried several of the tactics James tried to use, with varying degrees of success (probably far less than him, since I'm not an agile guru and just an agile wanna be :-)) and certainly far more degrees of failure, which can really be frustraring. But, at the same time, the feeling that you can make a difference, even if it takes a lot of work and a lot of effort is certainly rewarding on its own.
One important aspect I learned the hard way was that you really can't let it get to you and let yourself become just bitter with the whole thing and spend your time complaining instead of doing something to improve things. I've been doing a lot of soul-searching and trying to better myself and learn from my own mistakes so as to not fall into that trap again, but I think I've learned quite a bit about myself and this job in the process, so it's not all gone to waste, and well, the experience helps a lot if you learn from it. I still have lots to learn, though, which is why I love hearing about the experiences of others more experienced (pardon the redundancy!) than me (and that I admire). It's great being able to relate to their experiences and look for ways to take advantage of their lessons in your own work; this is the kind of blog posts I enjoy more these days.