Why does Facebook not need to produce particularly high-quality software?
By paying less attention to quality, Facebook has been able to focus on other things, like making the company a fun place to work at that can attract and retain talented engineers. Facebook would probably be less fun if it cared more about quality.
Facebook's product is a website, so it can fix things quickly. It has a process which permits rapid deployment of new code, and rapid rollback of buggy changes. This reduces the cost of recovering from bugs.
Facebook's product has a lot of momentum and lock-in. The barrier for users or businesses to move off Facebook is very high. This gives Facebook a wider margin of error to ship glitchy software. If Google was broken for a day, you'd probably go to Bing and might not come back. If your iPhone pissed you off all the time, you'd probably buy an Android when you're faced with the decision in a year or two. If you can't order something on Amazon, you can order it from somewhere else. If Facebook is broken, you keep coming back until it works again.
I'm not sure I 100% buy into the first statement. Why are fun place to work and quality products mutually exclusive?
I'd say that Facebook's acquisition of top talent has much more to do with them having huge pre-IPO monetary incentive and less to do with being a "fun place to work".
>* Why are fun place to work and quality products mutually exclusive?*
Because "fun place to work" obviously means beer and bongs passing around, in-office swimming pool, bikini models, pool and air-hockey tables, and Futurama watching marathons.
Which doesn't result in the highest quality products, if any products at all.
Or would you rather work at a place where every little change you want to make needs to be "approved", and any new ideas you wanted to try needs to be checked off by a manager, who may or may not want it implemented depending on the political situation?
No, because "fun place to work" means your #1 focus on building new features and getting them out to users as quickly as possible. Building quality products means the tedium of writing test suites larger than the rest of the code base, fixing them when they fail, and a sometimes-lengthy review process before pushing things to prod.
Not saying the stuff associated with quality is bad -- quite the opposite -- but (at least to me) that part isn't particularly fun.
Why does Facebook not need to produce particularly high-quality software?
By paying less attention to quality, Facebook has been able to focus on other things, like making the company a fun place to work at that can attract and retain talented engineers. Facebook would probably be less fun if it cared more about quality.
Facebook's product is a website, so it can fix things quickly. It has a process which permits rapid deployment of new code, and rapid rollback of buggy changes. This reduces the cost of recovering from bugs.
Facebook's product has a lot of momentum and lock-in. The barrier for users or businesses to move off Facebook is very high. This gives Facebook a wider margin of error to ship glitchy software. If Google was broken for a day, you'd probably go to Bing and might not come back. If your iPhone pissed you off all the time, you'd probably buy an Android when you're faced with the decision in a year or two. If you can't order something on Amazon, you can order it from somewhere else. If Facebook is broken, you keep coming back until it works again.