Recently we worked on creating a video to demonstrate how easy it is to deploy a Rails application on Engine Yard AppCloud. We decided to use the open source application Fat Free CRM as our sample application to deploy. Fat Free CRM is an open source, Ruby on Rails-based customer relationship management application. We thought it would be interesting to talk to Michael Dvorkin, the creator of Fat Free CRM, to learn more about the history and intended use behind Fat Free CRM, and to discuss how he got involved in the Ruby on Rails community.
How did you get into web development?
My technical background is in low-level systems programming, primarily in C, both Windows and UNIX. I started exploring web development around 1997 and my stack of choice was LAMP. I felt incredibly empowered by PHP: it was fun, it was easy, and I had to write a lot less code to get the job done. Back then PHP was a new kid on the block with lots of arguing of why PHP doesn't scale. The same kind of arguments we have been hearing about Ruby on Rails 10 years later.
What got you involved in the Ruby community?
PHP was addictive, so it took me a while ;-). I first learned about Ruby sometime in 2004. I was not particularly impressed initially: small one-line functions felt unnecessary, the usage of yield was not exactly obvious, and block syntax seemed to be a lot better that Perl, but still pretty weird. Famous Rails screencast did not impress me either: the code generator looked unconvincing and scaffolded forms seemed barely usable.
A revelation came sometime later when I learned that in Rails you can write:
yesterday = 1.day.ago. It was like "hey, that's super cool, how do they do that?!". For the next year or so I was tinkering with Ruby and Rails trying to convert my existing Perl and PHP code over. It was pretty amazing to watch how my code base was getting smaller and smaller as I was converting more code to Ruby.
I am a big fan of writing less code, not more. The less code I have to write the better I understand it and the less bugs I make. That is probably the main reason I love programming Ruby: it is incredibly deep and expressive language in very succinct form factor.
Why create an open source CRM?
That's an interesting question. One can rationalize whether creating open source CRM makes sense, but in my mind it was largely irrelevant. I had been involved in building CRMs at one of my previous startups so I felt pretty confident I could leverage Ruby on Rails to build a lightweight CRM platform of my own, something that required a substantial team effort only a few years ago. Besides, getting something done is usually more productive than rationalizing and doing nothing.
What sets Fat Free CRM apart from the other commercial CRM software packages out there?
Well, most of the existing commercial CRM systems over time have turned into monstrosities where 90% of the users use 10% of the features. I believe with Fat Free CRM these numbers are closer to 90% and 90%. In any case, my personal theory is that any sufficiently sophisticated CRM and project management system ends up being run by Excel attachments.
Seriously though, I am not trying to build yet another CRM application. I find more value in building an open CRM platform with relatively small and lightweight core and the ability to extend basic functionality by developing plugins. I have no plans to turn Fat Free CRM into a kitchen sink of mishmash features to make everybody happy and to support all possible use cases.
Why do users select Fat Free CRM to help them manage their customers?
I am getting a lot of positive feedback from all over the world. It sounds like most of them are getting tired of increasing software complexity. They demand something that "just works". In that sense Fat Free CRM is no different from other software products people choose to rely upon: they like what they see, they like how it works, and it seems to serve their needs well.
What else are you currently working on?
Well, I work on Fat Free CRM in my spare time and sometimes I just take a break to play with some latest technologies and learn something new. I have started studying Erlang: it is a fascinating software with some amazing concepts implemented at the language level.
You've been at six startups in Silicon Valley. What lessons have you learned over the years from your involvement with these startups?
Right now I am at my seventh, still working in my spare time on Fat Free CRM and loving it! I moved to Silicon Valley back in 1993. My first web browser was NCSA Mosaic compiled on Sun SPARCstation 10. I have been extremely fortunate to live and work in the Valley.
Lessons learned are too numerous to list so I am going to mention just a few:
- What sets a successful startup apart is a sustained "do whatever it takes" mindset amplified by each individual employee. "We will give it a shot" or a "we will do our best" attitude is simply not enough -- everybody does that.
- For Founders: Almost all your initial assumptions about the startup will prove to be wrong. You better be ready for some frantic emotional roller-coaster rides.
- Learn to have fun in the process -- it is not your last startup after all, right? :-). As my 7-year-old daughter Laura puts it, "Dad, your MacBooks and iPads will be there when you are 90 years old, but I won't". She is one smart kid!