Selling Rails

Greetings Group,

I’d like some advice about selling Ruby on Rails in my existing
organization. I’ve only been at this company for 4 months, but I’ve
been handing out Pragmatic Programmer books like samples at a Weight
Watcher’s convention. I also got myself and 21 of my co-workers to go
to the Dallas No Fluff Just Stuff a couple of weeks ago.

When we got back from NFJS (best quote was from the Herding Racehorses
talk: “I just kept wanting to stand up and applaud!”) we all got into
a big meeting and talked about what we wanted to try out. I brought
up that I would like to look at Ruby on Rails. There were several
concerns (it’s new, it’s not Java, we fear change, etc.) which I did
not immediately address. At this point I just wanted all the people
who always have to make a comment to get it out of their system.

I did, however, find unexpected support for the idea of looking at
Ruby on Rails. The turning point was when one of the other developers
said “If you will right a Rails application I can do it in less lines
of code with JSP”. As someone else put it, the gauntlet has been
thrown down.

Now I need some pragmatic advice on how to present Rails. Here’s my
approach so far:

  1. Take an existing application and re-write a small piece of it
    (search screen and one or two CRUD screens) and keep track of my time.
  2. Put together a handout with some screen shots, the time and
    functionality involved, and some of the better Rails quotes.
  3. Present it at the next meeting with better justification. Make a
    short, clear case for rails. Point out that in JSP it doesn’t scale
    like J2EE.

How does that sound? Any other suggestions? This is my first Rails
app, but I want to gather any low-hanging fruit. Is it difficult to
get distributed ruby working? Is there anything else that I’m
missing?
Thanks,
Joe


“For a new software system, the requirements will not be completely
known until after the users have used it.” Humphrey’s Requirements
Uncertainty Principle.

Bothari wrote:

I did, however, find unexpected support for the idea of looking at
Ruby on Rails. The turning point was when one of the other developers
said “If you will right a Rails application I can do it in less lines
of code with JSP”. As someone else put it, the gauntlet has been
thrown down.

Before you take this challenge, you should get a couple significant
sample RoR applications under your belt. I assume your friend isn’t as
new to JSP as you are to Rails.

I’ve just completed my first significant sample app, and must say how
much I learned along the way, and how it cemented what I read about.
Now, future tasks should take me less time and create more efficiency in
code and time.

Also, is “less lines” the best single metric? I beleive time,
maintainable code, and understandable code is more important than size.

How does that sound? Any other suggestions? This is my first Rails
app, but I want to gather any low-hanging fruit. Is it difficult to
get distributed ruby working? Is there anything else that I’m
missing?

Get people excited and motivated first. A single evangelist doesn’t
carry as much weight in the decision to change technologies. Gather a
group, get the buzz going. When management hears more Rails talk and
benefits from the group, they may listen closer.

Managers don’t like radical change because it may cost them. They tend
to go with the “safe answer” rather than the “best answer” or “current
trend”. They want to know that tools and support is available, that
their current staff can and wants to learn the new technology, and how
the change will look to their managers, owners, shareholders, etc. You
know the old quote: “Nobody ever got fired for choosing
(IBM|Microsoft|Oracle|…)”.

I like to use new tools to prototype applications. Prototypes are quick
and easy to do as they show you something more concrete to users while
the team designs and builds the real thing. Often, prototypes make it
into production because they are done sooner. Once this happens, Rails
may be used for more prototypes, maybe more production applications, and
then it may become the standard development platform!

Allen

How does that sound? Any other suggestions? This is my first Rails
app, but I want to gather any low-hanging fruit. Is it difficult to
get distributed ruby working? Is there anything else that I’m
missing?

If it’s of any help, I posted the summary analysis from our team’s
evaluation of switching to Ruby on Rails from Java on the site I just
set up to document our Rails project’s progress. Here’s the post:

http://rewrite.rickbradley.com/articles/2005/11/16/evaluation-moving-from-java-to-ruby-on-rails

I’m still working out the kinks on that particular server, so be patient
with it.

Best,
Rick

http://www.rickbradley.com MUPRN: 467
| to know how many
random email haiku | users can dance on the
| head of a pin.

On Nov 16, 2005, at 4:19 AM, Bothari wrote:

a big meeting and talked about what we wanted to try out. I brought

How does that sound? Any other suggestions? This is my first Rails
app, but I want to gather any low-hanging fruit. Is it difficult to
get distributed ruby working? Is there anything else that I’m
missing?
Thanks,
Joe

Hey Joe-

I went through the same thing trying to get the newspaper I work for

to let me use rails. I succeeded and I was able to rewrite our
website in rails and I have been doing rails only dev here ever
since. The site I created is http://yakimaherald.com.It is serving
70,000+ page views per day and is very stable. The entire app was
written by me with one other designer making some view templates. The
site it reaplaced was a php site that weighed in at 5500 lines of php
code and is here http://legacy.yakimaherald.com. The new site was
written in 1800 lines of ruby code and has 3 times the functionality
and is way more stable and scalable then the old version. I did a
complete write up of the whole process which includes connecting to
legacy proprietary systems here on my blog :

http://brainspl.at/articles/2005/11/03/from-start-to-launch-http-
yakimaherald-com
OR
http://rubyurl.com/8ko for a shorter url :wink:

Hope that this information might help youin some way. Good luck on

getting them to accept rails. I think if they take a hard look at it
that it will be the better solution for some sites you may build but
don’t try to sell it as a java killer or you will never get it approved.

Cheers-

-Ezra Z.
Yakima Herald-Republic
WebMaster

509-577-7732
[email protected]

Don’t forget to show them the video! Gets me every time :slight_smile:

