I don't often write "corporate update" style posts, but I'm so happy with how 2008 went that I really feel driven to catalog it in some way, if for no other reason than to remind ourselves of the fun we've had over the last year. The simplest metric for how our year went is size; at the end of 2007, we were seven strong. By the end of 2008, we are fifteen (point 2, if you count the Hacker in Residence program). I could not be happier with the people we've brought to the family in 2008. And we're always on the lookout for more geniuses and ninjaz. Although I'd really prefer both; nothing worse than a couple of dumb ninjas.
As for what the team actually accomplished, let's start with our new baby.
We launched RunCodeRun as a free service to the open source community, and in private beta for commercial code. Not only are we free for open source Ruby and Rails projects, but we supported the Rails Rumble last year, offering an account and round-the-clock(ish) support to anybody participating in the Rumble.
We launched RunCodeRun because we feel strongly about code quality, and having the watchful eye of a good Continuous Integration solution is integral to the way we work. Since we kept having problems with the infinite variety of self-hosted solutions we were using, we decided it was high time somebody came up with a hosted version. We looked around, and couldn't find anybody. Never one to let a yak go unshaved, we launched RunCodeRun. We're very excited by what 2009 holds as we ramp up towards coming out of private beta and going fully commercial. But don't forget, we're forever free for open source, so if your OS Ruby code needs some integration of the continuous kind, come get some.
When we founded Relevance, we had a simple rule for time management: 20% of your "billable" hours had to go towards open source development. Which, it turns out, is a fine idea, except when your team is so dedicated to your clients that they simply won't take the time out of their week to do it. So in late '07, we made a switch: instead of 20% of your time, we made every Friday "Open Source Friday". As it turns out, that's the secret sauce. We set the expectation with our partners that Fridays are for the community, and in turn we encourage each other by all working on open source together on Fridays.
Some of that effort goes to open source projects of our own devising, and some to projects founded elsewhere. Of our own projects from '08, we're particularly proud of Tarantula (we love testing and security assurance so much we made a tool to help other teams feel the
Speaking of Castronaut, '08 was a big year for Relevance in the security space. Aaron's PeepCode on Rails Security Audit was released and seemed popular.
At the same time, we introduced our Security Audit service (to complement our Code Audit and Performance Audit offerings). Our auditing services have been a big hit, and have introduced us to some great teams, including the great folks at the Naval Research Lab. While working with them, we discovered the need for a simpler, Ruby-based CAS implementation, and Castronaut was born from that project collaboration.
It feels funny to talk about our corporate process in this way, but I'm stoked about the way we work at Relevance. Our semi-annual retreats give the team some time to really focus on what we do and how we do it, and also on discovering the real differences between Speyside and Islay. Our holiday party (this time, at ACME Food and Beverage Co.) is a great time, but the two-day retreat is the real gem of the holidays.
It isn't just that, though. We've completely imbibed the agile zen and we have a full company retrospective every two weeks. For an hour and a half, we discuss what's going well, what could be going better, who's happy, who's not, and what we can do about it. This has become such a heartbeat for the company that missing or postponing one has the exact same effect on us that an arrhythmia has on your own heart: it doesn't feel good, and you think something might be really wrong.
On top of that, we encourage everybody at the company to schedule personal retrospectives, which take the place of progress reviews. The rules are simple:
Sometimes, people have to be prodded to schedule a retro (Stu, I'm looking right at you, pal) but in general, everybody is anxious to do them. I bet we average 3 a year per person, and universally, everyone thinks they are enormously helpful. I wouldn't want to do it any other way; mandatory progress meetings with the boss seem so tepid by comparison.
And, finally, we added the Hacker in Residence program as a way to expand our reach, work with great people, and introduce outside folks both to Relevance, and, frankly, to North Carolina. We give room, board, and a nice consulting rate, and you give us 6-12 weeks of ass kicking. Hopefully, we both learn lots. So far, it is working beautifully.
Lastly, we've made some technology decisions in '08 that have turned out to be great choices, and we've written some great material that we're proud of. First of all, we switched over to Git (and GitHub) which we've found to be quite a success. Not just for our internal process, but for the communal aspect of it as well. Heck, we like it so much we based the initial release of RunCodeRun around GitHub.
We've also adopted Clojure, as Stuart's beta (and very soon not-beta) book, Programming Clojure, shows. Clojure is an elegant entry into the general programming toolset, and one we've been quite happy to see grow and mature. If sales figures on the book are a useful indicator of the community's interest in the technology, '09 should be quite a boom year for Mr. Hickey.
On the custom development side, we are proud to have launched a Rails + MySQL app that works with over 100GB of data. Like any share-nothing architecture, Rails scales just fine with passionate developers on the job. A special shoutout to Mark Imbriaco for coming out to lunch one day and validating some of our strategies.
Lastly, we've got some really great blog series last year that stood out to me for quality and depth of coverage. Jason Rudolph really went over the top in his Testing anti-patterns series. And Stuart's Java.next series spawned some excellent discussion and was a great launching pad for development of his book.
We could not do what we do without the ongoing dedication and excellence of our partners. This means, first of all, our customers. We've got an awesome group of people we're working with, doing great stuff, and we couldn't be happier. I'd call you all out by name if those pesky NDA's didn't get in the way, but you know who you are. In 2008, we worked on projects in the legal, medical, financial, advertising, fitness, government and professional services industries. We developed social networking platforms for customers like TradeKing, and worked with customers like the Naval Research Lab on single sign-on issues. Our custom development in 2008 has included solutions in Rails, Ruby, Java, .NET, a little Windows automation, and a whole lot of database, security and messaging thrown in for good measure.
In addition, we have a variety of other groups we work with who do a tremendous job for and/or with us:
We set out, at the beginning of 2008, with a few goals for the year:
I definitely feel like we grew the right way in 2008. Our team is big enough to handle multiple complex projects and still provide flexibility, but is not so large that we've forgotten who we are or what we are trying to accomplish. We've adopted technologies (like Clojure and Sinatra, as just a couple of examples) that expand our capabilities and represent alternatives to standard technical approaches to business problems. Focusing our efforts on "Open Source Friday" has vastly amplified our ability to consume, evaluate and contribute to the community. And RunCodeRun is as clear a projection of our values as can be made: we love testing, and we love CI, and we love hosted solutions, and we love Ruby. Doesn't get much clearer than that.
Thanks to everyone who was part of our year last year, and here's to everyone having fun, challenge and success in '09.