Every programmer has faced this situation: you have to throw away code that you previously sweated over. For whatever reason, you no longer need it, so you have to remove it from your program.
I enjoy this because it feels like I'm cleaning up my application. I like to pretend that the old code I'm getting rid of is low quality crap that I'd never write these days.
But I wouldn't say it's easy. It's like trying to part with all those old mementos in your closet that you kept because they used to mean something to you. It's nice to have a clean closet, but as you're throwing stuff out, you can't help but remember how important it used to be. In the case of software, you remember how much time you spent writing the code that you're now putting out to pasture.
I faced this situation earlier this week. A customer reported that FeedDemon was seriously spiking his CPU when updating feeds, and when I tracked the problem down, it turned out that the spinning animation shown in the subscription tree was the culprit.
So in the latest FeedDemon 2.6.1 beta, I threw the animation code away. And it was a lot of code - you'd think adding simple animation to a treeview would be no big deal, but getting it to look decent required a ton of little hacks that added up to some significant coding time. I loved getting rid of all those little hacks, but I sure wish I could get back the time I spent writing them.
As an aside, people often think that developers spend most of their time on big, shiny new features, but the reality is that we spend far more time on tiny details like getting a stupid little animation to look smooth. When you see software which shows great attention to detail, keep in mind that some poor sleep-deprived geek spent weeks refining those details, even though they'd rather be playing Rock Band.