How would you say your approach fits in with the conceptual framework of Agile software development?
Both 37signals as a company and Ruby on Rails as a framework are closely aligned with the Agile development philosophies. Rails includes many of Agile priorities right there in the box. We have incredibly strong testing facilities, a tight change and effect feedback loop to encourage small iterations, and generally a disdain for big upfront design.
So being sympathetic to the Agile approach is more or less a requirement for jumping on board the Rails. There's a definite bleed between culture and code in Rails. If you're not with the Agile programme, Rails will probably not feel like a good fit.
How important do you think it is that you developed the framework on your own to start off with?
It's essential. The notion of "release early, release often" is often blindly followed without realising its limitations and pitfalls. I've seen too many open source packages announced or released before they had a strong vision or culture of their own. And if you release before the vision and culture has been fortified, you'll attract people with strong ideas on where to take the project — ideas that'll likely differ from your own — and infighting and loss of direction will follow.
Ruby on Rails has managed to break through the mould by having one clear vision and a fortified culture, which allowed us to adopt new members willing to cut with rather than against the grain.
So my advice to budding open source programmers would be to carefully consider when "release early, release often" is the right move. Don't release before you have something that's genuinely useful and don't solicit contributors before you're already on a reasonably set course. Be a captain.
How did you come to the decision to go with an open-source licence? Why the MIT License rather than, say, the GPL?
Rails was born out of the pragmatic needs of a business with a desire to share some and keep some. MIT seems to fit that context better than the GPL. I wasn't all that interested in trying to force people to contribute back to Rails. If you're not sharing your extensions to the core framework, you probably "don't get it" anyway, so I doubt that I'd be interested in your patch in any case.
You've said one of the benefits of going open source was tapping into the good feeling and good press around that approach. If you were doing this 15 years ago when open source was a little bit more of a novelty, would you have made the same decision?
Open source has been a huge success for Rails, for me personally, and for 37signals. I've received so many great ideas, so much beautiful code, and met so many wonderful programmers. I'm a much happier programmer now than I was working in solitude. 37signals is much happier company because we've been relieved of so much work that we would otherwise have to do ourselves.
So I treat the goodwill as bonus. It's great that people are taking notice, that we're able to attracting so much mind share, but even at a hundredth the current impact, we'd be coming out ahead.
Will Rails ever support things like stored procedures and triggers? To what degree will this limit who can use the framework and the seriousness of the applications it can be used for?
As I've said earlier, Rails is about problems faced by its contributors. We don't work for other people. So we've been able to optimise for our needs and say to hell with rest. So Rails doesn't do anything special to support stored procedures and triggers because none of the contributors have found that they needed it.
And, frankly, if you think that "seriousness" is a label that is even remotely related to database features like stored procedures or triggers, you're probably not a good fit for Rails anyway. So I'd happy to see you take a pass on Rails. We're not out to help people that are not interested in our help.
That being said, if you're developer that shares a good cultural fit with Rails in general, but you need to support legacy feature X because of work, then I'd be happy to see you work on it for Rails. Maybe it won't make it into the core framework, but be a valuable plugin that can help others in the same situation.
The world is not being rewritten in Rails today or tomorrow. So we need bridges and you're more than welcome to bring your own bridge to the party. Plenty of people did already. That's how we got support for databases like Oracle and DB2 among other things.
Do you need help with Ruby? 




