In November 2006, I reviewed version 1.0 of Spiceworks IT Desktop, and I was rather impressed with the product and the company on many levels. Today I had the opportunity to talk with Scott Abel (CEO) and Francis Sullivan (CTO) of Spiceworks. Spiceworks is a small startup located in Austin, Texas. They have sixteen employees, the majority of which are technical people.

Our discussion centered around three major areas that I thought would be of interest: Spiceworks’ use of Ruby and agile programming techniques, their laser beam focus on the customers’ needs, and how to be a startup in a world of huge software vendors.

Rapid Ruby
When Mr. Abel and I first talked in early November, he mentioned that Spiceworks IT Desktop was written in Ruby. I took that to mean just the Web portion of the interface. Today, we talked in depth about their use of Ruby. Put simple, they had nothing but praise for it. Originally, they were looking at doing the development in more traditional languages like C++, Python, or Perl. They decided to use the Ruby on Rails framework for the Web interface. They were so impressed with the ease and speed of writing code in Ruby, that they investigated using it for the device discovery and querying as well, and decided that it would work well for those purposes as well.

On previous projects using Java, they had been accustomed to 9 – 18 month development cycles. With Ruby and agile programming methodologies, adding new features is measured in days, not months. Because Ruby is a dynamic, interpreted language, testing new code is as easy as running it, as opposed to compiling and deploying a Java project, restarting the application server, etc. This also helped significantly cut development time and frustration.

On amazing thing kept ringing in my head after we spoke: Mr. Sullivan stated that they write less than 1 line of Ruby for every 10 lines of Java that would have been needed. To make that even more potent, the majority of their programmers did not know Ruby when they started coding on this project. Within two months, every team member was able to work at full speed with Ruby. On the other hand, with development progressing so quickly, they have one shot at getting things right, and only one shot, and have much less time to make decisions.

In terms of developing with Ruby, they did state that Ruby is not as mature as other languages, particularly with documentation and libraries. That being said, they found that Ruby programmers are extremely passionate. When told that something cannot be done in Ruby, they set out to prove you wrong, and succeed. Another interesting thing that was mentioned, is that Ruby’s advantages are primarily psychological as opposed to technical. While they said that Ruby does have many technical advantages, it is the attitudes of people who program in Ruby, the community, and the mindset that the language fosters that make the biggest difference between it and other languages.

To write their code, they primarily use Textmate running on Mac OSX, although some of their developers use vi and/or emacs. “Eclipse is kind of overkill for Ruby,