Bezos比軟體工程師更理解API

閱讀時間約 7 分鐘
關於Bezos的「API命令」,這可說是科技史中堪稱是教科書等級的一個大事件。雖然這當然不是新聞,會看科技媒體的應該都有瀏覽過,但我想以自己的角度也深入去思考一輪,輸出跟大家分享。
這是在2002年的事,當時還是Amazon的CEO的Bezos,為了徹底強化在AWS的骨幹系統,不論是在效能上還是在思維上,他下達了這個重要的命令。遵循著Amazon一貫的簡潔明瞭的文件作風,內文很簡單就7點而已:
  1. All teams will henceforth expose their data and functionality through service interfaces.
  2. Teams must communicate with each other through these interfaces.
  3. There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.
  4. It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols — doesn’t matter.
  5. All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.
  6. Anyone who doesn’t do this will be fired.
  7. Thank you; have a nice day!
這7點的翻譯本身不是重點,真正的重點是Bezos想"改造"Amazon體質的那些思維。

去除「窗口」,打破孤島,強迫協作

API是一種具「疊加性」的溝通方式,和我們認為方便的「一站式」服務有很大的不同。我們要取得其他單位的服務,若只是找到窗口,簡單說一聲要什麼資料或服務,剩下的"運算"就都得由這個窗口執行。
但API通常都只是提供一些基礎的功能而已,用戶想要什麼資料,想要什麼服務,就得靠這些基礎的「零件」自己打造。雖然對不習慣,沒經驗的用戶,會需要一段時間學習及開發,但一回生二回熟,其實學習曲線也不算高,很快就能串起自己要的"功能"。
由於不能再透過其他的方式交換資料及服務,所有單位就必須提供出足夠的API介面。不管是工程單位,財會單位還是業務單位,沒有一個單位可以置身事外,可以要求別人follow他們的規矩。因為規矩只有一條 - 你得把你的介面貼出來。這不但打破了孤島效應,也間接的強迫協作,沒有什麼東西可以被「人」藏起來。
文中提到說,有人質疑這樣的作法不合理。讓窗口為需要服務的單位,提供"最佳化"的服務不是應該比較好嗎?但我們大家的實務經驗都知道,只有我們自己才知道,怎麼樣的服務是對自己最好的。此外,也因為透過這種自助式的資料及服務存取,反而造就了更多不同的服務,將同樣的資料及服務,弄得像24小時均可販售的自動販賣機一樣,也收獲了更多的價值。

溝通的「效率」來自於介面的一致性

由於API天生的特性,就是將實作細節給封裝起來,這無疑就打破了低效溝通的最大元兇 - 介面的不一致性。
當你向業務部門要資料,它只能給你Word檔;向財會部門要資料,它給你的是Excel;你問了下後台的數據如何,它用SQL查給你;要查一下產品的規格的話,可能是一個網頁或是PDF等等。這是不同的資料介面,拿到資料後你得自己整理成需要的樣子。
同樣的,要求不同的部門服務時,有的人處理完是回電給你,有的人是用LINE通知,有的人會走過來直接跟你說一聲等等。這是不同的功能介面,你得瞭解每個人或每個部門的「眉角」,排出一個合理的工作流,才能比較順暢的把事情處理好。
這一些若是有了新的部門,新的資料,新的執行窗口,就會讓執行的效率再有新的變數。
一但所有的協作都"只"用API進行,不管API後面是哪種資料庫或函式庫處理的,用戶只在乎API是否有在預期的時間,得到他想要的回答。這全程沒有「人」的問題,就沒有所謂的「眉角」。就像《The Falcon and the Winter Soldier》中說過的:
The weakest point in any system isn’t the software, the hardware, it’s the meatware. The human element.
任何系統都有缺點,不是軟體,也不是硬體,而是人類。
協作的過程,只要有「人」進來成為存取資料及服務的節點,那通常就是效率最差的弱點。
另一個API帶來的優勢是「相容性」。資訊技術日新月異,永遠都會有更好的新工具,新軟體,新服務,新技術等等。而許多需求可能根本就和實作技術無關,若取得資料及服務的介面,是完全依賴在特定的工具或服務上(就像之前提到的Word/Excel/DB/PDF...)的,這就意味著有朝一日必然會遭遇"改版"的需求。
相反的,若一開始就訂好了API這種存取資料或服務的方式,那這API的底下是怎麼運作的,就是一個可以與時俱進的實作。反正用戶也不在乎你是怎麼提供服務或資料的,他只在乎有沒有辦法拿到資料。

