期間:2024
揭露大型主機的接縫處以進行增量現代化
大型主機系統持續執行世界上大部分的運算工作負載,但要新增功能以支援不斷成長的業務需求通常很困難。此外,讓這些系統增強功能緩慢的架構挑戰也讓它們難以取代。為了降低所涉及的風險,我們應採用漸進式方法來取代舊有系統,逐漸以現代技術實作取代舊有功能。此策略要求我們在大型主機系統中引入接縫處:我們可以在其中將邏輯流程轉移到較新的服務。在最近的專案中,我們研究了多種方法,將這些接縫處引入長壽的大型主機系統。
透過人類衡量開發人員生產力
衡量開發人員生產力是一項艱難的挑戰。專注於開發週期時間和產出的傳統指標受到限制,而且沒有明顯的答案可以說明其他可以轉向的地方。定性指標提供了一種強大的方式,可以使用從開發人員本身衍生的資料來衡量和了解開發人員生產力。組織應優先使用來自人類的資料來衡量開發人員生產力,而非使用來自系統的資料。
如果我們每天輪換配對會怎樣?
結對程式設計的優點已被廣泛接受,但關於結對輪替的建議仍存在爭議。隊友應該在何時以及多久輪替一次結對?如果我們每天輪替結對,會怎樣?我們與三支團隊合作進行了一項每日結對輪替的練習。我們開發了一種輕量級方法,以幫助團隊反思結對的好處和挑戰,以及如何解決這些問題。最初的恐懼被克服,團隊發現了頻繁輪替結對的好處。我們了解到,頻繁輪替結對極大地增強了結對的好處。在這裡,我們分享我們開發的方法、我們的觀察結果,以及參與團隊成員分享的一些常見恐懼和見解。
過時替換模式
當面臨需要更換現有軟體系統時,組織通常會陷入半完成技術替換的循環。我們的經驗教會我們一系列模式,使我們能夠打破這個循環,依賴於:對取代過時軟體的預期結果的深思熟慮的認識,將這種取代分為幾個部分,逐步交付這些部分,以及改變組織的文化以認識到變革是不變的現實。
LLM 應用程式開發的工程實務
LLM 工程不僅僅涉及提示設計或提示工程。在本文中,我們分享了一組工程實務,這些實務幫助我們在最近的一個專案中快速且可靠地交付了一個原型 LLM 應用程式。我們將分享 LLM 應用程式的自動化測試和對抗性測試、重構,以及 LLM 應用程式架構和負責任的 AI 考量的技術。
持續整合
持續整合是一種軟體開發實務,其中團隊的每位成員至少每天將其變更合併到程式碼庫中,並與同事的變更合併。每次整合都會透過自動建置(包含測試)進行驗證,以盡快偵測整合錯誤。團隊發現此方法可降低交付延遲的風險、減少整合工作,並能促進實務,讓程式碼庫保持良好狀態,以便快速新增新功能。
舊系統接縫
在使用舊系統時,找出並建立接縫非常有價值:我們可以在這些地方變更系統行為,而無需編輯原始碼。找到接縫後,我們可以使用它來中斷依賴關係,以簡化測試、插入探針以增加可觀察性,以及將程式流程重新導向到新模組,作為舊系統轉移的一部分。
我 2023 年最喜歡的音樂發現
我在 2024 年最喜歡的六首新歌