Design Element
Comment on "Does Ruby on Rails Scale?"
by Kay Roepke — Feb 06
So what would you recommend? In other words, what's a good balance of performance and developer productivity?

In my experience what really makes a difference is to try to plan ahead. Whenever we implement a new feature or have to touch some existing stuff we ask ourselves the question: "Will it handle the ten-fold load?"

It doesn't matter if it just barely handles that much, but if it's still acceptable, then we can do it. If it doesn't it can't be done that way.

We do the majority of our coding in Perl and by now have an extensive home-grown framework, which is now in its fourth incarnation. But there are areas where Perl doesn't cut it anymore, so we are moving some stuff over to Java and C. Granted, those are very specialized areas we do this, but in some cases it's necessary to be able to pass the "10x rule".

Why "10x"? Sounds like a stupid rule at first, doesn't it? Sounds like "you don't need that much performance reserve". But in my experience you will be distracted by other work long enough until you almost hit the limits of the system. And then you'll be grateful for every week of extra development time you have when it becomes a problem.

The time you bought by "oversizing" the solution a bit (or sometimes a lot) gives you more time to implement the features customers want.

Of course the whole lot of good coding practices apply here, too, to make you more productive. But in the end, constant refactoring is the real key factor. If you let code deteriorate enough, it will become a serious problem later on. Once you realize somethings broken, fix it. Or be prepared to throw it away a few months down the road...
Back to "Does Ruby on Rails Scale?"
Design Element

Copyright © Scott Stevenson 2004-2015