In the first year of developing Rails applications I had no flow. I did duct taping instead of duck typing.
There were serious prerequisites why I did not felt the success:
- Last time I was writing programs was … in the past millenium, using Delphi. Since then many good things happened, and I was not aware of them. In these times I was software project manager and software entrepreneur, having nothing to do with the source code.
- One year ago I had an opportunity of creating a Business Process Management application — something between Lighthouse or Redmine and Tibco’s Business Studio (!) – in Rails for my client (!!) who was paying me in advance (!!!) without any “Hello world” -like experiences neither in Ruby nor in Rails. I took the courage to take this challenge from some PHP hacking experiences I had in Wordpress lately + the big enthusiastic wave around Rails (creating a blog in 15 minutes). They made me think I can learn Ruby and Rails in 1-2 months, and write a BPM in 1 year.
Since I was not aware about the existence of design patterns I was starting to reinvent the wheel. I’ve re-created from scratch an organizational structure instead of using the Composite Pattern.
Since I was not aware of how powerful Ruby is instead of writing code I was trying to integrate into my app every plugin and gem I found. Coding become hacking and gluing together these plugins to meet requirements.
Since I was learning that my code needs testing and refactoring, everything must be DRY, I’ve started to write specs and move parts of code from controllers to models and helpers and …. BANG …. suddenly everything fell apart. I could not read and follow my code, I could not extend or optimize, to document and test. I’ve missed all my deadlines, I’ve left only with a nice GUI and some basic functionality which was buggy and impossible to build upon.
That’s why I had no flow. I was a Delphi programmer & PHP hacker rookie trying to build my first Rails application being more complicated than Basecamp + Backpack together. I had no idea about what Ruby and Rails is, what is their approach for solving complex issues, what “less is more” means.
Since then things have changed. I’ve read
Design Patterns in Ruby (Addison-Wesley Professional Ruby… by Russ Olsen
and now I’m reading
The Art of Rails (Programmer to Programmer) by Edward Benson
And I recommend these books for all of us who thinks knows Ruby and Rails but might completely missing the point.




