{"id":486,"date":"2017-05-25T13:00:10","date_gmt":"2017-05-25T17:00:10","guid":{"rendered":"http:\/\/blog.mozilla.org\/nfroyd\/?p=486"},"modified":"2017-05-25T13:00:10","modified_gmt":"2017-05-25T17:00:10","slug":"applying-amazons-lessons-to-mozilla-part-1","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/nfroyd\/2017\/05\/25\/applying-amazons-lessons-to-mozilla-part-1\/","title":{"rendered":"applying amazon&#8217;s lessons to mozilla (part 1)"},"content":{"rendered":"<p>Several days ago, somebody pointed me at <a href=\"https:\/\/techcrunch.com\/2017\/05\/14\/why-amazon-is-eating-the-world\/\">Why Amazon is eating the world<\/a> and the key idea has been rolling around in my head ever since:<\/p>\n<blockquote><p>[The reason that Amazon&#8217;s position is defensible is] that each piece of Amazon is being built with a service-oriented architecture, and Amazon is using that architecture to successively turn every single piece of the company into a separate platform \u2014 and thus opening each piece to outside competition.<\/p>\n<p>The most obvious example of Amazon\u2019s [service-oriented architecture] structure is Amazon Web Services (Steve Yegge wrote <a href=\"https:\/\/plus.google.com\/+RipRowan\/posts\/eVeouesvaVX\">a great rant<\/a> about the beginnings of this back in 2011). Because of the timing of Amazon\u2019s unparalleled scaling \u2014 hypergrowth in the early 2000s, before enterprise-class SaaS was widely available \u2014 Amazon had to build their own technology infrastructure. The financial genius of turning this infrastructure into an external product (AWS) has been well-covered \u2014 the windfalls have been enormous, to the tune of a $14 billion annual run rate. But the revenue bonanza is a footnote compared to the overlooked organizational insight that Amazon discovered: By carving out an operational piece of the company as a platform, they could future-proof the company against inefficiency and technological stagnation.<\/p>\n<p>&#8230;Amazon has replaced useless, time-intensive bureaucracy like internal surveys and audits with a feedback loop that generates cash when it works \u2014 and quickly identifies problems when it doesn\u2019t. They say that money earned is a reasonable approximation of the value you\u2019re creating for the world, and Amazon has figured out a way to measure its own value in dozens of previously invisible areas.<\/p><\/blockquote>\n<p>Open source is the analogue of this strategy into the world of software.\u00a0 You have some small collection of code that you think would be useful to the wider world, so you host your own repository or post it on Github\/Bitbucket\/etc.\u00a0 You make an announcement in a couple of different venues where you expect to find interested people.\u00a0 People start using it, express appreciation for what you&#8217;ve done, and begin to generate ideas on how it could be made better, filing bug reports and sending you patches.\u00a0 Ideally, all of this turns into a virtuous cycle of making your internal code better as well as providing a useful service to external contributors.\u00a0 The point of the above article is that Amazon has applied an open-source-like strategy to its business relentlessly, and it&#8217;s paid off handsomely.<\/p>\n<p>Google is probably the best (unintentional?) practitioner of this strategy, exporting countless packages of software, such as <a href=\"https:\/\/github.com\/google\/googletest\">GTest<\/a>, <a href=\"https:\/\/golang.org\/\">Go<\/a>, and <a href=\"https:\/\/www.tensorflow.org\/\">TensorFlow<\/a>, not to mention tools like <a href=\"https:\/\/github.com\/google\/sanitizers\">their collection of sanitizers<\/a>. They also do software-related exports like their <a href=\"https:\/\/google.github.io\/styleguide\/cppguide.html\">C++ style guide<\/a>. Facebook opens up in-house-developed components with <a href=\"https:\/\/github.com\/facebook\/react\">React<\/a>, <a href=\"https:\/\/github.com\/facebook\/hhvm\">HHVM<\/a>, and <a href=\"https:\/\/github.com\/facebook\/buck\">Buck<\/a>, among others. Microsoft has been charging into this arena in the past couple of years, with examples like <a href=\"https:\/\/github.com\/Microsoft\/vscode\">Visual Studio Code<\/a>, <a href=\"https:\/\/github.com\/Microsoft\/TypeScript\">TypeScript<\/a>, and <a href=\"https:\/\/github.com\/Microsoft\/ChakraCore\">ChakraCore<\/a>.\u00a0 Apple doesn&#8217;t really play the open source game; their <a href=\"https:\/\/opensource.apple.com\/\">opensource site<\/a> and available software is practically the definition of &#8220;throwing code over the wall&#8221;, even if having access to the source is useful in a lot of cases.\u00a0 To the best of my knowledge, Amazon doesn&#8217;t really play in this space either.\u00a0 I could also list examples of exported code from other smaller but still influential technology companies: Github, Dropbox, Twitter, and so forth, as well as companies that aren&#8217;t traditional technology companies, but have still invested in open-sourcing some of their software.<\/p>\n<p>Whither Mozilla in the above list?\u00a0 That is an excellent question.\u00a0 I think in many cases, we haven&#8217;t tried, and in the Firefox-related cases where we tried, we decided (incorrectly, judging through the above lens) that the risks of the open source approach weren&#8217;t worth it.\u00a0 Two recent cases where we have tried exporting software and succeeded wildly have been asm.js\/WebAssembly and Rust, and it&#8217;d be worth considering how to translate those successes into Firefox-related ones.\u00a0 I&#8217;d like to make a follow-up post exploring some of those ideas soon.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Several days ago, somebody pointed me at Why Amazon is eating the world and the key idea has been rolling around in my head ever since: [The reason that Amazon&#8217;s position is defensible is] that each piece of Amazon is being built with a service-oriented architecture, and Amazon is using that architecture to successively turn [&hellip;]<\/p>\n","protected":false},"author":320,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/posts\/486"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/users\/320"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/comments?post=486"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/posts\/486\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/media?parent=486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/categories?post=486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/nfroyd\/wp-json\/wp\/v2\/tags?post=486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}