Can an entire Ruby web app be developed in 6 weeks from Concept to Deliverable?

0 views
Skip to first unread message

Polydectes

unread,
Aug 3, 2007, 2:24:52 AM8/3/07
to Saint Louis Ruby Users Group
Hello STLRug Members,

This is part question, and part feeler for abilities.

Recently I've been discussing some ideas for Web 2.0+ applications
with some people in California. One has received significant feedback
and buy in from multiple individuals and larger companies there, but
these individuals want the application working by October 1st. A
simple
alpha has been thrown together, but one of the companies wants the
full application to be usable by October 1st of this year.

IMO, the best language for doing the application in the alotted time
is Ruby.
(It also appears that it is the only language for doing this in the
alotted time).

I can't provide any details about what the application is or what it
does. That
is all under an NDA. If you are interested in details about the
application, I
would need to get a signed copy of the NDA agreement from you before
any
details could be discussed.

As I envision it, I can see an application with 3 major components
(user facing,
Administrative, Back-End) and between 25 and 50 complete subsystems
(security, email, secure payment, etc...) with the possibility of
between 5 and
15 pages in each subsystem (most are simple text, but at least 30%
would
be dynamic).

I know this is very little detail, but what I'm asking for is feedback
from STLRug
members regarding experiences developing similarly complex systems
using
Ruby and RoR, some of the major pitfalls that need to be avoided, and
if anyone
with at least 1 and preferrably 2 similar ruby web applications under
their belt
(not just a simple blog or wiki, but full blown multi-subsystem multi-
page
applications) might be available to assist if we pull the trigger and
determine
it's worth doing.

Eric

Craig Buchek

unread,
Aug 3, 2007, 2:31:31 PM8/3/07
to Saint Louis Ruby Users Group
Well, 2 months is a short time, but it depends a lot on how much work
there is to do. I'm working on a Rails app that has 12 models, 5
controllers, and about 30 actions. I expect to complete it in about 60
hours of billable time. There was a guy I read about recently who
started a dating web site from concept to launch in like 65 hours of
work time. And I saw a gig listed on Craiglist this past week asking
for St. Louis folks to join in to create a startup in 48 hours. So it
can be done.

Some recommendations:

- Rails is probably one of the quickest ways to get a solid app of
any decent size up and running, assuming the app fits the MVC mold
well.
- If you're constrained to PHP and know Rails, CakePHP looks very
similar. I considered it in case my client was unable to use Rails for
some reason. It's so close that you won't have to learn too much.
- To save time, use plugins. The main problem with that is doing the
research to determine which plugins will work best for you. With a
short amount of time, you may just pick one and go with it, and work
around the issues. Or work your app around the way the plugin wants to
do things.
- You should definitely look into the frameworks that sit on top of
Rails. Things like MasterView, Streamlined, Hobo, and ActiveScaffold.
They can get you nice looking CRUD apps in a very short amount of
time.
- Start with a base Rails app that already has some things built in
for you (like users, admin sections, etc.) I've started my own, but
you should probably look into the Caboose one:
http://blog.caboo.se/pages/sample-rails-application
- If only developers will be doing the HTML stuff, look at using HAML
instead of RHTML.
- A small group will be quicker than 1 or 2 people. If that's not
feasible, then at least consider consulting with some folks for small
portions. Like perhaps deciding which plugins to use, or how to
accomplish a certain task. And if the site has to look nice, you're
going to want to hire a designer. On the other hand, too many people
can cause things to slow down, especially if the work is not clearly
divided up. One task you're going to need is project management.
- Don't worry about implementing the AJAX stuff until after the
original launch. If for some reason you do need that, then hire
someone to do JUST that portion, and make sure it's unobtrusive
JavaScript that can just be tacked on to your existing HTML. (I
recommend steering clear of RJS; use something like jQuery, LowPro, or
MooTools.)
- Make sure you've got all your infrastructure in place before you
get started coding. Things like testing frameworks, source code
repository, bug tracking system, deployment method, Apache virtual
hosts, DNS.
- Don't forget that you only get to choose 2 (at most) of the 3:
cheap, fast, and good.

If you're interested, I can help you with some of these pieces. For
instance, I've got a script I follow to set up all the infrastructure
in a couple hours. Contact me off-line at Craig at Buchek.com. (I
rarely check my GMail account; it's just for Google Groups primarily.)

Craig

Ninju

unread,
Aug 6, 2007, 5:56:40 PM8/6/07
to Saint Louis Ruby Users Group
Hello Eric,

I would agree with Craig that the 2 month time line is doable
but it does seem like a close call.

You have a laundry list of specifications but light on details. Now
I know its all protected by NDA but it is hard to provide a good
estimate on whether the time line is too aggressive or not.

That being said, there are things you can do mitigate your risk, the
foremost is incremental delivery. The key for any fast paced project
is quick (if not continuous) feedback on how things look and behave.

On solution would be deliver facets of the system on a tight schedule
(maybe 2wk iterations). First the user-facing side (as a Web 1.0),
then
the admin side and the re-publish with a Web 2.0 face.

Having being on a large RoR implementation with my tenure with
ThoughtWorks, Inc. I can attest the value of an Agile approach not
just
for the customer for the consultant.

I have recently moved back to the St. Louis area and would like
keep up with my opportunities. Please contact me if you have
any other questions

Later,

Ninju

Reply all
Reply to author
Forward
0 new messages