The user drkyzar asked for a follow-up on my previous post comparing Ruby on Rails and PHP/symfony. His request got me thinking about some of the cons of Ruby on Rails. As expected, some are due to the language and some are decisions of the Ruby community. Here are my initial cons of Ruby on Rails as compared to PHP/symfony:
- Ruby meta-programming in Rails, and other gems, make it hard to debug problems. You can do meta-programming in PHP but it isn’t very common and symfony follows a heavily object oriented approach. In the Ruby on Rails world and the acts_as_*** gems, it is very common.
- Ruby gems (plugins) don’t always work on the different OS platforms and are often OS-specific making it difficult to include them in a projects source code repository. As an example, the json gem version 1.1.3 doesn’t install on Windows but works fine on Mac and Linux. The json gem version 1.1.1 does work on Windows but other gems like the latest Twitter gem require 1.1.3. This isn’t fun to work through when there are a variety of software engineers running the major OS environments.
- The biggest con with the RoR platform is how long it takes to compile everything when you have a big project. You can run Rails in different environments like development and production. Development recompiles everything on each request and production compiles and caches everything on the first request. So, a large project will take 20 – 30 seconds on each request in development mode as you click around. With PHP/symfony, there is no massive recompiling resulting in almost no difference changing a file and re-requesting a webpage as compared to running in production.
These are just some of my observations after building large scale SaaS products in both Ruby on Rails and PHP/symfony.
A common trait you’ll find among entrepreneurs is that they have tons of ideas and routinely can be described as ADHD. Due to this phenomenon, SaaS products, and the web in general, make for an ideal medium as it affords an elegant manner with which to constantly tinker. In many cases, you can have an idea, see it live in production, and get customer feedback in a matter of days or weeks (with strong automated testing, of course!). What other types of products allow you to do that? Physical goods? No. Services? Rarely.
Constant iteration and innovation really is adrenaline for enterpreneurs. It doesn’t get much better than SaaS/Web for products.
Sales commissions are a tricky thing. Once you put them in place, it is difficult to change them without the sales team being demoralized that their compensation is going to go down (even if it isn’t!). The goal, generally, is to minimize base salary and maximize performance based compensation. Here are some thoughts on strategy:
- Align company interests with the commission (e.g. have commission percentages based on the profitability of the item being sold such that things like license revenue have a higher percentage commission than services revenue)
- Significantly reduce compensation if quota isn’t hit (e.g. cut the standard commission in half if quota isn’t reached for the designated time period)
- Don’t limit the up-side (e.g. don’t put a cap on the maximum amount a sales rep or account manager can make)
Sales, and management of a sales team, is one of the most difficult, and rewording, aspects of a business. Good luck!
My new year’s resolution last year was to write one or more blog posts per week. I’m happy to say I achieved that goal and it’s time for my next resolution: use Twitter several times per week by posting tweets and joining the conversation. I’m not going to post a ton but I will try to capture thoughts, anecdotes, and anything else that is interesting to me.