In 2007, we took a big risk on technology – after 6+ years of honing our PHP skills, we officially began switching all our new custom development efforts to Ruby on Rails. Now that the new year is upon us, I can safely say that we've reaped rewards
from the switch. Though ramping up the development team (myself included) on a new technology was difficult at times, we were definitely ahead of the curve. We had already standardized on a custom-developed MVC framework for all new client projects (we used an early version to help power one of the larger applications we've built
) and had been doing doing Test-Driven Development for almost a year prior to the switch. Though we had a good basis from which to start, we didn't go it alone. Between formal training
for the development team and our involvement with various Ruby communities
, we've made tremendous strides in the past year. For us, last year was our chance to both hone our technical skills and showcase our talents to a larger audience.
New Technology and Tools
Our choice of technology in 2007 gave us the ability to use a more advanced suite of tools to manage our client applications. These are some of the highlights:
- The switch to Rails – The framework that Rails provides has made our lives as developers much easier, and has given us the opportunity to work with Ruby every day. We are now able to concentrate more on the business logic of our applications and no longer have to write framework code (except in those rare cases when we need to patch Rails)
- Repeatable deployment process – Consistent, repeatable deployments had always eluded us when we were launching our PHP applications. We were able to automate parts of it and even took a stab at creating an internal tool to get our applications out to production, but we never quite found an acceptable solution. With the introduction of Capistrano and some custom deployment recipes, we're now able to quickly deploy critical updates to our clients' sites.
- Continuous Integration – While having a well-written suite of automated unit tests allows us to quickly discover when we've introduced defects in the code, running CruiseControl.rb tightens the feedback loop and allows us to get back on track quickly. We receive immediate notifications in Campfire when the build is broken or if we dip below 98% code coverage (with help from this plugin).
While we had always focused on technology, it had never been a priority of ours to engage with the wider development community. In our interactions with other Ruby developers, we were pleasantly surprised to find an intelligent, vibrant group centered around Ruby and Rails, something that we had missed out on in the past. We found ourselves both learning from the community and contributing our experience wherever we could:
- Commitment to Open-source – Our initial release of Tyrant paved the way for other code assets (plugins and gems) that we have released to the public. In addition to our own projects, we've also submitted patches to other open-source projects including Rails, GeoKit, and Tinder.
- Attending major industry conferences – The DC PHP Conference in late 2006 marked our first attendance at an industry-related conference. Since then, we've realized the importance of attending conferences to stay informed on current technology trends and to network with other developers. Out of the 7 conferences we attended last year, our experiences at The Rails Edge, RailsConf, RailsConf Europe (thanks, FiveRuns!), and RubyConf stand out as being the best.
- Presenting at events – Rather than just ease into our involvement in the community, we decided to get out there and share our experience and expertise as well. Last year, we presented at RailsConf, CVREG, NoVaRUG, Ruby Hoedown, TriPUG, LoneStar Ruby Conference, Rails to Italy, Raleigh.rb, RubyConf, and Refresh the Triangle. We plan to continue doing speaking engagements again in 2008 – introduce yourself if you see us out and about.
- Writing – Outside of our normal blogging activities, we found time to write and contribute to 2 technical books that are due for publication in 2008.
Our strategy for 2007 represents a huge shift in the technology we use, and the impression that we're making on the web community as a whole. Because of this strategy, we've been able to attract top talent, build bigger, better applications, and generate more interest in what we're doing here at Viget. In just a year, we've gone from being a development shop that no one has heard about, to getting name recognition at many of the events that we attend – local, national, and even international. I'd like to thank both the development team (Ben
, Clinton, Kyle
, and Megan) and everyone at Viget for making 2007 a great year. As we continue to focus efforts on recruiting
, I am confident that we're building a great team of talented developers for this year (Justin
will be joining us this month) and beyond – I'm already looking forward to what else the Viget team will accomplish together in 2008.