In mid-2008, a couple of us got together to work on an iPhone optimized MapQuest experience, and it became painfully apparent that the mapping library was an order of magnitude too large to be effective. While we could slim it down, the stock download was running something like 300KB if memory serves. So, I rewrote it, eliminating reams of code and applying every space saving technique I knew, including multiple build profiles and dynamic loading of seldom used components (when done, I think we were running about a 20-25KB download for the API). The build script I hacked together to assemble it was pretty fragile and was getting on my nerves because it was so hard to develop against. You had to rebuild to get a realistic environment, which was causing no small amount of pain.
For about three months, between September and December I used my Starbucks time to come up with a better arrangement to the build situation and the result was something we called "cdntools" and was the first expression of many of the ideas that I've elaborated on with Asset Server.
As an aside, during my tenure at MapQuest, I tended to exercise what I called my Starbucks time. Basically, I would take one hour in the morning at Starbucks 3-4 times a week. I would never do scheduled work during this time but would spend it either cleaning up, refactoring, setting things right or doing exploratory investigations. Once the time was up, I would go into the office and spend a full work day seeing to the regular demands of the job. People would often ask me how I found the time to take care of some of the things like cdntools. The answer was that 3-4 hours of focused time per week does produce results, and it clears your mind to focus on the regular parts of the job during the rest of the time. At the time when I wrote cdntools, I was managing over 100 people, and it is apparently bizarre to be in this position and find time to be a produtive architect. It's just a matter of knowing what you can't afford to not do, and for me, staying technically sharp and making better tools to refine the development process were non-negotiables.
When I left MapQuest and started working independently again, I felt this major hole where cdntools had been. We had talked about open sourcing it, but it was pretty tied into the fabric of how things were done there and we just never got around to it. Anyway, everyone knows that a V2 is always better than a V1. Whereas I didn't know exactly where I was heading in the first go round, I know exactly what I'm trying to achieve this time and have built it from the ground up to meet those goals.
For the record, I had no access to any MapQuest proprietary bits when I wrote Asset Server and anyone who has a view of both can confirm that aside from the fact that both were written in Java and use Rhino to preprocess resources, the architecture is entirely different.