Railway Story: SimpleTicket
A 5-year old, Dallas-based company named Spur is gaining attention and kudos within Ruby on Rails circles. Earlier this week it announced a new release of its popular GPL'd IT support tool named SimpleTicket. Managing Partner Alexander Muse was kind enough to share the story of SimpleTicket with InfoQ, which I believe provides valuable insight into progress and innovation enjoyed by Ruby on Rails advocates and paints a vivid picture of a dynamic, modern startup.
A Custom Solution
The decision to build SimpleTicket dates back to late 2005. Spur's IT support business Architel is a provider of outsourced IT services to small business, and has unique workflow requirements. They are somewhat unique in that they provide all-you-can-eat service for a flat monthly fee. In other words, they allow their users to interact directly with them just as internal users might interact with internal IT staff. Off-the-shelf trouble-ticket packages were out of the question, since they are not designed to support multiple customers. Many were also too expensive and more complicated than what Architel needed, such as Remedy and Heat.
Faced with the need to develop a custom solution in-house, Spur initially allotted a budget of $50,000 and chose PHP as the technology. An Architel employee, Kevin Marin was assigned to be the lead developer, supported by two contract programmers in the Philippines (where Architel has offices). Sadly, that project was a bust, over budget and inoperable.
Alexander learned about Ruby on Rails shortly thereafter. He introduced Rails to Kevin, who claimed that he could build the entire application he had just spent months working on in PHP in less than a month with Rails. It actually took him three months, which was still notable, since at the time he was still a novice programmer and concurrently learning Rails. SimpleTicket was deployed at Architel in late January 2006 and by the end of February everyone agreed it was stable and good.
In a phenomenon familiar to experienced Rails/Web 2.0 folks, several people at Spur developed bigger plans for SimpleTicket after experiencing its AJAX effects and simple-to-use workflow. The suggestion was made that SimpleTicket be packaged and sold as a commercial product. According to Alexander, Spur didn't really want to get into the retail software business and it was decided to release the code as free open-source under the GPL.
Realistically, the SimpleTicket 1.0 code was a bit of a mess. (ed.- Yes, it is quite possible to write bad Rails code.) At that point, it was essentially a Rails application written in the style of PHP. Despite the poor quality of the code, Spur went ahead and open-sourced it, and witnessed quick growth of a user base. According to their estimates, over 35,000 people have downloaded the 1.0 release, from 20 different countries. (Currently it's averaging over 100 downloads per day.)
Time for a Rewrite
Kevin Marvin left SimpleTicket once the code was released to start his own rails development company call Activ8. Spur went ahead and hired a lead Rails developer and additional programmers to rebuild SimpleTicket as a showcase application. A well-known French Rails guy (and former PHP programmer), Nicolas Paton joined as lead. Rails developers Niket Patel, Alex Leverington proceeded to re-write most of the codebase, with help from Giorgio Maone and Rodrigo Galindez.
The rewrite was fully completed a couple of months ago and Architel has been using the new software internally since that time. Plans to make the software more generic, less specific to Architel's processes were scrapped when Spur resources got too busy with billable projects for clients like MTV, Lego and Fox. Concurrent with the latest release of SimpleTicket 2.0, Spur has hired another project manager to focus on finishing their hosted version. The plan is to have a $99/month hosted version of the software ready by Christmas.
The Rails Outlook
The next release, Version 2.1 (hosted and non-hosted) will be led by Scott Bauer of RailsAddict blog fame, who is joining the company next week. Alex and Niket will continue on as the primary developers on the project. I asked them to describe both their greatest perceived advantages working in Rails and its disadvantages. Alex chimed in with the praise:
Ruby provides the greatest advantage in Rails. Code in ruby is easily read which provides two benefits, our developers spend less time interpreting code and the Rails framework itself isn't difficult to understand. Another advantage of Ruby on Rails is the object oriented approach of Ruby and the Rails framework. Everything is implicitly an object which helps because we can add, remove, or extend functionality with only a few lines of code. In short, the simple MVC Rails framework allows our developers to gracefully handle large projects and the object orientation of Ruby empowers our developers to spend more time thinking about what they are doing instead of how they are going to do it.
And both Alex and Niket agreed that ActiveRecord still has a ways to go:
ActiveRecord still lacking many features compare to other matured O/RM framework like hibernate. we still have to write lots of SQL while coding Statistics for SimpleTicket due to poor performance if using ActiveRecords built-in calculations methods.
SimpleTicket's user interface will be revamped by noted designer Jeremy Harrington, who joined the company this summer.
SimpleTicket is an example of the type of web applications that are being developed effectively with Rails nowadays. As with many internally-facing web applications, scalability is not really a concern, since it is designed to be used by an IT staff of between 1 and 20 engineers, supporting up to 10,000 end users.
I asked Alexander to describe the features that set SimpleTicket apart from competitors:
[SimpleTicket] is more of a social collaboration tool for issues. It is not a bug tracker. Think of it like what Basecamp is for project management ~ Simpleticket is for trouble tickets. It uses RSS feeds, tags and user interaction to enhance issue resolution. It also offers interesting statistics to determine how well the IT staff is performing. Finally it is integrated with Asterisk to allow for inbound call treatment (recordings inserted into associated tickets).
Spur has three primary brands, and Ruby on Rails affords them the power and flexibility in their technology to be opportunistic. In addition to Architel, their IT support brand mentioned in the article above, Spur also runs a brand called Big in Japan, which provides social tools and is 100% Rails-based. As of the publication of this article, Spur has over 40 full-time employees in 6 countries.