7 ms·
I'm learning a lot about the early company culture of Facebook. And to an extent, also about how big tech companies work in general. Just the past 10 minutes,
by mettamage 7y ago
I'm learning a lot about the early company culture of Facebook. And to an extent, also about how big tech companies work in general.
Just the past 10 minutes, I've learned that development speed is key, because it is basically their KPI for execution. I don't fully agree with that, but I don't think it's a bad heuristic. Speed is a necessary condition to survive from the competition. I think Paul Graham greatly exemplified that in his essays, you need to be one of the fastest or at least not be outpaced a lot by the #1.
I think there's also a lot of interesting startup advice in these type of documents. The advice may or may not be ethical, but there may be info in there to understand why Facebook became so big. I wouldn't want to do something unethical, but it's handy to know what unethical things work and why because maybe one could distill successful principles from it that are ethical.
- brudgers 7y agoThe classic is The AutoDesk Files. It has the advantage of being well organized, curated, and correlated with 35 years of operating history. https://www.fourmilab.ch/autofile/www/autofile.html https://www.fourmilab.ch/autofile/www/autofile.html
- mettamage 7y agoHaha, wow. I'm dumbfounded. This is why I love HN. I wonder when I'll ever have time to read it.
- jimmydddd 7y agoHe's got a lot of other interesting things over at that site (fourmilab.ch). Well worth poking around for 30 minutes or so.
- jhallenworld 7y ago"Coming to Terms with the 8086" :-) https://www.fourmilab.ch/autofile/www/section2_10_8.html#SECTION00108000000000000000 https://www.fourmilab.ch/autofile/www/section2_10_8.html#SEC...
- dreamcompiler 7y agoIt's interesting why they chose Lisp as their scripting language. Autocad is arguably the most widespread Lisp implementation in existence. https://www.fourmilab.ch/autofile/www/chapter2_35.html#SECTION00350000000000000000 https://www.fourmilab.ch/autofile/www/chapter2_35.html#SECTI...
- kragen 7y agoThat was probably true at some point but now there Emacs is a lot more widespread than AutoCAD.
- dreamcompiler 7y agoI wondered about that. Are there more programmers or Autocad users? You're probably right; Emacs is free and that counts for a lot.
- kragen 7y agoI think that in the US there are about three million programmers, of whom maybe 10% use Emacs, or about 300,000. There are about 110,000 NCARB-registered architects in the US, and presumably the number of architects is similar to the number of current AutoCAD users (of whom most of each group belong to the other.) But wait! The US Census Bureau estimates the number of US architects at 141,000. So I thought at first that the answer was obvious but now I don't anymore.
- durbin 7y agoA lot more professions use AutoCAD than just Architects. Mechanical Engineers, Structural Engineers, Electrical Engineers, Aerospace Engineers, etc.
- kragen 7y agoI think mechanical engineers mostly use 3-D CAD systems by now — SolidWorks, Autodesk Fusion 360, or something, not AutoCAD. EEs don't use AutoCAD; they use EDA systems ranging from schematic capture and PCB layout (like KiCAD) to HDL synthesis systems, and they use SPICE, and they write a lot of C++. AutoCAD is useless for any of those things. I don't know what bridge builders and airframe designers use nowadays, but given the importance of 3D in those realms and your batting average on the things I do know about, I'm guessing they don't use AutoCAD either. I'm interested to hear what the truth is, though.
- DonHopkins 7y agohttps://www.fourmilab.ch/autofile/www/section2_44_3.html#SECTION00443000000000000000 https://www.fourmilab.ch/autofile/www/section2_44_3.html#SEC... What Does Simulation Have To Do With It? Alan Kay, delivering the keynote speech at the Second West Coast Computer Faire in 1978 said, ``we decided to focus on simulation in Smalltalk, because that's the only really interesting thing to do with a computer''. When I heard this, I was aghast: ``Simulation'', I thought, ``why in the world would people want to use personal computers to model throughput in a machine shop, or to calculate the number of toilets[Footnote] in a football stadium''. Certainly any rational person wanted a personal computer to do real computer science on it: to write operating systems and compilers so that others could use them to write programs, and...well, I hadn't thought that out completely. ``Simulation'' had come to mean (at least in the computer science lexicon), a specific kind of modeling of systems, usually done in an odd simulation language such as Simscript or Simula. What I only realised years later was that what Alan Kay was talking about something far more grandiose when he said ``simulation'': getting the whole wide world into that itty-bitty can: the computer. And yet, ``simulation'' in the limited computer science sense has already had a great and often little-appreciated impact on computer science as a whole. In his speech, Alan Kay exhorted people to look closely at Simula-67 for the direction of the future. Simula-67 included (in 1967!) classes, object orientation, multiple communicating processes, in fact close to a laundry list of what is currently considered the way to approach complex problems. So simulation in the small has already influenced the mainstream, and I believe that simulation writ large will have an impact many times greater.
- jacquesm 7y agoWe've done great at learning all the lessons from the LISPs, the PROLOGs and the ALGOLs. But we have not even begun to adopt the lessons from Simula and it's successor Smalltalk (ruby barely scratches the surface). When we do it will be a game changer.
- mettamage 7y agoI remember there was this blog post about making iphone apps with Smalltalk or something like that. If I'd ever want to learn Smalltalk I'd want to start there. It's hard to prioritize though, there's so much I want to learn. But since I already bought The Little Schemer to just have something lying around to seduce me to learn more, I wonder... What's a good book for Simula or Smalltalk?
- tracer4201 7y ago>I've learned that development speed is key Might be so at Facebook but I wouldn’t generalize this to all but tech companies. Building stuff is relatively cheap compared to the on going maintenance and support costs. Over indexing on speed above all else would certainly not help your career in my org. Your manager would be having a chat with you and most of your work would get dinged in code reviews and design reviews.
- jonas21 7y agoThe documents are from the early days of Facebook. I'd guess that your company probably optimized for speed too when it was just getting started.
- hos234 7y agoThis stuff is easy to generalize and misunderstand.
- FireBeyond 7y ago2013 and 2014 are NOT the "early days of Facebook". Hell, The Social Network movie had come out four years prior...
- netcan 7y agoSpeed is not just important because it's important, it's one of those traits that exist on a wide spectrum. The fastest are a lot faster than the median. Also, startups with their typical minimalism and lack of legacy/technical debt can be fast, so it's worth capitalising on that as a comparative advantahe. Fast also comes with other good things, often. Flexible, cheap, creative...
- Jach 7y agoYeah, speed beyond just speedy coding should be close to the #1 value for the company because it not only comes with other good things but it simply enables you to execute well on other values. It's fine to bloviate on customer trust as the #1 value, but if speed isn't taken into account then you get into frequent issues where problems come up (e.g. an outage) and while a fix or good rollback point is identified relatively quickly, it takes hours or days to actually deploy it. Those hours are letting your customers down further (and likely costing you money or even their business come contract/subscription renewal). A focus on speed for those systems would do wonders to mitigating that and improving on customer trust.
- dmitriid 7y agoSpeed comes with the cost of creating enormous mountains of technical debt because you always cut corners to be fast. You may be flexible/cheap/creative at the start, but sooner than later this bites you: you cannot be fast or flexible because you’ve cut too many corners. Because you never anticipated certain use cases. Because you never had the time to fix that one/ten/a thousand bugs and workarounds. Because you never built the tools for internal users. Because... One of the reasons FAANG and others like Spotify require tens of thousands of engineers is not necessarily the complexity of the products. It’s the emergent complexity of the systems that were developed fast and cheap, and now need to be maintained and forced into new shapes and use cases.
- 0xFACEFEED 7y agoThat’s the idea. Get big enough and you can afford to hire a small country to maintain the tech debt (and in many cases rewrite certain parts).
- blotter_paper 7y ago> The advice may or may not be ethical, but there may be info in there to understand why Facebook became so big. I wouldn't want to do something unethical, but it's handy to know what unethical things work and why because maybe one could distill successful principles from it that are ethical. What if you could make a company that you viewed as more ethical than the existing competition but to be competitive you would need to do some unethical things that the existing competition does, and without making those concessions your best projections show that your startup will go bankrupt before displacing the incumbent player? Do you let perfection become the enemy of improvement and stick with your ethical means-over-ends instincts, or get your hands dirty creating the sort of company you yourself complain about (albeit less than you complained about the incumbent player)?
- mettamage 7y agoThis is almost exactly the premise of the McDonalds game [1]. [1] https://molleindustria.org/mcdonalds/ https://molleindustria.org/mcdonalds/
- jammygit 7y agoIf you can’t do it ethically, why on earth are you trying to replace the incumbent at all? Some personal power trip?
- mettamage 7y agoPossible, but it can also be that you don't have a better business idea and can't get work anywhere else. Getting a job as a developer can be tough in 5% of the circumstances. I've read a quite recent account of one, and don't forget that the founder of WhatsApp had a similar situation. All I know is that people don't respond well when they feel backed in a corner. There are so many reasons that in a few cases are true, but anyways, this is one of them. And if you think they don't exist, I'm pretty sure they do.
- blotter_paper 7y agoLet's say facebook sells customer data and eats babies, and you're opposed to both of those things. You come to the conclusion that you can outcompete facebook without eating babies, but only if you're willing to sell customer data in the same way facebook currently does. You're trying to replace the incumbent so that less babies are eaten (or certain speech isn't censored, or certain speech is censored, or <insert any ethical cause besides the one you're compromising on>). It's that when you hold more than one value, they are sometimes at odds. If you try to be the most ethical in every regard you'll most likely be outcompeted, in which case you won't even be making an improvement in the current state of unethical behavior. Even finding tradeoffs that improve average ethics while also being competitive is difficult, since others are playing the same game without your ethical objections to certain practices.
- jammygit 7y agoI think that people should value speed for a different reason. The real value of rushing things, imho, is for learning: you learn how to build it and also how people react via this focus on concretes. That is what generates the speed, not the literally fast development cycles in and of themselves
- just_myles 7y agoI think iterating quickly is important for startups. However, long term focus should be on staying ahead/keeping pace with the competition.
- gisely 7y agoNow the Sith May have done some unethical things, but I think we should study what they did that worked and use it to help the rebels become the new empire.
- danShumway 7y agoYes? If you want to be ethical, you are already fighting at a disadvantage. People who are effectively ethical, who are able to act on their principles without needing to compromise, are often the people who are ruthlessly pragmatic about what does and doesn't work. If the Sith start fighting with double-sided lightsabers and killing 50% more of your troops, maybe the Rebels should either start building a few double-sided lightsabers themselves, or come up with some kind of tangible defense against that strategy. Of course, when you get to Sith strategies like, "choking out rebellious admirals really helps", you can't use that one without being unethical. But knowing about the strategy still helps, because it allows you respond to it. The reason a successful ethical business can afford not to compromise when things get tough is because they are better at everything else, and you get better at everything else by learning and studying.
- say_it_as_it_is 7y agoWhat section(s) of the documents lead you to this conclusion? keyword searches aren't hitting for me..