SteveY對Amazon和Google平臺(tái)的長篇大論
Steve Yegge, Amazon的前員工,現(xiàn)任Google員工,其本來想在Google+上和Google的員工討論一些關(guān)于平臺(tái)的東西,結(jié)果不小心把圈子設(shè)成了Public,結(jié)果這篇文章就公開給了全世界,引起了劇烈的反應(yīng)。發(fā)布后很快他就馬上把這篇文章刪了,不過,互聯(lián)網(wǎng)上早備份了下來——SteveY’s Google Platforms Rant。后來,Steve在其Google+上作了一些解釋,大體是說他喝多了,而且又是在凌晨,所以大腦不清,文章中的觀點(diǎn)很主觀,極端且不完整,還有Google的PR對他很好,等等,等等 。
幾個(gè)星期前看到時(shí)就一直都想翻譯一下這篇文章,不過因?yàn)樽罱虑樘?,文章又很長,所以現(xiàn)在才翻譯完成,翻譯的不好,還請大家指正。
導(dǎo)讀
在你閱讀正文以前,我想說明幾點(diǎn),希望你注意一下:
- Steve這個(gè)人非常喜歡寫長篇大論的東西。而且比較喜歡辛辣調(diào)侃和惡搞的文風(fēng),這點(diǎn)大家要注意!
- 文中先“罵”Amazon公司,再通過“罵”Amazon的創(chuàng)始人貝索斯Bezos并烘托出他的的悟性和雄心,最后教育了一下Google。
- 我把文章分成了三個(gè)部分,這樣方便大家閱讀和討論。第一部分只是個(gè)人情緒化的抱怨,第二部分是說Amazon的成長,第三部分是教育Google,我覺得第二部和第三部分是重點(diǎn)。
- 對于我們來說,我們應(yīng)該獲取Steve那些關(guān)于平臺(tái)(Platform)相關(guān)的那些有價(jià)值的觀點(diǎn)。尤其是他說的Amazon如何進(jìn)化成一個(gè)平臺(tái)性的公司,以及闡述Google應(yīng)該怎么做的那些觀點(diǎn)。
- 關(guān)于對Amazon的那些指責(zé),我想說,6年,對于一個(gè)世界級(jí)的互聯(lián)網(wǎng)公司,已經(jīng)很不一樣了。
正文
第一部分
我曾在Amazon工作了六年半,現(xiàn)在,我在Google的日子也這么長了。對于這兩家公司,有一件事總是縈繞關(guān)我——這種感覺一天比一天強(qiáng)烈──那就是,Amazon每件事都做錯(cuò)了,而Google每件事都做對了。當(dāng)然啦,這是很籠統(tǒng)的話,但卻是驚人的準(zhǔn)確,相當(dāng)?shù)寞偪癜?。大概有一百甚至兩百種不同的地方可以讓我們?nèi)ケ容^這兩個(gè)公司,而Google可能在每一項(xiàng)都能勝出,如果我記的沒錯(cuò),除了其中3項(xiàng)以外。因?yàn)椋以秒娮颖砀癜堰@些項(xiàng)都列出來了,只是法務(wù)部門不會(huì)讓我給任何人看,即使人事招募部門很喜歡這個(gè)報(bào)表。
這里,讓我先給你個(gè)例子讓你稍微體會(huì)一下:Amazon的人事雇用流程有根本上的缺陷,因?yàn)楦鱾€(gè)團(tuán)隊(duì)各招各的人,以至于,各團(tuán)隊(duì)之間的招聘標(biāo)準(zhǔn)相當(dāng)?shù)牟灰恢滦裕词顾麄兺ㄟ^各種努力來統(tǒng)一標(biāo)準(zhǔn),但是實(shí)際操作上卻是一團(tuán)糟;他們沒有真正的SRE(陳皓注:Site Reliability Engineer ),工程師們什么事都要做(陳皓注:SDE – Someone Do Everything)、幾乎沒時(shí)間編碼。當(dāng)然,不同的部門有不同的情形,不過,這取決于你的運(yùn)氣。他們不搞慈善,也不幫扶貧困人群,也不搞社區(qū)貢獻(xiàn),或是其它相似的活動(dòng)。在那里,他們從來不談這些,或許只有在說笑話的時(shí)候才會(huì)提到。他們的辦公環(huán)境是個(gè)灰塵及污跡四處的像農(nóng)場一樣的隔間,他們在公共區(qū)域連一分錢裝修的都不會(huì)花,而且,他們的薪水和福利相當(dāng)差,只是近來與Google和Facebook競爭人才,這個(gè)差距才變得非常地小。不過,他們沒有我們有的津貼或額外獎(jiǎng)金——他們只是給你錄用信上的那個(gè)數(shù)字,就這么多。他們的程序代碼完全就是災(zāi)難,無論什么都沒有任何的工程標(biāo)準(zhǔn),除了各別團(tuán)隊(duì)有一些。
公平起見,他們的確有套非常非常不錯(cuò)的版本控管系統(tǒng),而這是我們(Google)需要盡力趕上他們的地方,他們還有一個(gè)漂亮的發(fā)布/訂閱系統(tǒng),我們也沒有相對應(yīng)的東西。不過,就大體而言,他們有的不過是一堆蹩腳的工具,用關(guān)系數(shù)據(jù)庫來讀取或?qū)懭霠顟B(tài)機(jī)里的信息中罷了。我們不應(yīng)該這么搞就算這樣做是可以。
這就是我所所說的那3件事中的兩件事Amazon比Google強(qiáng)的,那就是的他們的發(fā)布/訂閱系統(tǒng)以及版本控制系統(tǒng)。
我猜你也許會(huì)為他們爭辯到——他們要更快更早地推出服務(wù)并通過狂熱地迭代來不斷地改進(jìn)和完善。他們把服務(wù)發(fā)布的優(yōu)先級(jí)看得比任何事都重,包括工程紀(jì)律或是其它一堆可能會(huì)讓其花時(shí)間的事務(wù)。所以,即使這么做讓他們在市場上有了某種程度的競爭優(yōu)勢,但也造成其他足夠多的問題,總之,這樣的做法算不上是個(gè)漂亮的扣籃。
但是,他們有一件事做的非常非常好,其好到可以把其他政治,理念,技術(shù)上的消耗和混亂和完全彌補(bǔ)回來。
第二部分
Jeff Bezos是個(gè)臭名昭彰的微管理經(jīng)理人,他的微管理都管理到了Amazon零售網(wǎng)站上的每一個(gè)顯示像素。他雇傭了Larry Tesler——Apple的首席科學(xué)家,他可能是全世界最有名也最受尊敬的人機(jī)交互接口專家,然而,Bezos忽略了Larry三年來提出的每一個(gè)建議,直到Larry最后——明智地——終于離開了公司。Larry本應(yīng)做一些大型可用性(Usability)研究,并可以系統(tǒng)地了解那個(gè)根本就沒有人能夠搞懂、使用那該死的網(wǎng)站,可是,Bezos對于那些像素不放手,這些頁面上的那幾百萬個(gè)顯示像素就像是他的孩子一樣。所以,他的這些孩子還留著,而Larry沒有。
當(dāng)然,微管理不是第3項(xiàng)Amazon做的比我們好的事。我的意思是,沒錯(cuò),他們微控管理做地非常地好,但我不會(huì)把這項(xiàng)列在他們的強(qiáng)項(xiàng)清單上。我這樣說只不過是為了我下文做鋪墊,幫助你了解我后面要說的事兒。我們現(xiàn)在要說的這個(gè)人,是在多個(gè)嚴(yán)肅的公開場合說要來Amazon工作就應(yīng)該付他錢才對的人。當(dāng)有人跟他意見不同時(shí),他會(huì)遞出寫有他名字的黃色即時(shí)貼以提醒那個(gè)人“誰是公司的老大”。這家伙是……,Steve Jobs,我猜。除了沒有品味和設(shè)計(jì)能力。千萬別誤解我,Bezos是個(gè)絕頂聰明的人,只不過他把那些正常的管控搞得像嗑了藥的嬉皮士一樣罷了。
所以,有一天,Jeff Bezos下了一份命令。當(dāng)然,他總是這么干,這些命令對人們來說就像用橡皮槌敲擊螞蟻一樣。這個(gè)命令大概是2002年,我想誤差應(yīng)該是在正負(fù)1年內(nèi) —— 這個(gè)命令發(fā)布的范圍非常地廣,設(shè)想很大,讓人眼珠子鼓出來的那種,這種驚訝程度和其他的命令相比,就好像突然收到獎(jiǎng)金一樣。
這份大命令大概有如下幾個(gè)要點(diǎn):(陳皓注:這里是本篇文章的要點(diǎn)!如果這真是Bezos發(fā)出來的,那么太贊了,Bezos完全就是一個(gè)系統(tǒng)架構(gòu)大師啊,那可是2002年左右啊。作者調(diào)侃Bezos完全是正話反說?。?/p>
- 1) 所有團(tuán)隊(duì)的程序模塊都要以通過Service Interface 方式將其數(shù)據(jù)與功能開放出來。(陳皓注:Service Interface也就是Web Service)
- 2) 團(tuán)隊(duì)間的程序模塊的信息通信,都要通過這些接口。
- 3) 除此之外沒有其它的通信方式。其他形式一概不允許:不能使用直接鏈結(jié)程序、不能直接讀取其他團(tuán)隊(duì)的數(shù)據(jù)庫、不能使用共享內(nèi)存模式、不能使用別人模塊的后門、等等,等等,唯一允許的通信方式只能是能過call Service Interface。
- 4) 任何技術(shù)都可以使用。比如:HTTP、Corba、Pubsub、自定義的網(wǎng)絡(luò)協(xié)議、等等,都可以,Bezos不管這些。(陳皓注:Bezos不是微控經(jīng)理嗎?呵呵。)
- 5) 所有的Service Interface,毫無例外,都必須從骨子里到表面都要設(shè)計(jì)成能對外界開放的。也就是說,團(tuán)隊(duì)必須做好規(guī)劃與設(shè)計(jì),以便把接口開放給全世界的程序員,沒有例外。
- 6) 不這樣的做的人會(huì)被炒魷魚。
- 7) 謝謝,祝你有個(gè)愉快的一天!
哈哈!你們這群150位前Amazon員工,當(dāng)然能馬上看出第7點(diǎn)是我開玩笑加上的,因?yàn)锽ezos絕不會(huì)關(guān)心你的每一天。
不過第6點(diǎn)是很真實(shí)的,于是,所以人們都去工作。Bezos并派出了幾位首席牛頭犬來監(jiān)督并確保進(jìn)度,領(lǐng)頭的是和熊一樣大的牛頭犬:Rick Dalzell,Rick是以前是陸軍突擊隊(duì)隊(duì)員,西點(diǎn)軍校畢業(yè)生,拳擊手,和沃爾瑪?shù)氖紫靶坦?/ CIO,而且他也是個(gè)高大、和藹、令人敬畏的人,還是經(jīng)常使用”hardened interface”詞的人,Rick 本來的走路和說話都比較hardened interface,所以不用多說,每個(gè)人都得干 出有重大的進(jìn)展,這樣Rick才能看得見。
在接下來的幾年,Amazon內(nèi)部轉(zhuǎn)變成面向服務(wù)架構(gòu)SOA(Service-Oriented Architecture),在這華麗轉(zhuǎn)身的過程中,他們學(xué)到了相當(dāng)巨大的東西。我在的那個(gè)時(shí)候,世界上就有很多很多的關(guān)于SOA的學(xué)術(shù)文檔,但在Amazon的那種超大規(guī)模的面前,這些東西就好像告訴印第安納瓊斯(陳皓注:電影奪寶奇兵男主角)過馬路前要先看看兩旁有無來車一樣沒用,Amazon的研發(fā)工程師們在這個(gè)過程中有了很多很多的發(fā)現(xiàn)。下面只是他們發(fā)現(xiàn)中的滄海一粟:
- pager escalation(陳皓注:生產(chǎn)線上問題的尋呼系統(tǒng))變得比較困難,因?yàn)閠icket可能會(huì)轉(zhuǎn)過來轉(zhuǎn)過去(陳皓注:ticket就是處理問題的工單),只到轉(zhuǎn)了20次,都找到真正能解決問題的團(tuán)隊(duì)和人。如果每一個(gè)呼叫都花去團(tuán)隊(duì)的15分鐘的響應(yīng)時(shí)間,那在找到真正的團(tuán)隊(duì)之前幾小時(shí)就過去了,除非,你建造出很多很多的腳手架,測量標(biāo)準(zhǔn)和報(bào)告。
- 每一個(gè)和你的相關(guān)團(tuán)隊(duì)突然間都可能成為一個(gè)潛在性的DOS攻擊者。沒人可以讓事情有進(jìn)展,直到在每一個(gè)Service里放上配額(quota)與節(jié)流閥(throttling)的機(jī)制。
- 監(jiān)控與QA是被統(tǒng)一了。如果你不進(jìn)行一個(gè)大規(guī)模的SOA,你就不會(huì)這么去想。但是,等到你的Service說,“是的,我還好!”,情況可能是,服務(wù)器里唯一能正常運(yùn)作的功能就是一個(gè)快樂的機(jī)器聲音在呼叫你:“我很好,收到,收到”。為了要確認(rèn)整個(gè)服務(wù)能正常運(yùn)作,你需要對每一個(gè)部分都去Call一下。這個(gè)問題會(huì)以遞歸的形式地出現(xiàn),直到你的監(jiān)控系統(tǒng)能夠全面性地系統(tǒng)地檢查所有的Services和數(shù)據(jù),此時(shí),監(jiān)控系統(tǒng)就跟自動(dòng)化測試QA沒什么兩樣了,所以兩者完美的統(tǒng)一了。
- 如果你有上百個(gè)Services,而且你的程序只能通過由這些Services來跟其他團(tuán)隊(duì)的程序做溝通,那么,沒有一套Service發(fā)現(xiàn)機(jī)制的話,你就不能找到這些Service。所以,你得先有一套Service的注冊機(jī)制,這也是一個(gè)Service。所以,Amazon有一套全體適用的Service注冊機(jī)制,以例可以通過反射機(jī)制來找到Service,并知道Service的API,以及是否可用,在哪兒。
- 調(diào)試其他人的代碼以調(diào)查問題變得非常的難,幾乎都不可能,除非有一套全面性的標(biāo)準(zhǔn)的方式,他可以在可被調(diào)試的沙盒里運(yùn)行所有的Services。
當(dāng)我在2005年中期離開Amazon加入Google時(shí),這個(gè)努力進(jìn)化的過程還在進(jìn)行時(shí)中,但那時(shí)已經(jīng)相當(dāng)?shù)南冗M(jìn)了。從Bezos頒布法令的時(shí)間到我離開的時(shí)候,Amazon已經(jīng)把文化轉(zhuǎn)變成了“一切Service第一”為系統(tǒng)架構(gòu)的公司,今天,這已經(jīng)成為他們進(jìn)行所有設(shè)計(jì)時(shí)的基礎(chǔ),包括那些絕不會(huì)被外界所知的僅在內(nèi)部使用的功能。
那時(shí),如果沒有被解雇的的恐懼他們一定不會(huì)去做。我是說,他們?nèi)匀慌卤唤夤?,這基本上是那兒每天的生活,為那恐怖的海盜頭子Bezos工作。不過,他們這么做的確是因?yàn)樗麄円呀?jīng)相信Service這就是正確的方向。他們對于SOA的優(yōu)點(diǎn)和缺點(diǎn)沒有疑問,某些缺點(diǎn)還很大。但總的來說,這是正確的,因?yàn)?,SOA驅(qū)動(dòng)出來的設(shè)計(jì)會(huì)產(chǎn)生出平臺(tái)(Platform)。
是的,這就是Bezos的法令要達(dá)成的目標(biāo)。他以前(現(xiàn)在也是)一點(diǎn)不關(guān)心各團(tuán)隊(duì)是否好,也不關(guān)心他們使用什么樣的技術(shù),實(shí)際也不去管他們?nèi)绻麆?dòng)作他們的業(yè)務(wù),除非團(tuán)隊(duì)開始把事搞砸。但是,Bezos比絕大多數(shù)的亞馬遜人都很早很早就領(lǐng)悟到,Amazon必須成為一個(gè)平臺(tái)。
如果是你,你會(huì)想到要把一個(gè)在線賣書的網(wǎng)站設(shè)計(jì)成為一個(gè)有擴(kuò)展性,可程序化的平臺(tái)?你真的會(huì)這樣想嗎?
嗯,第一件Bezos領(lǐng)悟到的大事是,為了銷售書籍和各種商品需要的基礎(chǔ)架構(gòu),這個(gè)基礎(chǔ)架構(gòu)可以被轉(zhuǎn)變成為絕佳計(jì)算平臺(tái)(Computing Platform)。所以,現(xiàn)在他們有了Amazon Elastic Compute Cloud(亞馬遜彈性運(yùn)算云平臺(tái)EC2),Amazon Elastic MapReduce,Amazon Relational Database Service(亞馬遜關(guān)系數(shù)據(jù)庫服務(wù)),以及其他可到AWS aws.amazon.com查得到的一堆Service。這些服務(wù)是某些相當(dāng)成功的公司的后臺(tái)架構(gòu),比如 我個(gè)人喜歡的 reddit 是這一堆成功公司的其中一個(gè)。
另一大領(lǐng)悟是,他知道他們不可能永遠(yuǎn)都創(chuàng)造出對的東西。我認(rèn)為,當(dāng)Larry Tesler說他媽媽完全搞不懂怎么使用那個(gè)該死的網(wǎng)站時(shí),Bezos的某根筋被觸動(dòng)了,當(dāng)然,我也不清楚到底是誰家母親,這無關(guān)緊要,因?yàn)闆]有人的母親能夠會(huì)用那個(gè)該死的網(wǎng)站。事實(shí)上,連我這個(gè)在那工作超過5年的人都覺得Amazon網(wǎng)站的接口令人膽戰(zhàn)驚心。
我并不是很確定Bezos是如何領(lǐng)悟到的——領(lǐng)悟到他不能創(chuàng)造 出一個(gè)產(chǎn)品能適用于所有的人。不過,怎么來的這不重要,重要的是他的確領(lǐng)悟了。這種事有一個(gè)正式的術(shù)語,叫Accessibility,這是計(jì)算機(jī)世界中最最重要的事情了。
最!重!要!的!事!
如果你在心里面在想“哼?你是說,像盲人和聾人那種Accessibility嗎?”,那么,你不是唯一這樣想的人,因?yàn)槲乙呀?jīng)知道有很多很多像你這樣的人:這種東西對你們這種人來說是不可能有正確的Accessibility,所以這事你還不能理解。當(dāng)然,不能理解也不是你的錯(cuò),就像眼盲,耳聾,或是其他行動(dòng)不便的殘疾人,這些也不是他們的錯(cuò)。當(dāng)Software——或ideal-ware——如果因?yàn)槟承┰虿荒鼙淮嫒』蚴褂茫敲?,這就是軟件或是那想法的錯(cuò)了。這就是Accessibility failure。
就如同生命中那些重大的事一樣, 有一個(gè)邪惡的雙胞胎姊妹,它在幼年都受到父母的溺愛,現(xiàn)在它已經(jīng)成長為同等強(qiáng)大的復(fù)仇女神(是的,Accessibility有不只一個(gè)復(fù)仇女神),這個(gè)復(fù)仇女神叫安全性(Security),他們在一起總是爭執(zhí)不休,冤家一對。
不過,我會(huì)和你爭論Accessibility要比安全性來的重要多了,因?yàn)榱鉇ccessibility就意為著你根本沒有做出產(chǎn)品來,而如果安全性為零,你仍然還是可以有一個(gè)某個(gè)程度上成功的產(chǎn)品,譬如說Playstation Network。
對了,也許你還沒注意到,我其實(shí)可以為這篇文章寫出一整本書,很厚的一本,其中填滿了那家我曾工作過的公司里關(guān)于螞蟻與橡皮槌的事。但是,我可能就永遠(yuǎn)無法發(fā)表這短篇的夸夸其談了,而你也就無法讀到除非我現(xiàn)在開始結(jié)尾。
第三部分
那三件Amazon比Google強(qiáng)的中的最后一件事是,Google很不會(huì)做平臺(tái)(Platform)。我們就不懂什么是平臺(tái)。我們就根本不知道平臺(tái)的內(nèi)涵。你們其中一些人明白,但是你們是少數(shù)派。在Google過去這六年來,越清楚這一點(diǎn)就越讓我痛苦。我曾有一線希望,來自Microsoft和Amazon,以及近來Facebook的競爭壓力,會(huì)讓我們?nèi)w人都清醒過來,并開始打造我們公司的Service。不是那種特制的或半生不熟的,而是多少和Amazon的類似的那種:一次到位,真正的,沒有作弊或是欺騙,并且把它放在最高優(yōu)先級(jí)的位置。
但實(shí)際上卻不是,這個(gè)事被放在了好像是第10還是第11位,或是第15位,我不知道,反正是相當(dāng)?shù)?。只有少?shù)幾個(gè)團(tuán)隊(duì)嚴(yán)肅地看待這個(gè)事,但大多數(shù)的團(tuán)隊(duì)不是從沒有思考過這個(gè)事,就是只有一很少的人很鼠目寸光地在看待這個(gè)事。
對大多數(shù)的團(tuán)隊(duì)來說,只要是讓他們以提供給別人那種可程序化的方式存取他們的數(shù)據(jù)與運(yùn)算的方式來開發(fā)軟件,就算幾個(gè)小小的粗糙的Service,對他們來說也是翻天覆地。他們大部分人都認(rèn)為他們在做產(chǎn)品,但他們只是在提供那些凄慘粗糙的Service?;厝タ纯辞懊嫖宜械哪切┎糠值腁mazon學(xué)到的東西,然后告訴我,哪一個(gè)粗糙的Service能讓你有超凡脫俗的產(chǎn)品。迄今為止,就我所知,一個(gè)也沒有。就算是這些粗糙的東西很不錯(cuò),不過這就好像要汽車的時(shí)候,你卻只有汽車的零件。
沒有平臺(tái)的產(chǎn)品是沒用的,再精確一點(diǎn),去平臺(tái)化的產(chǎn)品總是被平臺(tái)化的產(chǎn)品所取代。
Google+是我們完全失敗的不懂Platform最明顯的例子,從最高層的管理層(嗨,Larry、Sergey、Eric、Vic,你們好)一直到最最底層的員工(嘿,你)都不懂。我們?nèi)拷y(tǒng)統(tǒng)都不懂。平臺(tái)Platform的黃金守則是Eat Your Own Dogfood(吃你自己的狗食——自己都要用自己的平臺(tái))。Google+這個(gè)平臺(tái)是個(gè)杯具的馬后炮。我們在發(fā)布它的時(shí)候完全沒有任何API。我查了一下,目前也只有少得可憐的API。Google+的一個(gè)團(tuán)隊(duì)的成員在發(fā)布API時(shí)告訴我這個(gè)事,我問:“這是Stalker API(用來偷窺的API)嗎?”,她郁悶地說“是啊”。我的意思是,我那只是個(gè)玩笑話,但是,不,我們提供的唯一的API就是取得某人的信息流,所以,我想我把玩笑開到自己頭上了。
Microsoft知道“狗食守則”至少有20年了。這已經(jīng)成為他們世世代代文化的一部分了。不能是你吃人類的食物而給你的開發(fā)人員們喂狗食。那樣做只會(huì)是為了短期的成功而掠奪了平臺(tái)長期價(jià)值。平臺(tái)就是要你考慮得長遠(yuǎn)。
Google+就像膝跳反射,一種短視的的東西,是基于以為Facebook其偉大產(chǎn)品的成功作出的錯(cuò)誤判斷。但那不是為什么他們能成功的東西。Facebook的成功是因?yàn)樗麄兘⒘艘粋€(gè)可以讓外界在其上上面開發(fā)的產(chǎn)品群。所以對Facebook對每個(gè)人來都不一樣。有些人把全部時(shí)間花在“Mafia Wars”上,有些人則是花在“Farmville”(開心農(nóng)場)。那里還有成百上千個(gè)不同的高質(zhì)量的時(shí)間消耗類的游戲,所以,人們總是可以在那里找到他們想要的。
我們的Google+團(tuán)隊(duì)看了看說:“哎呀,看來我們需要一些游戲,讓我們?nèi)フ乙恍┤藖頌槲覀儗懶┯螒虬?rdquo;。你是否開始看到這樣的的思考有多么不靠譜了嗎?問題在于我們試圖預(yù)測人們想要什么,然后推出產(chǎn)品給他們。
你不能這么做。真的不能。也不可靠。在這個(gè)世上,甚至在整個(gè)計(jì)算機(jī)的歷史上,只有極少數(shù)幾個(gè)人能夠這么干,Steve Jobs是其中一個(gè)。但是我們沒有Steve Jobs。對不起,我們真的沒有。
Larry Tesler有可能說服了Bezos相信他并不是Steve Jobs,但Bezos意識(shí)到他不需要成為Steve Jobs也能提供給所有人好的產(chǎn)品:大家感到容易使用的接口與工作流。Bezos明白他只要有讓第三方開發(fā)人員來做的平臺(tái),這些東西自然就會(huì)有的。
我要向一些人道歉,這些人會(huì)覺得我所說的是再明顯不過的了。是的,的確是巨明顯的。只是我們沒有去做。我們沒有領(lǐng)會(huì)平臺(tái),我們也無法領(lǐng)會(huì)到Accessibility。這兩者本來就是同一件事,因?yàn)槠脚_(tái)會(huì)解決Accessibility。而平臺(tái)就是Accessibility。
- 是的,Microsoft領(lǐng)會(huì)到了。而且你們也像我一樣知道Microsoft他們對這些東西一知半解。那是因?yàn)樗麄兡軌蛄私馄脚_(tái)完全是他們商業(yè)上意外性的副產(chǎn)品,是他們一開始的業(yè)務(wù)就是提供平臺(tái)。所以他們在這個(gè)領(lǐng)域有著三十多年的經(jīng)驗(yàn)。如果你去看看 msdn.com,并多花點(diǎn)時(shí)間瀏覽一下,假設(shè)你以前從沒去看過,你等著被嚇到吧,因?yàn)槟抢锩娴臇|西可是多得不能再多。他們擁有成千成千成千個(gè)API。他們擁有一個(gè)超巨大的平臺(tái)。說實(shí)話,太巨大了,因?yàn)樗麄円哉家磺校辽偎麄冏隽恕?/li>
- Amazon也領(lǐng)會(huì)了到了。Amazon的AWS(aws.amazon.com)相當(dāng)?shù)捏@人。去看看吧,四處點(diǎn)一下。令人羞恥吧。我們今天什么都還沒有。
- 很明顯Apple也領(lǐng)會(huì)到了。他們做些在基礎(chǔ)上不開放的選擇,具體來說是移動(dòng)平臺(tái)。但是他們明白什么是Accessibility,并且他們知道如何燃起第三方開發(fā)團(tuán)體的力量,而且他們吃自己的狗食。你知道嗎?他們的狗食做得很好吃啊。他們的APIs比Microsoft的要干凈不知道多少倍,而且是遠(yuǎn)古的時(shí)候就這樣了。
- Facebook也領(lǐng)會(huì)到了。這正是讓我所擔(dān)心的。這使得我不得我抬起懶惰屁股寫下這些東西。我恨寫B(tài)log。我恨……Plus(指Google Plus)不管怎么稱呼它,反正在Google+上發(fā)表長篇大論,就算這是個(gè)糟糕的地方,但是你還是希望Google能成功.我真希望!我的意思是,F(xiàn)acebook想挖我,而且很容易就去了。但Google是我的家,所以我堅(jiān)持我這個(gè)小小的家庭干涉,就算你不舒服。
等到你為Microsoft與Amazon提供的平臺(tái)感到神奇后,當(dāng)然,我想也你可能會(huì)被Facebook嚇到(我不敢去看,因?yàn)槲也幌胱屛姨趩剩?,讓我們回頭看看 developers.google.com 。是不是有很大的差別?我們的這個(gè)平臺(tái)看起來像是你家小學(xué)五年級(jí)的侄子搞出來的東西一樣——讓一個(gè)小學(xué)五年級(jí)的學(xué)生,試著為一個(gè)強(qiáng)大的的平臺(tái)公司去設(shè)計(jì)平臺(tái),就像像我們問這個(gè)小學(xué)生:“如果這家公司什么資源都有,那你會(huì)做出個(gè)什么東西來?” 一樣。
這里請不要誤解我——我知道一個(gè)事實(shí),dev-rel 團(tuán)隊(duì)為了發(fā)布這些API曾經(jīng)不得不去“搏斗”。據(jù)我所知,這個(gè)團(tuán)隊(duì)很不錯(cuò),因?yàn)樗麄冎朗裁词瞧脚_(tái),并且他們?nèi)缬⑿郯闩暝匾龀鰜?,然而遇到的卻是“平臺(tái)冷漠”的環(huán)境,難聽點(diǎn)還是那種有敵意的環(huán)境。
我只是在直白地描述出一下 developers.google.com 在外人眼里是什么樣子。它看起來很幼稚。Maps APIs在哪呢,老天啊?其中有些東西還是實(shí)驗(yàn)性的項(xiàng)目,我點(diǎn)進(jìn)去看的APIs……他們都毫無價(jià)值。他們很明顯都是些真正的狗食。甚至都稱不上是好的有機(jī)食品。跟我們內(nèi)部APIs比起來,他們?nèi)亢喼本褪秦i屎馬糞。
當(dāng)然,也不要錯(cuò)誤地理解我對Google+的看法。他們還不算是最差的。這是文化氛圍的事。我們現(xiàn)在做的簡單來說就是要進(jìn)行一場戰(zhàn)爭,是一場失敗很多的少數(shù)的平臺(tái)派和那些強(qiáng)大的信心堅(jiān)持的產(chǎn)品派的戰(zhàn)爭。
那些從頭到尾明白理解供外部可程序化的平臺(tái)概念的團(tuán)隊(duì)都是受壓迫的人——Maps跟Docs團(tuán)隊(duì)浮現(xiàn)在我腦海中,而且我也知道GMail是這個(gè)方向的先頭部隊(duì),但是他們很難得到資金注入,因?yàn)檫@不是我們文化的一部分。Maestro的資金完全沒發(fā)和Microsoft Office開發(fā)平臺(tái)的資金相比:就像小毛兔和暴龍相比一樣。Docs團(tuán)隊(duì)知道自己永遠(yuǎn)無法和Office競爭,除非他們能趕上Office的腳本能力,而且他們得不到他們相要的資源。我的意思是我假定他們沒有,現(xiàn)在應(yīng)用的腳只在電子表格中有,而且沒有為API設(shè)置鍵盤快捷鍵。在我看來,這個(gè)團(tuán)隊(duì)完全沒有被重視。
具有諷刺意的是,Wave是個(gè)偉大的平臺(tái),愿他能安靜地長眠。我們需要知道,做一個(gè)平臺(tái)并不會(huì)馬上給帶來成功。平臺(tái)需要?dú)⑹旨?jí)應(yīng)用。Facebook——他們供應(yīng)了的涂鴉墻和朋友關(guān)系網(wǎng)等其他東西——則是Facebook平臺(tái)的殺手級(jí)應(yīng)用。但是,如果你說沒有Facebook平臺(tái),僅有Facebook應(yīng)用也能像今天這樣成功,那么,這會(huì)是一個(gè)非常嚴(yán)重的錯(cuò)誤。
你知道嗎?人們總是在說Google的傲慢自大。我是個(gè)Google人,所以我和你一樣當(dāng)聽到那些話都會(huì)覺得很憤怒。但總體而言,我們并不傲慢。我們大約99%不自大。我在文章開頭時(shí)就寫到——如果你回去看看—— 我是這樣描述Google的“所有的事都做對了”。我們知道人們?yōu)槭裁匆@么說我們自大,因?yàn)槲覀儧]有雇用他們,或是因?yàn)樗麄儗ξ覀兊恼卟凰蚴悄且活惖氖虑?。他們推斷出我們自大是因?yàn)檫@樣會(huì)讓他們心理平衡一些。(陳皓注:作者在這里的反話正說)
但是,當(dāng)我們擺出那種我們知道怎么給用戶設(shè)計(jì)出完美的產(chǎn)品的姿態(tài)時(shí),你最好相信我,我們就是笨蛋。你可以說是自大,天真,或是別的什么,無所謂,但最終的結(jié)果就是我們干的很愚蠢。因?yàn)?,這世界不可能有一個(gè)產(chǎn)品對所有人都是完美的。
你看,我們的瀏覽器居然不能讓人設(shè)定默認(rèn)的字號(hào)。這就是我們對Accessibility的公然冒犯。我的意思是,我總有一天會(huì)老的,我也會(huì)得老花眼,并會(huì)變瞎的。我的意思是我不會(huì)變瞎,但是如果你到了40歲,你的老花眼讓你看不清近的東西。那么,字號(hào)的選擇會(huì)成為生和死的問題:某用戶就會(huì)被完全排除在產(chǎn)品之外。但是Chrome團(tuán)隊(duì)就是這么NB傲慢:他們想要開發(fā)出無需配置的產(chǎn)品,他們對此相當(dāng)自豪,去你TMD是瞎子還聾子,管你是誰,在你剩下的日子每訪問一個(gè)頁面都按一下Ctrl-+吧。
并不僅是他們。是第一個(gè)。問題是,我們是一家“產(chǎn)品”公司,一直一直都是。我們開發(fā)的最成功最有吸引力的產(chǎn)品——搜索引擎,那樣巨大的成功讓我們產(chǎn)生了很多定式和偏見。
Amazon過去也是家產(chǎn)品公司,一道神秘的力量使得Bezos領(lǐng)悟到他們需要平臺(tái)。那道神秘力量來源于,他們被 逐漸蒸發(fā)的市值逼到墻角了,不得不想方設(shè)法突圍出來。但他當(dāng)時(shí)所擁有的只有一群工程師和他們的一堆計(jì)算機(jī)……除非他們能變成印鈔機(jī)……你可以看到他們是怎么搞出來AWS的,而不是像我們Google+一樣事后諸葛亮。
Microsoft從一開始就是個(gè)平臺(tái),所以他們有很多很多的實(shí)踐。
Facebook:我有些沒看透。我不是專家,不過我很肯定他們一開始也是一個(gè)產(chǎn)品,并且成功了很長時(shí)間。所以我不知道他們什么時(shí)候開始轉(zhuǎn)變成為平臺(tái)的。應(yīng)該是很久以前的事了,因?yàn)樗麄円蔀槠脚_(tái)后,Mafia Wars這玩意才會(huì)出現(xiàn)(而Mafia Wars也很老了)。
也許,F(xiàn)acebook只是看一眼我們,就問到:“我們?nèi)绾螕魯oogle?他們少了什么?”
我們面對的問題非常的龐大,因?yàn)槲覀冃枰?jīng)過劇烈的文化轉(zhuǎn)變后,我們才能迎頭趕上。我們沒有內(nèi)部的SOA平臺(tái),所以我們外部也沒有。這就是說,我們整個(gè)公司都“沒有領(lǐng)會(huì)到”:產(chǎn)品經(jīng)理沒有,工程師沒有,產(chǎn)品團(tuán)隊(duì)沒有,沒人領(lǐng)會(huì)到。就算是個(gè)別人有,比如你你有,那也相當(dāng)于沒有,除非我們在生死存亡的時(shí)候。我們不能這樣不斷推出產(chǎn)品,并裝作我們以后會(huì)把這些產(chǎn)品轉(zhuǎn)變成迷人美麗的可擴(kuò)展式的平臺(tái)。我們試過了,不行。
平臺(tái)的黃金守則,“Eat Your Own Dogfood 吃自己的狗食”,換句話說,“先打造出自己使用平臺(tái),然后把它用在所有的地方”。你不能事后再做,那樣做就太困難了——你去問問那些把MS Office平臺(tái)化、把Amazon平臺(tái)化的人。如果你放在后面做,那么你比一開始要花十倍的精力才能做對。你不能作弊,你不能讓內(nèi)部軟件走秘道去取得特定的優(yōu)先權(quán)限,不為什么,你必需從一開始就要解決這個(gè)問題。
我不是說現(xiàn)在做已經(jīng)太遲了,但我們等的越長,我們就會(huì)越接近——“太遲了”。
老實(shí)說,我不知道這篇文章怎么收尾。我今天在這里說得太多了。因?yàn)檫@篇文章花了我6年時(shí)間。請包涵我言語冒犯之處,包涵我可能誤解了一些產(chǎn)品,團(tuán)隊(duì),或某個(gè)人。也許我們真的在開始做了很多平臺(tái)方面的東西,只是我沒看到。我只想說聲對不起。
但是,我們必始在開始時(shí)把事做對!
原文:http://coolshell.cn/articles/5701.html
51CTO編輯注:感謝陳皓的精彩翻譯!SteveY對于平臺(tái)的見解對于所有程序員和產(chǎn)品設(shè)計(jì)來說都是很好的借鑒。