2007: A Development Lab Recap

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).

Community Involvement

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:

The Result?

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, Mark, 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.
Patrick Reagan

Patrick is development director in Viget's Boulder, CO, office. He writes clean Ruby code and automates system infrastructure for clients such as Shure and Volunteers of America.

More articles by Patrick