ScreenSteps Live: A Case Study on Ruby on Rails - Part 1
At Blue Mango Learning Systems we primarily develop two applications:
- ScreenSteps Desktop Software: This is developed for Mac and PC. Trevor handles all of this and uses Runtime Revolution as his development environment.
- ScreenSteps Live: This is our hosted compliment to ScreenSteps Desktop. It is all coded in Ruby on Rails and I handle all of the work on that side.
Distributing a product for Mac, PC and running a hosted web service is a lot of work, especially when there are only two people in your company. Therefore we have had to choose our development tools very carefully. For us, the most important aspect of any development tool is our ability to quickly iterate over a product until we feel that we have it "right". Really, for us, all other considerations fall way behind. If we can't iterate efficiently then we are going to move on to another tool.
Ruby on Rails has proven to be a great tool for this type of development. There are a lot of people getting into Ruby on Rails so I thought some of you might be interested in my experience. I think that ScreenSteps Live is an interesting case study in the benefits and drawbacks of Rails, so over the next couple of months I will be posting some of the things that I have learned as I have dived into the Rails world.
First, a little background on myself as a programmer and ScreenSteps Live as a web app.
ScreenSteps Live Struggles to Come To Life
I have no background as a programmer. Well, almost none. We first got the idea for ScreenSteps Live back in late 2006 or early 2007. At that time I had never even attempted to program a web application. I knew some basic html, enough to throw up a web page, and enough php to do some basic includes. But nothing beyond that. I also had programmed some smaller desktop apps with Revolution but only after extensive help from Trevor.
But we needed a web app. Trevor wasn't going to have time to do it so we decided to outsource. I won't go into all of the details on this but our first attempt didn't work out so well. Suffice it to say that after 2 months we had nothing and were out a few thousand dollars. All I can say is be very meticulous in checking out the people you are hiring to develop your stuff. We weren't and it came back to bite us in the form of lost time and lost money.
After our first bad experience we were more cautious about who we hired the 2nd time. We went with Obtiva and they were great. Things were done for the most part on time (I have never been involved in a development project where everything was on time) and they were very responsive to our requests.
But after several months and a lot more money we still didn't have a product. Why? It wasn't Obtiva's fault. They had done exactly what we had asked them to do. We just had taken the product down the wrong path.
Now came the time for some real soul searching. We knew there was a need for ScreenSteps and ScreenSteps Live. We thought we were on top of a pretty big opportunity. But we had spent all the money we had available for development and weren't anywhere close to having something we felt was ready for release. We had a couple of options:
- Scrap the project until we could get more money.
- Go out an raise money for more development.
- Learn how to do it ourselves.
For a variety of reasons we went with option 3. The main problem with options 1 and 2 was that we would still be paying a developer to develop an app that we hadn't completely conceptualized yet. We were still figuring out what ScreenSteps Live was going to be as we were creating it. Using an outside developer was like trying to paint by telling someone else where to put the brush. It works well if you know exactly what you want. But if you are experimenting, it gets confusing and expensive.
We knew we needed to be able to iterate quickly over ScreenSteps Live until we found the right metaphor for the application. So doing it ourselves was clearly the best option. Except for one problem: we didn't have anyone who knew how to program in Ruby on Rails.
With Trevor's background, he could have easily figured out Ruby on Rails. But with the development of ScreenSteps Desktop for Mac and PC and the development of another app, MediaNotes, he didn't have a lot of free time on his hands. So, since there are only two people in our company the task clearly fell to me. Unfortunately I didn't have much of a background. I have a Film Scoring and Composition degree from the Berklee College of Music. It is a great school and all but Film Scoring and Ruby on Rails don't have a lot in common. When I started out I didn't know what an array, instance variable, object, block or class was. But when you are out of money and out of options there is high incentive to learn.
That gives you a little background on my start with Rails and web app development as well as the nascent beginnings of ScreenSteps Live. In my next post I will talk about getting started with Rails, what was easy and what wasn't.

July 4th, 2008 at 2:27 am
In your next post I'd be interested to know why you went with Ruby on Rails and if you looked at any alternatives.
July 8th, 2008 at 1:28 am
Nick- I did look briefly at a couple of alternatives - mainly php. Like I said, I had never done a web app before, and when we started I had no intentions of doing the programming myself.
Our decision to go with Rails was mainly due to the "buzz" surrounding Rails. To be honest it wasn't an extremely informed decision.
But, I can say now, after having done this project and also after having done some PHP programming since then, that if I had it to do over again I would still do it in Rails.
The real key for me has been how easy it has been to quickly iterate using Rails. PHP seemed a bit more cumbersome to me in that regard. PHP has a lot of advantages. Deploying Rails for the first time (which I will talk about in another post) was a complete nightmare. But overall I much prefer the Ruby language and the Rails framework to anything I have found in PHP (but, to be fair, my experience in PHP is very limited).
I have no experience with Perl, Python, .NET, etc. so I couldn't speak intelligently about those. Also, I haven't looked at alternatives in Ruby such as Merb so I couldn't speak to that either.
October 11th, 2008 at 3:50 pm
Wow…it's been awhile since the last article.
Where's part two…I'm VERY interested in the rest of your story!
~TL
October 14th, 2008 at 2:24 pm
@TL - Thanks for the reminder. I've had a draft for awhile. I just need to finish up. I will get it out soon.
October 14th, 2008 at 3:52 pm
@TL - I just posted it. Hopefully it has some good info in their for you. If there are specific things you would like to know about our Rails experience let me know and I will try to address them.