We're always interested to see what others are building with the SilverStripe CMS, so we've decided to start a series of profiles on what other companies and developers are doing. Today we talk to Aaron Carlino, who is otherwise known as Uncle Cheese, prolific forum-poster and all around legend.
What was it that started your self-proclaimed obsession with SilverStripe?
Back in 2006, I had just started working at Bluehouse Group, and I learned quickly that our content management needs were strongly lacking. We were using a proprietary CMS developed in house, with a codebase like a tumbling snowball, picking up new things with every project, until it finally reached an immobile critical mass where it was unsustainable and impractical to continue using it. We spent a year researching open-source CMSes.
In the meantime, I was a lead developer on a major web application built on Symfony. I became enamored with the MVC design pattern, object-relational model, and the conventions and standards that were enforced in working with a framework. I remember thinking, "If only there was a CMS built like this."
SilverStripe got a lot of ink when it was backed by Google Summer of Code, so I decided to give it a try. After completing the fifth tutorial, it was clear that I had found that framework-based CMS I was looking for.
Today, I'm still fascinated with the Sapphire framework, and I can categorically say that I would choose it over Symfony for most projects. For some reason, I just really click with Sapphire. Every time I have an inclination or idea, I find out that Sapphire has a component in place that handles it gracefully, intelligently, and effectively. In the crowded world of open-source CMS, Sapphire is what makes SilverStripe a major stand-out for me.
How much work goes into maintaining all the modules that you look after? Do you have a favourite, or is that like asking you to choose between children?
A lot of work. I think my most recent estimate is that I have 1,200 hours into the DataObjectManager project alone, including development and forum support, both of which have ebbed in recent months due to my workload.
It's funny you compare them to children. I once heard an interview of the legendary recording artist Billy Joel in which he was asked the question, "Which one is your favourite album?", to which he said, "My albums are like my children, so my favourite is always the most recent one."
I guess that's kind of how I feel about my open source contributions -- the more recent the better. I think a lot of community members and the SS dev team alike might be surprised that I find most of my work unacceptably bad, and I'm embarrassed by it. Perfectionism runs rampant in my blood, and less-than-perfectly executed work bothers me to no end. DataObjectManager is probably the most downloaded module for Silverstripe, but the quality of its craftsmanship is not deserving of that, in my opinion. Building modules was my way of learning the SilverStripe framework from the inside-out, so my early work is really just a snapshot of a given mental exercise at a given time. They ended up getting a lot of momentum behind them, so I got stuck in a pattern of continuing to develop them as "less bad" as possible, just to keep up with the demands on updates and enhancements.
My latest release, Uploadify, is, on the other hand, something of which I'm very proud. It's well-documented, it's i18n compliant, it's extensible, and it uses the SilverStripe environment the way it was meant to be used. I'm staying on that trajectory, and I have a top-secret module nearing release that I suspect could be a real game-changer for the SilverStripe product. Stay tuned.
We work quite closely with the NZ community around SilverStripe - what's your impression of the SilverStripe community in the States? Is it growing?
I'm not sure I would say "growing." It's definitely quiet. But then again, it's not always the loudest players you have to look out for -- sometimes it's that innocuous ambush predator sitting quietly in the corner, just waiting to take control of the scene. So who knows what will happen at this point.
I can tell you this, though -- the room of open-source CMSes is a loud one, and in the North American corner of that room, SilverStripe is barely whispering. At Bluehouse Group, we're often in the position of selling Silverstripe to our potential clients, and all too often we get the response "Silver what?"
Of course, there's always something distinguishing about using a CMS that isn't one of the big three, but it's also nice to bolster your credibility with a little bit of name recognition. At Bluehouse Group, we would benefit from SilverStripe making a lot more noise in North America, and we are happy to participate in joint marketing and promotional efforts to help get this product where it deserves to be in our corner of the world.
What do you think are the best motivating factors to contribute to an open source project?
It helps to have an insatiable ego, because most of the time, payment comes in the form of excessive flattery and extolling praise. Just recently, I opened up a channel for donations on my website, LeftAndMain, and I've been really impressed and humbled by the amount and frequency of the donations that come in. To me, this is open-source really working.
Above all, however, it's the exposure as a skilled and experienced SilverStripe developer that motivates me. My open source contributions have opened so many doors for me, just because so many members of the community know who I am. A lot of people thank me for all of the time I've "given" to the SilverStripe community, but I've always looked at it more like an investment.
Is there anything you'd like to tell everyone before they start using SilverStripe?
The most important thing to know is that it's not for everybody, and it's not a magic bullet, so don't go into it thinking it's something more than it is. When I launched my blog back in August, I got torched by a number of community members for choosing WordPress as my blogging tool. To me, it makes perfect sense to build a blog using a tool specifically built for blogging -- the same way you use an e-commerce platform for an online store. I've never looked at SilverStripe as even being in the same competitive space as these types of products.
But most projects aren't as refined and specific as a simple blog or online store. Today's websites and web applications are dynamic, sophisticated, and highly customised. This is where SilverStripe shines. You can do just about anything with it. Therefore, new users who want to harness the power of SilverStripe and the Sapphire framework in their projects need patience, dedication, and a good support line. In general, the steepness of a product's learning curve is congruous to its strength and versatility. Don't be surprised if the pay-out for using SilverStripe doesn't happen until after the first few projects. It takes a while to get started, but on the backside of that hill, you'll recover all that time and much more.
And always remember -- if you get stuck, just ask Uncle Cheese.
Finally - why Dylan McKay? Your presence on the forums suggests that you're calm and helpful and wise - aren't you secretly more of an Andrea Zuckerman?
Because Dylan McKay is a badass. 'Nuff said!
By the way -- my cat's name is Brandon Walsh. :-)