Doug Bryant

Tech thoughts and notes

OSCON 2005 - Extracting Rails From Basecamp

Last session of the day. More rails!

Extracting Rails from Basecamp

Basecamp came from 37 Signals.

  • Less people, more power
  • Less money, more value
  • Less resources, better use
  • Less time, better time

Trust – the best technical decisions come from technical people when it comes down to developing applications.

Start w/ least amount of resource and then start to scale.

Tried to build half a product rather than a half ass product.

Less Software

Approach to software engineering under constraints was to write less software.

So why another framework?

Experienced PHP background w/ some java.

Basecamp originally written in PHP. Hit wall with PHP – it fought back against what he wanted it to do.

Inspired by java but it was too much enterprise. Too much focus on the 99.999% and not enough on the 98%. Geard toward building the of software, not the single developer hacking away.

So… Liberate the good ideas from the different languages. Ruby was the new place to liberate those ideas and make them not hurt.

Calls himself a shallow programmer

  • Aesthetics
  • Joy
  • Less

So halfway through Basecamp he realized this might be useful to other people. And now we need an extraction.

Doesn’t work to design a framework before you start coding. That’s the cart before the horse. You are then limited to what you designed.

Need application driven development to make good frameworks.

So why opensource it.

  • Selfish. Let other people do some of the work. Write it youself or let some one else help you. Only works when there are selfish reasons on the other end (they gain something too)
  • (and two other reasons)

And it works. 1000 patches in 9 months. Extract, pass, reap, rinse, repeat.

Now need to get traction for your opensource project. If nobody is looking, it does not matter.

Greatest fear as an opensource developer is obscurity. Need a network to reap the effects.

Opensource programmers need to get rid of their academic humbleness and bring rave about the good stuff. If you are not passionate, nobody else will. Need to set a baseline of excitement. Passion is infectious. You decide how high to set the bar. David set the bar very high!

Self delusions work!

Go Looking for Trouble. Tout advantages over the known. “If it bleeds, it leads”

Dealing with Traction

Now you need to scale your culture

  • Early influx can bend you out of shape.
  • Release not so early, then often. (get it mostly like you want it then release and release often. That way there is less debate about the way things should work)
  • Set a viral example of kindness. Care and show direction for newbies. Don’t tell anyone to RTFM. That will drive your users off and set and example for your culture.

Items will be added to rails by necessity. Example i18n. Not many people using it. Some people have tried it, but once enough people need and are using i18n, it will appear almost automagically and be useful.