Hi Steve,
A lot of people interested in running rails projects are also into agile
development methodologies. The best known rails book, for example is
“Agile Development with Ruby on Rails”, which although it doesn’t talk
about agile project management practices, does tend to espouse the view
that rails development is fast enough that many of the traditional bells
and whistles of “big up front design” style project management (with
much diagramming and so forth) are not necessary.
37signals has a little book out called “Getting Real”, which talks about
there experiences, and also pushes a very agile line. Their book is from
an entrepreneurial or business management point of view, and may be of
interest to you if you are managing a rails project. Also, I think that
most people could do a lot worse than reading up on Extreme Programming,
which is one of the most widely known agile methodologies available. The
bible for that is probably Kent Beck’s “Extreme Programming Explained
(2nd Edition)”.
My experience developing rails apps is certainly along these lines.
Don’t follow conventional wisdom from the 80’s and 90’s that says you
need strict documentation for your development. Instead, just follow a
constant cycle of iteratively making things better. To respond
specifically to your comments;
Subversion
Yes, use SVN all the time. Right from the start. Yes, check those
scaffolds into subversion. When should you commit to SVN? Constantly! I
do so ever time I add a new feature, about every 20 minutes.
Documenting models, controllers and methods
Don’t do it! Why bother? Ruby code is clean and readable, if your code
isn’t readable, don’t spend time documenting it, spend time cleaning it
up so that it’s readable again. If you really want documentation that
you can rely on, consider writing tests instead. They explain in no
uncertain terms what the system does, and they will never get out of
sync with the code (because you’ll run them constantly). Disclaimer:
Documentation is still needed if you are releasing a web framework,
rather than a web application.
Fitting your system into several people’s heads
This will work fine. Yes, I know it didn’t always work fine with big
messy PHP or Perl apps. However, rails organises things into a tidy
stack, and neat vertical slices. Anyone who knows how rails works can
dive in and understand, providing the code is clean. I’ve tried multiple
developers in a rails app, and it works fine. Have a look at the “no
code ownership” ideas and practices which are part of the extreme
programming methodology for more ideas about how this can be done well.
hope that helps,
Craig