Google、Twitter 和 Spotify 如何建立文件文化 - DEV
許多技術問題最終會變成人的問題,缺乏良好的文件也不例外。編寫和維護文件是一種需要鼓勵和培養的習慣。不幸的事實是,如果沒有文件文化,再多的工具也無濟於事。今天,我們將看看 3 家高效能工程公司,Google、Twitter 和 Spotify,如何處理他們的技術文件並建立文件文化。
谷歌
Riona MacNamara在2016年發表了一篇精彩的演講,講述了她在谷歌改善其內部文件狀況的工作。我們強烈建議你觀看這個演講(只有30分鐘),但這裡有一些他們在2014年時面臨的問題的有趣亮點。
- 48%的谷歌工程師認為糟糕的文件是第一生產力問題
- 50%以上的SRE問題提到了文件的問題
- 文件被認為是每個人的問題,但沒有人負責的工作
每個人都感受到了不良文件的痛苦。儘管過去做了很多努力,但都沒有成功。檔案仍然分散在維基、隨機檔案中,甚至是離線的白板上。將技術寫手嵌入團隊會有一段時間的幫助,但寫手離開後,文件會迅速惡化。
那麼,是什麼讓他們開始改變現狀的呢?他們用一個叫做g3docs的系統從根本上簡化了工程師的文件。它做到了以下幾點。
- 移除決定--提出一種方法來記錄事情
- 把文件放在Markdown的原始碼旁邊,這樣工程師就可以留在他們的IDE中了
- 文件在提交時被自動渲染成漂亮的HTML頁面
在他們所做的工具工作的基礎上,該團隊還到處創造組織變革。
- 與有影響力的工程師結成聯盟,引入工具。
- 與特定的團隊合作,建立戰略整合
- 在公開場合進行釋出和迭代
- 不強迫團隊採用新的工作流程--以身作則
在g3docs被採用後,使用量增長到每月20萬+文件更新和390萬頁面瀏覽量(注意:這些數字是2016年的)。
早在2014年,Twitter有3名技術文件寫手。在其他方面,他們的職責是協助1000多名軟體工程師編寫內部文件。同時,在Twitter,圍繞著文件的總體氛圍是不完整的、過時的,甚至是不存在的。大多數文件都在Confluence中,但也有一些是在Google Docs或READMEs中。
Simeon Franklin和Marko Gargenta有一個很棒的演講,他們討論了他們採取的策略。與谷歌類似,他們開始了改變人們對文件的看法的旅程。
他們提出了軟體工程師和測試的例子:不久前,人們還不期望軟體工程師寫測試。這種期望已經被顛覆了,今天,未經測試的程式碼是不被看好的。他們想在Twitter的內部對文件做同樣的事情。
他們的方法包括三個部分。
- 通過教育和特殊的DocDays來鼓勵文件工作
- 建立一個新的文件即程式碼的堆疊(DocBird)。
- 建立文件模板
他們組織了DocDays,這是一個單日的黑客活動,開發人員在此更新他們的文件。技術作家會在這一天提供培訓,並幫助編輯最終的文件。這些日子的更大目的是將文件寫作作為一種實踐來宣傳和規範。它建立了社群和一套共同的關於文件的期望。
為了使文件編寫更容易和標準化,他們推出了一個新的文件即程式碼的堆疊,叫做DocBird,它是一個圍繞Sphinx的定製包裝。與g3docs類似,它從源頭自動構建你的文件。它消除了 "文件在哪裡 "的問題。
最後,他們為文件建立了共享模板。這些模板有共同的部分和問題,可以被複制到專案中作為起點使用。盯著一張空白的畫布有時是開始寫作的最困難的部分。
Spotify
讓Spotify的故事變得有趣的是,他們已經在一個叫做Backstage的專案中開源了他們用於文件方法的大部分堆疊。
Backstage是Spotify眾多微服務的一個軟體目錄。它有一長串的功能和外掛,但最受歡迎的功能之一是對文件即程式碼的整合支援。
在內部,我們叫它TechDocs。到目前為止,它是Spotify使用最多的外掛--佔我們Backstage流量的20%(儘管它只是130多個外掛中的一個)。
Spotify使用Backstage的文件即程式碼的過程就像我們以前的案例研究一樣:工程師們認為第三大問題是無法找到他們工作所需的技術文件。文件分散在Confluence、Google Docs和自定義網站上,而且什麼都找不到。
Gary Niemen有一個演講,他討論了他們團隊在建立Spotify的 "文件即程式碼+"基礎設施方面的工作。他強調了一些有趣的經驗。
- 保持解決方案的簡單性--這樣它就能發揮作用
- 對工程師進行嚴格的優化
- 標準化和集中化
他們的技術寫作團隊的目標是讓工程師在1分鐘內將他們的文件從 "卡住到解開"。他們繼續朝著這個目標邁進。
從中學習什麼?
這些故事中有很多共同的主題,但這些經驗可以歸結為三個要點。
- 讓工程師的生活儘可能簡單--消除摩擦
- 對你的工具進行標準化和投資
- 通過教學和以身作則使文件成為一種期望
我們在這三個案例中所看到的,許多讀者根據經驗可能會同意,工程師不會在維基中維護文件。從你的程式碼轉移到一個單獨的系統,並且不能使用你現有的工具,這種背景轉換意味著文件會被遺忘。在這些例子中,三家公司都採用了 "文件即程式碼 "的方法,因為它使開發人員在更新文件時無障礙。
這三家公司也都在工具方面進行了大量的投資。無論你為你的文件堆疊選擇什麼(我們顯然堅信Doctave是一個優秀的解決方案),堅持下去,並確保這是技術文件的唯一地方。關於文件的位置,不應該有任何疑問。
最後,這可能是最難的部分,你需要讓文件成為工程文化的一部分。這意味著教開發人員如何寫文件,提供使用的例子和模板,組織專門針對文件的黑客日,並與你的組織中具有影響力的工程師合作以設定期望。就像今天測試如何成為大多數工程師接受的規範一樣,文件也可以。
相關文章
- WEB.DEV – Google SEO 工具WebdevGo
- 使用Rust的Tauri和Yew建立桌面應用程式 - DEVRustdev
- /dev/zero和/dev/null的區別devNull
- 2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的區別devNull
- 如何寫好技術文件——來自Google十多年的文件經驗Go
- 辛星淺析/dev/random和/dev/urandomdevrandom
- 資料驅動: 建立資料文化
- 建立適於敏捷的組織文化敏捷
- 如何打破Sec、 Dev和Ops之間的孤島?dev
- 登入Facebook和Twitter
- 如何透過深挖文化內涵打造夜遊文化IP
- Win8中SkyDrive上傳和建立文件指南
- DRmare Music Converter for Spotify for Mac(Spotify音樂轉換器)Mac
- TunePat Spotify Converter for mac(Spotify轉換器)v1.6.3Mac
- /dev/null和標準*使用devNull
- 公開“Google開發者文件風格指南”Go
- 詳細教程:輕鬆完成建立Google賬號和郵箱?Go
- Google play推薦的三國策略手遊《止戈》是如何實現文化出海的?Go
- webpack-dev-server和webpack-dev-middleware的區別WebdevServer
- 關於/dev/null和/dev/zero兩個檔案裝置devNull
- DRmare Music Converter for Spotify for Mac(Spotify音樂轉換軟體)Mac
- 用微軟Sandcastle建立.NET文件微軟AST
- 如何使用IPFS和Filecoin建立NFT
- javascript如何建立和讀取cookieJavaScriptCookie
- 如何定義和建立架構架構
- 11g AMM和/dev/shmdev
- Kibana的Dev Tools中建立自定義分詞器dev分詞
- Google Reader創始人:谷歌創新文化遭破壞Go谷歌
- Google如何盈利?Go
- Google Chrome for mac(谷歌瀏覽器) v89.0.4356.6 DEV開發版GoChromeMac谷歌瀏覽器dev
- 如何在 Linux 上使用 snap 安裝 Spotify(聲破天)Linux
- 自由的樂章-Spotify奏鳴曲:解讀Spotify的商業模式模式
- 如何建立和獲取正則物件?物件
- Google 正式釋出 Fuchsia 文件,這下清晰多了!Go
- 為什麼我們要給Google文化一支解毒劑Go
- npm install -save 和 -save-devNPMdev
- 電子遊戲文化是如何形成的?遊戲
- 文化媒體系統如何快速搭建