Ruby on Rails as rapid prototyping tool

Ruby on Rails might be the perfect match as a prototyping tool. It delivers consistent productivity gains compared to any other prototyping tool. Very few lines of code makes it easy to change. Here is why we use it at work as our preferred prototyping tool.

First time I heard about Ruby on Rails was when David Heinemeier Hansson, Jason Fried and Ryan Singer presented the “Building of Basecamp” workshop in Denmark June 2005. Basecamp was the project that sparked the development of the Ruby on Rails framework.

I recognize the reaction that Deane of gadgetopia describes:

So what was the biggest shock of the Basecamp seminar? Finding out that it was written in Ruby. Yeah, that’s right — that Japanese language that you thought no one was using. They’ve apparently put together a Web development framework for it which they’re releasing to open-source.

(from www.gadgetopia.com June 25, 2004)

I was immediately interested in the possibility of using Rails as a productivity tool, where in some cases a Rails application can be developed up to ten times faster than a similar Java or .Net application. Very promising.

Prototyping satisfaction survey

I’ve tried a lot of different prototyping tools: Paper, Photoshop, Powerpoint, Dreamweaver, HTML. Until Rails I was perfectly happy with HTML prototypes: I consider them easy to maintain, fast to produce, possible to search and replace during development.

My experience goes pretty well with the 2002 GUUUI survey where 52 people replied on their preferred prototyping tool and their satisfaction with it (people preferring HTML were the most happy with their tool).

“I’m perfectly happy with the prototyping tool I’m using”
Strongly disagree Mildly disagree Neither agree nor disagree Mildly agree Strongly agree
All replies (52 replies) 7.5% 37.7% 15.1% 32.1% 7.5%
Using a visual or text based HTML tool (15 replies) 6.7% 20.0% 6.7% 60.0% 6.7%
Using a diagramming tool (13 replies) 7.7% 76.9% 7.7% 0.0% 7.7%
Using a graphic design tool (10 replies) 10.0% 20.0% 20.0% 50.0% 0.0%

Source 2002 GUUUI survey on prototyping tools.

Enter ruby on Rails

One thing I miss in HTML prototyping is the lack of real data. For instance, a user enters a date on one page. On the next page, the date is hardcoded. Chances are that users at a user test enter values that are different from what I hardcoded on the screen. Here Rails is perfect. In stead of building screens, we build the application front-end.

At my work in Capgemini Denmark, we have used Rails for some months at work projects and it has proven to deliver:

  • Very high fidelity prototypes that can use real data. The high fidelity give much better findings in usability testing.
  • Consistent productivity gains compared to any other prototyping tool.
  • Very few lines of code makes it easy to change prototype.
  • Doesn’t have to be thrown away after building prototype.

Consider the fact that Rails can actually live on in the application development. I believe that Rails is a perfect match for making rapid prototype development. Also this approach is what Garret Dimon invented “just build it“, and it fits like a glove with the agile approach of the guys at 37signals.

Whats your thoughts on this? What tools would you use for prototyping?

Technorati Tags: , , , , ,

