Fuchsia FIDL 團隊的文化原則

Fuchsia FIDL 團隊成員利用了下列四大文化原則,保持專注。當多個看似適合的路徑可用時,設定這些值有助於選擇適當的動作。這些文化原則旨在引導我們如何處理工作、專案、團隊呈現方式,以及定義合作方式。

確保設計清查

我們相當重視「設計卻尚未導入」的廣告空間。我們會編寫想法,避免日後構思過於遠大的想法。

我們希望減少接受尚未實作的 RFC 數量,或是避免在合理時間內得知無法看見當天通知的計畫,也就是我們的時間水平。隨著時間過去,「合理的時間」已從月、半年成長到現在約 1 到 2 年。為了迎接這個新的期間,有許多因素是影響著這個地位1。我們也觀察到,未實作的設計還不夠成熟,而在第一批蝕刻時有意義的要求和架構,很少適合我們稍後深入的研究。

我們設法避免「目前已淘汰,未來將失效」陷阱,為了打造未來、主動將客戶群遷移至這些新功能,並且通常盡量減少進行中的遷移次數。

我們也會盡可能提供具體的答案,說明如何解決目前工具的問題,而不是依照日後推出的功能提供「修正後的問題」。當我們知道一些好事即將發生時,能提供建議給目前的工具是讓人痛苦的一件事,正要提醒我們應在鄰近的程式碼集向使用者提供這個值 (與只有「可能」影響的設計文件不同)。

單一語音

在代表 Fuchsia FIDL 團隊的職涯中,我們會和諧地談論。我們努力向同業傳達清楚且一致的訊息。我們應該始終回答問題、一致地討論發展藍圖、一致描述技術方向、協調工作優先順序等等。

舉例來說,為 fidl-dev@fuchsia.dev 提供協助時,所有團隊成員都應提供相同的建議。如果團隊中的意見不同,我們有責任解決這些問題,以便為使用者提供共同的觀點。

另一個範例是,在代表 FIDL 團隊編寫 RFC 時,隱含表示所有團隊都支持大致的設計方向 (但通常都會在 CL 上討論)。這表示在 RFC 移至「疊代」步驟之前,團隊內部達成了某些校正,可能是透過與 Gerrit CL (例如 Google 文件) 進行前置作業,透過「其他媒介」發生。

未遵守內部針對我們的決策或懷疑,對使用者而言,所執行的技術方面取捨上的情境較少。有時會導致我們必須承認「我們不知道」或「目前沒有任何最佳做法」。在此情況下,我們應說明這些選項及其優缺點,並與使用者合作,引導他們採取最適合自己的行動。

行動偏見

我們以行動、工作和交付內容為優先考量。我們會留言、指導 並批判任何看待演講的地方

在我們所做的每項行動中,都很有幫助,不妨思考一下什麼是正面的結果,也就是我們能向前邁進的步行石。舉例來說,如果我們在團隊同步期間進行了有趣的設計對話,可以快速總結我們在幾個項目符號中討論的內容。下次出現這個情境時,這個背景資訊就會準備好,以更強而的方式重新開啟對話。或者,如果我們在某些程式碼集的 1:1 期間討論了技術債,並抱怨事情的狀態,即使這只是想向所有人提高警覺,也能夠命名問題和想要的結束狀態,我們就可以選擇轉化為具體的具體情況。

先從小規模開始2

我們以逐步的方式演繹遠大的願景,開始逐步分析工作,並先從小型概念驗證開始著手。我們習慣使用臨時快速鍵,專注於達成長期目標。

這包括排定優先順序、細分工作 以及對理想狀態逐步改善舉例來說,我們已自行排除問題,有時則是出於預料之外,先排除使用者遇到的問題,因為我們之後會解決架構上的落差。

舉例來說,引進 Dart FIDL JSON 範本很困難,因為這個範本利用謹慎的組裝程序 (確保我們沒有任何控制代碼,但一開始是以視覺審查類型的方式) 獲得負面影響。這項 Dart FIDL JSON 功能採用的架構差距僅由 RFC-0057:Default No Handle (預設無控點) 關閉,時間超過 18 個月。

另一個範例是程式碼大小分析 (請參閱 76 的 PS1)。我們決定從擁有一些資料且不佳的解決方案著手。然後稍微修正及修正這個解決方案重點是,我們同時進行了具體變更來改進測量結果,以減少 FIDL 擁有的程式碼中的二進位檔大小。因此,我們投入了足夠的資金來產生「提案清單」。並針對這份清單進行縮減,然後重複上述程序。在這個週期結束後的季度結束後,產生的工具就會變得十分精準,且報表功能也非常適合具體用途。後來此工具就已成為一般化的一環,現在是 Fuchsia 規模飲食的重要計畫。

第三個範例是使用 FIDL 語言描述 Zircon API 的例子。這一開始是非常駭人的 FIDL 檔案,其中有些檔案甚至並不會編譯。新的後端 (kazoo) 初期,同時也支援各種目標,依序新增後端。儘管如此,FIDL 檔案還是仰賴駭客入侵、實驗功能等技術。但是,我們對於這項工作的長期方向很有信心,且我們嚴禁在角落處繪製 FIDL 的設計債。

純粹的研究會持續進行,而在直接解決當下的問題,而不考慮對未來計畫的影響。您應留意進度,並積極設法找出未來可行的證明或過期程度。相較於快速鍵,在捷徑的平衡上可以找到適合的平衡,可以做為工程師的精力。熟能生巧。


  1. 做為擴大時間水平方向的因素:

    • Fuchsia FIDL 團隊規模,例如:火力較多;
    • 解決短期問題 (例如 2018 年的 FTP 待處理作業、fidlc 封鎖其他團隊的錯誤);
    • 對工作方式有明確的期望 (例如團隊同步指南或專案更新),進一步加快執行速度;
    • 設計先項 (例如 RFC) 錨定設計原則、簡化研究及審查新構想。
  2. 這個 Tenet 強硬的頭銜是「我們從小開始」的,目前由 Jack Dorsey 的《Square's Four Corners》借用,當時公司價值大約在 2012 年。這個網路體系已擴大,並與我們的工作相關。