從骨子裡就開始面對客戶,在血液中就流著用戶思維

Bezos要求所有的API,都要設計成可以直接提供外部用戶使用,而且沒有例外。以工程師的角度來說,這意謂著他們不能隨便亂加一些無謂的全域變數,無用的類別,也不能為了趕時間貪方便,就以破框的方式來開發系統;即便是非工程單位,他們的API除了要想怎麼跟內部團隊協作,也要去思考「真正的用戶」會需要什麼介面。沒經過大腦思考就亂訂一通,開出來的API,就像沒睡飽亂講話一樣。
API代表的,就是最終的商業邏輯,不論它是不是真的純商業行為。「只能用API交換資料,存取服務」,「API都必須能直接提供外部用戶使用」,「API才能保持其一致性」這些讓人很頭皮發麻,很"麻煩"的事情,才真的能促使整個團隊在面對自己的產品,都是從骨子裡就開始面對客戶,在血液中隨時流著的都是用戶思維。

沒照做的就請離開

不管Bezos的這個指令有多傳奇,多有真知灼見,但最重要的可能是第6點:Anyone who doesn’t do this will be fired。可想而知對非軟體工程團隊的人來說,這是一個多"不合理",多勞師動眾的一個要求。但若不是Bezos的這道指令,若不是這麼強悍的執行力,Amazon就不是今天這個樣子了。
為什麼會看到廣告
    Google實驗室Area120釋出了一個「製作遊戲」的遊戲叫「Game Builder」。 主要的用戶是遊戲編導,方便他們以拖拉卡片的型式來驗證遊戲性好不好。 因此這個專題就是「Game Builder」的"真心話(好用難用都會說)"和"大冒險(真的來挑戰看看能做什麼遊戲)"囉!
    留言0
    查看全部
    發表第一個留言支持創作者!
    Instagram的CEO,Adam Mosseri在Instagram上貼了一段「關於Instagram」的影片... 每個我詢問過的人,從Twitter上的,或是我正值青少年的女兒,都蠻確定他們不喜歡這樣子的改變。 可事實是,這才是Instagram真正擅長的事…
    創投風氣甚行的現在,各行各業都要求設計師,專案經理,甚至是工程師,都要有所謂的「產品思維(Product Thinking)」。尤其如果你是名新創公司的創業者,敏銳的產品思維更能幫助你募到資金,讓你的產品在許多競品當中脫穎而出。所以產品思維是什麼,不是什麼?...
    亞馬遜「文件優先」的文化,在業界已算是廣為人知。大家從科技媒體聽到的只有「開會前先讀文件」這樣的重點而已,但其實「文件優先」的文化不只是讓會議的效率更高,更讓亞馬遜的工作產出比其他人有著更高的完成度...
    當時對封城可能持續的時間推估,根據疫苗的研發及普及施打的速度,由歷史上的記錄算來,可能會長達5年,而且會造成數百萬人的死亡,這很有可能是一場世紀災難...
    假設你回到一個求職者的身份,經過層層考驗,最後來到面試的關卡,當面試官按照慣例詢問:「最後15分鐘,你有什麼特別想問的嗎?」時,你可能會想這麼問: 貴公司的文化如何呢? 別這麼平舖直述,用一個無邊無際的問法來問這個問題,你可能不會得到你想要的答案…
    仿間許多心靈雞湯類的書,會習慣用「設身處地,為人著想」的定義來說明何謂同理心/同情心時,其實都不是那麼清楚的解釋。因為「設身處地」是同理心,而「為人著想」是同情心,這是有很大的差異的…
    Instagram的CEO,Adam Mosseri在Instagram上貼了一段「關於Instagram」的影片... 每個我詢問過的人,從Twitter上的,或是我正值青少年的女兒,都蠻確定他們不喜歡這樣子的改變。 可事實是,這才是Instagram真正擅長的事…
    創投風氣甚行的現在,各行各業都要求設計師,專案經理,甚至是工程師,都要有所謂的「產品思維(Product Thinking)」。尤其如果你是名新創公司的創業者,敏銳的產品思維更能幫助你募到資金,讓你的產品在許多競品當中脫穎而出。所以產品思維是什麼,不是什麼?...
    亞馬遜「文件優先」的文化,在業界已算是廣為人知。大家從科技媒體聽到的只有「開會前先讀文件」這樣的重點而已,但其實「文件優先」的文化不只是讓會議的效率更高,更讓亞馬遜的工作產出比其他人有著更高的完成度...
    當時對封城可能持續的時間推估,根據疫苗的研發及普及施打的速度,由歷史上的記錄算來,可能會長達5年,而且會造成數百萬人的死亡,這很有可能是一場世紀災難...
    假設你回到一個求職者的身份,經過層層考驗,最後來到面試的關卡,當面試官按照慣例詢問:「最後15分鐘,你有什麼特別想問的嗎?」時,你可能會想這麼問: 貴公司的文化如何呢? 別這麼平舖直述,用一個無邊無際的問法來問這個問題,你可能不會得到你想要的答案…
    仿間許多心靈雞湯類的書,會習慣用「設身處地,為人著想」的定義來說明何謂同理心/同情心時,其實都不是那麼清楚的解釋。因為「設身處地」是同理心,而「為人著想」是同情心,這是有很大的差異的…
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    近日,印度艾哈邁達巴德的一位軟體工程師被「網戀女友」騙進Banocoin平台,造成了 134 萬盧比(約11.7萬元人民幣)的巨額損失。
    好的筆記軟體可以讓生活所有瑣事紀錄清楚。目前流行的筆記軟體就屬Notion最為出眾,其資料庫整理方式,可以將生活中的大小事紀錄起來,不論是財務紀錄、採購清單、閱讀清單、時程規劃等,都有辦法很好的利用Notion做紀錄,也有很多人提供適當的模板給其他人參考。 但若是做為個人資料庫管理的話,目前還是推
    Thumbnail
    在Python的typing模組中,NewType用來創建新的類型,其實是一個現有類型的變體。這對於型別檢查(Type Checking)非常有用,能夠幫助我們更清楚地理解我們的代碼和預期的行為。
    Thumbnail
    方法鏈接和流暢接口在許多現代編程語言和框架中都有使用。這兩個概念有時互相重疊,因為流暢接口通常使用方法鏈接來實現。使用這些技巧可以提高程式碼的可讀性和維護性,使得編碼更符合人類語言的結構。這對於在專案中協同工作的團隊尤為重要,因為它可以讓每個人更容易理解和使用代碼。
    Thumbnail
    介紹Joplin筆記軟體的To Web search engine延伸模組,可以在筆記中的編輯模式下傳遞要網路搜尋的文字至自訂Web search engine,省去複製貼上的步驟。
    Thumbnail
    現代的科技日新月異,我們已進入全新的電腦網路時代,但在這樣一個不能沒有電腦、手機的時代,我們依然會面臨著來自四面八方的電腦、手機病毒等威脅,因此防毒軟體正是每台電腦都需要擁有的工具。現在就來看看最強電腦防毒軟體推薦吧!
    Thumbnail
    上月發生 118 所高中「學習歷程檔案」被工程師手滑誤刪的重大事故,一時間在科技圈造成熱議,有人檢討發包單位及外包廠商,也有人認為是工程師、政府採購法問題,追根究底,「工程師手滑」可能只是整起事件的冰山一角,今天 RUBY 大叔要跟大家聊聊這件事。
    Thumbnail
    前一篇文在社群上面引起大家的迴響:博弈的工作資歷對職涯造成哪些影響? 在領英Linkedin 上面的博弈從業者有一些反彈,因為覺得自己被貼上了負面標籤而感到不舒服。 比起抱怨,我們更要讓社會大眾成熟的看待博弈產業從業者,難道沒有人去做博弈產業,社會對於賭博的需求就會消失嗎? 答案是.......
    Thumbnail
    你知道同事們的薪資嗎?相信在職場裡,員工談論薪資就如同「不能說的秘密」,避免同事間因為同工不同酬產生猜忌,深怕消息走漏會引發風吹草動。然而,薪資保密真的對公司就是好的嗎?在新加坡商鈦坦科技,即是想要避免上述出現的問題,從2015年起,進行「薪資透明化」政策!
    Thumbnail
    我在大學時主修教育、雙主修國文,研究所又念了教育行政政策,邊念還邊去兼職新聞與雜誌攝影,後來進了攝影藝廊擔任展場經理、又分別到了兩家新創公司做了活動企劃與App/Web PM,期間還向工業局申請了資料應用的補助計畫,現在我在AI與專利數據公司擔任產品經理。(我們稱Product Owner)
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    近日,印度艾哈邁達巴德的一位軟體工程師被「網戀女友」騙進Banocoin平台,造成了 134 萬盧比(約11.7萬元人民幣)的巨額損失。
    好的筆記軟體可以讓生活所有瑣事紀錄清楚。目前流行的筆記軟體就屬Notion最為出眾,其資料庫整理方式,可以將生活中的大小事紀錄起來,不論是財務紀錄、採購清單、閱讀清單、時程規劃等,都有辦法很好的利用Notion做紀錄,也有很多人提供適當的模板給其他人參考。 但若是做為個人資料庫管理的話,目前還是推
    Thumbnail
    在Python的typing模組中,NewType用來創建新的類型,其實是一個現有類型的變體。這對於型別檢查(Type Checking)非常有用,能夠幫助我們更清楚地理解我們的代碼和預期的行為。
    Thumbnail
    方法鏈接和流暢接口在許多現代編程語言和框架中都有使用。這兩個概念有時互相重疊,因為流暢接口通常使用方法鏈接來實現。使用這些技巧可以提高程式碼的可讀性和維護性,使得編碼更符合人類語言的結構。這對於在專案中協同工作的團隊尤為重要,因為它可以讓每個人更容易理解和使用代碼。
    Thumbnail
    介紹Joplin筆記軟體的To Web search engine延伸模組,可以在筆記中的編輯模式下傳遞要網路搜尋的文字至自訂Web search engine,省去複製貼上的步驟。
    Thumbnail
    現代的科技日新月異,我們已進入全新的電腦網路時代,但在這樣一個不能沒有電腦、手機的時代,我們依然會面臨著來自四面八方的電腦、手機病毒等威脅,因此防毒軟體正是每台電腦都需要擁有的工具。現在就來看看最強電腦防毒軟體推薦吧!
    Thumbnail
    上月發生 118 所高中「學習歷程檔案」被工程師手滑誤刪的重大事故,一時間在科技圈造成熱議,有人檢討發包單位及外包廠商,也有人認為是工程師、政府採購法問題,追根究底,「工程師手滑」可能只是整起事件的冰山一角,今天 RUBY 大叔要跟大家聊聊這件事。
    Thumbnail
    前一篇文在社群上面引起大家的迴響:博弈的工作資歷對職涯造成哪些影響? 在領英Linkedin 上面的博弈從業者有一些反彈,因為覺得自己被貼上了負面標籤而感到不舒服。 比起抱怨,我們更要讓社會大眾成熟的看待博弈產業從業者,難道沒有人去做博弈產業,社會對於賭博的需求就會消失嗎? 答案是.......
    Thumbnail
    你知道同事們的薪資嗎?相信在職場裡,員工談論薪資就如同「不能說的秘密」,避免同事間因為同工不同酬產生猜忌,深怕消息走漏會引發風吹草動。然而,薪資保密真的對公司就是好的嗎?在新加坡商鈦坦科技,即是想要避免上述出現的問題,從2015年起,進行「薪資透明化」政策!
    Thumbnail
    我在大學時主修教育、雙主修國文,研究所又念了教育行政政策,邊念還邊去兼職新聞與雜誌攝影,後來進了攝影藝廊擔任展場經理、又分別到了兩家新創公司做了活動企劃與App/Web PM,期間還向工業局申請了資料應用的補助計畫,現在我在AI與專利數據公司擔任產品經理。(我們稱Product Owner)