Seriously though, the blog app that DHH whips up in the intro video
would be a great comparison app for you. You can follow along a few
times before hand to practice, and then do it right in front of them
if you want. Try writing that app in as many lines of jsp. The sql
code alone in Java would surpass the amount of rails code, not to
mention it would take a week just to start the app server :wink:

Cheers,
Mark

Justin F. wrote:

I’ve been impressed by the amount of generation (of application CRUD
functionality and associated tests) available with AppFuse - if you are
not already aware of this, take a look at the tutorials at

Raible's Wiki: Articles

as it would be unfair to compare Rails with something less capable than
AppFuse in the J2EE world, IMHO.

I came to Rails after trying out AppFuse. Even though I know Java,
I was unsettled by having to make a choice of framework combinations
based on limited information, and then, after choosing one, found the
documentation diffuse and hard going. It was much easier to learn
Ruby and Rails via the all-in-one Pickaxe and Agile Dev. books than
to wade through the documentation for one piece of the Java puzzle,
such as Spring. Sometimes choice is a curse.


We develop, watch us RoR, in numbers too big to ignore.

Even with Appfuse lite, aka Equinox, it took me about 3 months to get
somewhat of a handle on the whole J2EE process. I had a simple Rails
site built in one night. 'Nuff said.

-PJ
http://pjhyett.com

Mark Reginald J. wrote:

I came to Rails after trying out AppFuse. Even though I know Java,
I was unsettled by having to make a choice of framework combinations
based on limited information, and then, after choosing one, found the
documentation diffuse and hard going. It was much easier to learn
Ruby and Rails via the all-in-one Pickaxe and Agile Dev. books than
to wade through the documentation for one piece of the Java puzzle,
such as Spring. Sometimes choice is a curse.

You are absolutely right. I found AppFuse to be a good answer when I
already had a fair amount of project experience with Struts, and one
project’s worth of exposure to Hibernate, and had decided that Spring
was next on the list. “Where to go after Struts?” is becoming a hot
topic where I work. A couple of years ago we were debating whether JDO
or Hibernate would be the way to go, to replace hand-written Data Access
Objects.

regards

Justin

On Nov 16, 2005, at 7:32 AM, Allen F. wrote:

Also, is “less lines” the best single metric? I beleive time,
maintainable code, and understandable code is more important than
size.

I think you’re right, those other metrics are generally more
important to business; however, SLOC is also an indirect indicator of
expressiveness, maintainability, and understandability - though it
could go in either direction. (IOW, extremely terse could be less
maintainable and understandable).

Anyway, main point is… Ruby is highly expressive and easy to
understand.

–Steve

Mark Dillon wrote:

Don’t forget to show them the video! Gets me every time :slight_smile:

Seriously though, the blog app that DHH whips up in the intro video
would be a great comparison app for you. You can follow along a few
times before hand to practice, and then do it right in front of them
if you want. Try writing that app in as many lines of jsp. The sql
code alone in Java would surpass the amount of rails code, not to
mention it would take a week just to start the app server :wink:

I agree 100% that you should do a direct comparison. This has been on my
list of things to do for a while (without decided what sample app to
use).

It may be worth taking a look at the Rails PetStore,

http://www.anassina.com/projects/railspetstore/

although it hasn’t released an update since the end of July. (Compare it
with Clinton Begin’s JPetstore, which it claims to be based on, rather
than the original over-engineered Java PetStore.)

I have just got agreement to use Rails for prototyping in a large
project that will deliver on J2EE, so we shall definitely go through
this comparison exercise to help determine the mappings from a Rails MVC
‘animated specification’ to, for example, an AppFuse
Struts/Spring/Hibernate production implementation.

I’ve been impressed by the amount of generation (of application CRUD
functionality and associated tests) available with AppFuse - if you are
not already aware of this, take a look at the tutorials at

Raible's Wiki: Articles

as it would be unfair to compare Rails with something less capable than
AppFuse in the J2EE world, IMHO.

N.B. Be aware that nearly all the code you are writing by hand as you go
through the AppFuse tutorials can be generated (from the domain class
with XDoclet annotations) for you by running a script - the tutorials
are to ensure that you understand the workings of the AppFuse
combination of Struts/Spring/Hibernate (or alternative combinations of
front ends, Spring, and back ends) before starting to use automated
generation.

Watcher’s convention. I also got myself and 21 of my co-workers to go
I did, however, find unexpected support for the idea of looking at
functionality involved, and some of the better Rails quotes.
3. Present it at the next meeting with better justification. Make a
short, clear case for rails. Point out that in JSP it doesn’t scale
like J2EE.

Be aware that keeping track of your time may be misleading if you are
still learning Rails. The amount of code involved is a better indicator,
since to a first approximation developers cut lines of code at a rate
independent of the language. Having said that, there’s the productivity
impact of zero turnaround time on changes in Rails - best demonstrated.
(Here again the demo could be an A-B comparison of what a change
involves in Rails, vs. what it involves in J2EE.)

Good luck!

Justin

Even after three months I was struggling.

I can’t believe I was saying to myself “Hibernate, Spring, and
Tapestry makes everything drop-dead simple. Just make sure it’s loaded
by the Spring Bean factory, add the schema info for each model here,
then you need to add a factory interface for each model class, then
implement it in an class that provides it using hibernate, building
off hibernate’s own abstract factory templace class… Then add the
two tapestry xml config files for each page, implement an abstract
class for that page, and the html template, and you’re in business!
It’s that easy!”

I can’t believe I was kidding myself like that. I really cannot
forgive myself. It was a horrible dark age in my life.

And then I found Rails. And all things good and happy returned to my
life. :slight_smile:

You and me both, Jacob, you and me both.

-PJ