One of my more recent epiphonies is that real rewarding part of software development comes not from creating something, but from seeing others use it. In the course of evolving business models and shifting priorities, I've written more than my share of unused code. Technically, unused is not the correct term. Let's just say that it never made it beyond "meware." Frankly, it's hard to get that jazzed about something that never leaves your desktop.
This is why working on SubSonic is such a refreshing experience. While I've used it to create plenty of meware, what keeps me diving back in is knowing that other people are using it in so many different ways, most of which I will never see. But in the back my head there is always the hope that each additional feature, or even bug fix, may somehow enable someone to do great things with the technology.
Late last year I used SubSonic to re-architect a public web site, moving it from the HTML & FTP model to a fully dynamic data-driven site, with a back-end CMS based on Scaffold. This was one of those wonderful "synergistic" (sorry) experiences, where everything just seemed to tie together. In an attempt to make Scaffold more user friendly for this particular implementation, I made a number of functional and cosmetic enhancements, which made up the bulk of the interface improvement in version 1.0.6. Best of all, I got to see people who have never written a line of code get excited about SubSonic, even though they never got to see the real reason why it's so cool.
What things are you using SubSonic for?