Here's an in-depth post by Yee Lee about how Facebook ships new features. It's a great example of Developer Driven Development (discussed earlier today) functioning at scale. In order to make this work, they do have some of the key characteristics needed for a developer-driven product:
- Very tight hiring practices (Facebook are very active at culling poorly performing developers)
- A product where small mistakes cost neither vast sums of money, nor lives
- A product which is being used by its developers
Interesting perspective on the non-existent QA (not even unit tests):
Most engineers are capable of writing bug-free code. it’s just that they don’t have an incentive to do so at most companies. when there’s a QA department, it’s easy to just throw it over to them to find the errors.
Many people perform better when they know they're wholly responsible for the results of their actions. To an extent, that's one of the reasons why startups are so much more productive on a per-person basis.
Update: This comment on Reddit points out some inaccuracies. Namely, every change is code reviewed (which by itself is known to remove 70% of bugs), and they do have automated testings. The key quote about engineers shipping bug-free code without QA is also being disputed.
If you read this far, you should follow my RSS feed here.