26 Responses to “Ruby on Rails as rapid prototyping tool”

  1. ramzi Says:

    I work at Capgemini too, and use RoR for the same purpose.
    It tooks me 3 to 4 days to implement all the functionalities + some css.
    The production application – rewritten in java – is often a replicate of the prototype.
    Actually, I’m pretty sure that no one can make a difference between the prototype and the final product.
    Now I just hope that one day I will ship my RoR app as a final product.

    ps: are there any psychological side-effects in using both RoR and Java/.Net in parallel? Do you have to keep RoR out of the reach of the developers to keep them motivated in working with other frameworks?

  2. Xavier Noria Says:

    Just curious, why do you rewrite it in Java? Is it just some kind of company policy or inertia perhaps?

  3. Priisholm Says:

    Very interesting post; nice to see large consulting companies embrace RoR, even if “only” for prototyping.
    I think it will still be a while until enterprises dare to use RoR as a production platform, which also somehow answers Xavier’s question: The customers have invested large amounts of money in J2EE or .Net, so for obvious reasons they’re not likely suddenly to switch to a platform, they probably haven’t even heard of.
    As of the psychological side-effects in using both RoR and Java/.Net in parallel , my guess is that developers will get smarter using RoR and try to adopt some of the agility principles of RoR on a more general basis, f.ex. write or implement meta-programming tools, think about “convention over configuration” when writing their own micro-framework apps and so on. Sticking rigidly to the conform rules of (most) Java frameworks or .Net technologies will become a pain faster than one can spell ActiveRecord, that’s true, but these rules come with the frameworks and since neither J2EE nor .Net is likely to go away for a long time, it’ll be a matter of bending them.
    Nice thing is to see larger RoR adoption in my home country, Denmark. Do you know of any RoR knowledge groups in DK, and if so, could you post it here? I’d be very interested.

  4. Jesper Rønn-Jensen Says:

    This question came from the Rails mailing list.

    Have any of your prototypes turned into live applications? If not,
    what have you used to produce your applications and is there a reason
    you didn’t go with Rails? Somewhere, perhaps in Beyond Java, I read
    a line like “I’ve prototyped the application in Rails and got it
    fully functional in 3 days. If you like we can spend the next 3
    months developing it how we originally planned.” That sums up my
    impression so far!

    I’m interested to hear your experience, because I’ve been presenting
    Rails to my boss and I can tell he is coming round to the idea that
    we can drop our plans for Java and use Rails for finished application
    development (finance sector).

    Ashley Moran

    Two of the projects, were big offers in the public sector where we used Rails to define the user interface. In these cases, the clients had already chosen technology and platform. So Rails was only used for prototyping during the process where we wrote our offer.

    One of these, which we won, we decided to modify the Rails prototype so that it will reflect all requirements for the user interface. The rationale behind this: It’s faster to modify this in Rails and then port to the platform that the client required. Furthermore, we want to make sure that we share the understanding of the system with the client. This is where a prototype is way better than a written document.

    In this way, we use Rails to gain equal expectations of the system’s capabilities. (Oh by the way, the contract obliges us still to document our work in word documents but I guess it’s the way the enterprise world still works).

    The third project has just passed a milestone where the client wanted us to give an estimate on how it could fit into their existing environment (Microsoft technology). The client would choose between two options: 1. Rails solution running on IIS and with MSSQL server. 2. A port of the prototype to .NET (which is estimated to cost approximately 3 times as much). I have no more details to share right now, but I’ll definately post more (on justaddwater.dk ) when I can share more details on this project.

    I hope this responds to your questions.

  5. Jakob S Says:

    These are great tidings. As a matter of fact, during the process of persuading my own boss(es) to let us adopt Rails I was asked if any of the big consulting firms were using it. Since I knew of none, my boss got a worried look on his face. Very good news this.

  6. ramzi Says:

    > Xavier Noria Says:
    >Just curious, why do you rewrite it in Java? Is it just some kind of company policy or inertia perhaps?

    Only Java (TM) EJB (TM) are allowed.
    RoR was my own initiative, my other alternative was to write a Word document.

  7. Luis Villa Says:

    Hi Jesper! Interesting article… I agree with you. But if we want to make grow RoR as a platform there are some questions (I think that is better be an devil’s advocate :-)):

    1. In my experience, one of the problems I can find with this approach is the “What’s left? Can we make it run NOW?” effect. I mean, . Sometimes, they take the high fidelity for the final product. If you show your client an almost ended product, he can put pressure on the development phase. The advantage of the RoR approach is that you almost don’t have functional specs… so… all the product design and development team has the same perspective about functions, look and feel of the final product… Just build it.

    2. The HCI and Interface team need to be remodeled: I mean, you can’t only sketch the UI. You need more technical profiles. So maybe, from a pure UI Team perspective you are lacking “agility”, because you raise the client’s expectations: he expects to hace a very high fidelity pre-definition of the final product.

    3. Last. Are we degrading Rails to just a “nice prototyping platform” with this approach?

  8. justaddwater.dk | Questions on Rails for prototyping Says:

    […] justaddwater.dk Instant Usability & Web Standards “I would love to change the world,                but they won’t give me the source code.” « Ruby on Rails as rapid prototyping tool […]

  9. Lisa P Says:

    Not sure RoR makes sense for non-programmers, but I can see it working for those willing to learn.

    We’ve started using a new prototyping tool (www.easyprototype.com) that can take scanned paper sketches and link them into interactive HTML without us having to code (it’s not our strong suit). It works pretty well, and the prototypes could never be confused with the real thing :-)

  10. justaddwater.dk | Speaking at reboot8 about Rails and rapid prototyping Says:

    […] My talk is based on some of the ideas I posted about in the article Ruby on Rails as rapid prototyping tool. In case you missed it, yesterday I announced that I’ll also be speaking on usability and rapid prototyping May 19. […]

  11. justaddwater.dk | Ruby on Rails for the enterprise: Business perspective Says:

    […] Justaddwater.dk Ruby on Rails as rapid prototyping tool by me: At my work in Capgemini Denmark, we have used Rails for some months at work projects and it has proven to deliver: […]

  12. justaddwater.dk | Attending RailsConf Europe, London, September Says:

    […] We’re looking forward to this conference. As frequent readers here may know, we’re using Ruby on Rails in Capgemini for things like rapid prototyping of web applications. Also I’m particularly interested in the business value of using it. […]

  13. justaddwater.dk | Thoughts regarding Ruby on Rails Meetup this week Says:

    […] Danish translation: Volunteers for paticipation in translating all error messages, active record messages, scaffolding, etc to Danish. That would be extremely valuable for working with close relation do Danish customers or public authorities that need their websites in Danish anyway. I no repetition, and a translation plugin (or more likely GLoc/Globalize) to be used especially when working professionally with rapid prototyping. […]

  14. Jefferson Says:

    Hello,

    Very nice post!

    Thanks!

  15. justaddwater.dk | Time to revise our blog purpose Says:

    […] Ruby on Rails as rapid prototyping tool […]

  16. justaddwater.dk | Nielsen, Joel on Software and David Heinemeier Hansson Says:

    […] The point David touches here is whether you could consider an “Immature” technology in the enterprise. Joel and David seem to disagree on this point. And Joel seems to disagree with himself. For the case of Ruby on Rails considered immature for the enterprise, i strongly disagree. As I wrote previously, Ruby on Rails has proven to deliver: […]

  17. justaddwater.dk | UI Conf: David Malouf and Bill Scott on AJAX Says:

    […] [Jesper’s note: Nobody mentions using Ruby on Rails as Prototyping tool.] […]

  18. justaddwater.dk | Usability Toolkit Now Available Says:

    […] The best part of it — my personal opinion — is probably the early bird free web design fridge magnets. They will fit perfectly in the way we do rapid prototyping with Ruby on Rails at work. […]

  19. Gebrüder Dorsch » Blog Archive » links for 2006-11-23 Says:

    […] Ruby on Rails as rapid prototyping tool (tags: rails ia @lesen) […]

  20. justaddwater.dk | Ruby on Rails Rapid Prototyping Just Got Faster Says:

    […] Earlier I wrote how we use Ruby on Rails as rapid prototyping tool at work. Hobo is a promising plugin for Ruby on Rails to speed up development even more. At work, we’ve been looking into rapid prototyping of web applications for quite some time. Hobo might even help us to speed up development even more. […]

  21. justaddwater.dk | Danish Newspaper Interview: Capgemini on Rails Says:

    […] Justaddwater.dk: Ruby on Rails as rapid prototyping tool […]

  22. justaddwater.dk | Prototyping Talk in Danish IT Usability Network Says:

    […] Ruby on Rails as rapid prototyping tool (Apr […]

  23. Jesper Rønn-Jensen Says:

    SAP Design Guild has an outdated paper on prototyping that focused on paper prototyping: http://www.sapdesignguild.org/resources/archive/prototypes-old.asp

  24. justaddwater.dk | RailsConf Europe 2007 Recap Says:

    […] Ruby on Rails as rapid prototyping tool (Apr […]

  25. Inter-Sections » Blog Archive » Comparing pieces of string - part 1 Says:

    […] happy. When faced with a Rubygmatic programmer, words like “productivity” and “rapid development” will be […]

  26. justaddwater.dk | Speed House Building Video, Teamwork and Collaboration Says:

    […] Ruby on Rails as rapid prototyping tool […]