Being forced to work from home since I have a back injury, I've found that I cannot work on any projects that require access to certain internal URLs or that require meeting with other developers/customers. As a result, I've started refactoring one of the ugliest parts of our system. Our "builders" which turn our DBIC objects into XML have been a mess of ugly, procedural code. As a result, trying to allow alternate XML, YAML or JSON formats has been virtually impossible.
Today, while I was separating the data gathering from the serialization, our subversion server went down. The person who maintains that system has just left the BBC, leaving us in a bit of a bind. Fortunately, it doesn't affect me too badly:
I wouldn't dream of working without source control and while it will be annoying to reimport these individual git commits to subversion, at least I can continue working without worrying that it's difficult to revert to a previous working version of my code.
Oh, and our new builders are built on top of Moose. It's made many hard problems much easier to solve. And our serialization formats are Moose::Roles. It's made the problem very, very trivial. Adding a new format now only takes a couple of minutes. Before, it was a couple of years of dreaming that we could do it.