Share via


優化人員時間的建議

適用於此 Azure Well-Architected Framework 成本優化檢查清單建議:

CO:13 優化人員時間。 讓人員花費在工作的時間與工作的優先順序一致。 目標是減少花費在工作上的時間,而不會降低結果。 優化工作應該包括最小化雜訊、減少建置時間、高精確度偵錯,以及生產模擬。

本指南說明優化人員時間的建議。 此優化是一種策略性程式,可最大化員工在工作時間設計、實作及操作工作負載的生產力和效率。 它牽涉到以一種方式調整其技能、強度和工作,以確保他們花在工作時的每一小時都會最有效率地使用。 目標是消除浪費的人員潛在和功能。 無法將人員時間優化,可能會導致員工耗盡、降低競爭力,以及降低生產力。

定義

詞彙 定義
雜訊 可能會干擾實際問題或趨勢的不相關或誤導資訊。
訊號 有意義的相關信息,可讓您深入了解系統或應用程式的行為和效能。
技術債務 累積的效率不佳、次佳的設計選擇,或是在開發程式期間刻意採取的快捷方式,以加快程式代碼傳遞速度。

主要設計策略

人員通常會在工作負載中建立最大量的費用。 人員成本和價值會強調有效率的時間管理的重要性。 本指南是關於將每小時工作的可能性最大化。 由於員工無法在一天和晚上工作,強調在於確保每個人在指定的小時內更有效率,或在縮短的時間範圍內同樣有效。 目標是為了個人和工作負載的優點,達到其時間的更佳使用率。

設定優化目標

設定人員時間優化目標是建立清楚、可測量目標的流程。 這些目標可作為工作和函式所需改善的指導方針。 您可以使用這些基準檢驗來評估目標的結果。 首先,定義計量,以測量人員時間優化工作的成功率。 透過優化來判斷您想要達成的特定目標。 範例目標是減少管理工作所花費的時間,或減少回應客戶查詢所需的時間。 若要設定人員時間優化的目標,請考慮下列策略:

  • 選取量化計量:選擇符合您目標的計量,並可以正確測量。 請考慮計量,例如節省時間、生產力增加、效率改善,以及工作完成時間。

  • 收集定性計量:除了量化計量之外,還會收集人員的意見反應,以衡量其角色的滿意度。 此意見反應可針對人員時間優化工作對員工道德和參與的影響,提供寶貴的見解。

  • 設定目標:針對每個選取的計量設定實際且可達成的目標。 這些目標應該以目前的效能等級和所需的改進層級為基礎。

優化開發時間

優化開發牽涉到精簡軟體開發程式,以達到更高的效率。 因此,開發人員可以投入更多時間來精簡功能、在特定工作負載的限制內創新,以及解決工作負載所呈現的任何獨特挑戰。

讓功能保持精簡

當您設計和自定義功能時,請保持精簡且簡單。 避免不必要的複雜度和設定選項,以增加開發、測試和維護工作負載所需的時間。 讓工作負載保持簡單且專注,會導致隨著時間更容易調整和優化。

減少建置時間

減少建置時間是將編譯和產生部署所需的時間降到最低的程式。 較短的建置時間可讓開發人員花較少的時間來等候組建完成,並讓他們專注於撰寫程式代碼和傳遞功能。 減少建置時間也有助於確保開發人員更快速地收到其程式代碼變更的意見反應。 更快速的意見反應可讓他們更快速地逐一查看並修正問題,以支援敏捷式開發模型。 更快速的建置時間有助於更頻繁的組建,讓小組採用敏捷式開發做法,例如持續整合和持續傳遞 (CI/CD) 。 以下是減少建置時間的一些策略:

  • 優化組建組態:檢閱組建組態設定,並排除不必要的步驟或程式,以增加建置程式的額外負荷。 檢查點建置和結合部分組建與預先建置的組建,有助於減少建置時間並提升效率。 這種方法可讓您重複使用先前建置的元件,並只建置必要的元件,進而加快建置時間並縮短時間投資。

  • 平行處理建置工作:識別可以同時執行的工作,並設定建置系統以平行方式執行。 利用可用的運算資源。

  • 使用快取:快取相依性、中繼組建成品和其他可重複使用的元件,以避免在後續建置期間重複工作。

  • 使用累加組建:若要避免不必要的重新編譯,請實作技術,讓建置系統只重建自上一個組建之後變更之部署的部分。

  • 散發建置程式:如果適用,請將建置程式分散到多部計算機或組建代理程式,以使用平行處理原則並減少整體建置時間。

  • 優化基礎結構:確定組建環境有足夠的資源,例如 CPU、記憶體和磁碟 I/O 來處理組建。

使用生產模擬

藉由模擬元件或服務,開發人員可以模擬仿真相依性來隔離其程式代碼以進行焦點測試。 模擬可讓開發人員建立難以或難以在實際生產環境中重現的特定案例和邊緣案例。 它可以加速測試週期、加速平行工作,並消除疑難解答相依性。 以下是實作生產仿真的一些方法:

  • 模擬架構:使用特製化模擬架構或連結庫,可讓您建立模擬物件、存根或假名來取代相依性。

  • 相依性插入:設計您的應用程式以使用相依性插入,以在測試或偵錯期間,輕鬆替代實際相依性與模擬物件。

  • 服務虛擬化:使用服務虛擬化工具或技術來模擬外部服務或 API 的行為。 這麼做可讓開發人員在不存取實際服務的情況下測試整合。

  • 組態驅動模擬:實作組態驅動方法,以透過組態設定或旗標修改應用程式的行為,視需要啟用模擬。

  • 動態和條件式模擬:設計應用程式以支援動態和條件式模擬,讓開發人員可根據特定條件或案例在實際和模擬元件之間切換。

優化開發環境

目標是讓開發人員快速取得變更的意見反應。 進行必要的技術變更,以改善開發體驗。

容器化:請考慮將工作負載容器化以在本機執行。 容器可協助開發人員在本機復寫生產環境,並快速測試其變更。 它們可加快反覆專案和偵錯速度,進而產生更有效率的開發程式。 容器也提供一致且隔離的環境來執行應用程式。 最後,它們可讓您輕鬆調整和部署應用程式。

開發人員工作站:最佳開發人員工作站應該具有適當的集成開發環境, (IDE) 。 良好的開發人員工作站可提升開發人員效率,減少各種工作所需的時間和資源。 良好的 IDE 提供專為程式設計語言量身打造的程式代碼完成和語法醒目提示。 它也應該支援 Git 之類的版本控制。 配備完善的 IDE 可讓開發人員在開發期間快速找出並修正問題,以減少偵錯時間。

開發人員環境:開發人員的環境不應該太受限。 開發人員應該具備完成工作所需的許可權,而不需要任何限制,讓開發人員能夠有效率且有效率地運作。

優化生產階段前環境

一般而言,生產前環境越接近生產環境,您省下的時間就越長。 這種增加的一致性也有助於將風險降至最低。 這兩個環境越接近,您可以測試及驗證發行的功能和效能,再將它們部署到生產環境。 環境中的這種相似性可協助您提早識別並解決任何問題或瓶頸,進而降低生產環境中發生問題的風險。

取捨圖示取:您需要平衡人員時間與資源成本。 環境越接近生產環境,成本就越高。

重複使用元件和連結庫

可重複使用的元件和連結庫可節省開發人員大量時間。 開發人員可以重複使用已驗證的元件和連結庫,並更快速地開發或修正應用程式功能,而不是撰寫、測試和偵錯程式碼。 請務必為每個元件或連結庫提供檔。 將程式代碼和文件儲存在具有 GitHub 等版本控制的中央存放庫中。

此外,從套件管理員中提供的受信任發行者使用開放原始碼軟體或連結庫,例如 NuGet 或 Maven。 這些套件管理員提供集中式且可靠的來源,以存取和管理連結庫。 從套件管理員使用受信任的連結庫可以進一步提升生產力,並減少開發和維護程式代碼所花費的時間。

拿掉技術債務

拿掉技術債務對於維護狀況良好且有效率的程式代碼基底而言非常重要。 藉由遵循特定標準並實作品質網關之類的機制,您可以有效地解決技術債務,並改善程式代碼的整體品質。 以下說明如何將本指南併入您的方法:

  • 配置解決技術債務的時間:將開發小組的一部分時間專用於解決技術債務。 良好的起點是配置大約 20% 的小組時間,以解決技術債務。 專用時間可讓開發人員專注於重構、程式代碼清除,以及改善程式代碼基底的整體品質。

  • 強化開發小組:允許開發小組擁有技術債務解決方案的優先順序。 開發小組最適合用來識別需要注意並瞭解技術債務對工作負載功能的影響的程式代碼基底區域。 鼓勵小組內開放溝通和共同作業,以確保有效解決技術債務。

  • 優先順序:根據對工作負載功能的影響來排定技術債務專案的優先順序。 專注於解決對工作負載效能、可維護性和延展性影響最大的問題。 藉由有效地排定優先順序,您可以最大化努力移除技術債務的效果。

拿掉技術債務是進行中的程式。 它需要來自開發小組的主動式方法和持續努力。 藉由設定並遵守程式代碼基底中的特定標準,並實作品質網關之類的機制,您可以有效地解決技術債務,並建立更簡潔且更容易維護的程式代碼基底:

  • 設定程式代碼標準:建立清楚且特定的程式代碼標準,以定義程式代碼基底所需的結構、樣式和最佳做法。 這些標準應涵蓋命名慣例、程式代碼格式、檔和錯誤處理等區域。 藉由遵守這些標準,您可確保整個程式代碼基底的一致性和可讀性。

  • 實作品質網關:品質網關是一種機制,可強制執行定義的程式代碼標準,並在開發程式中提早攔截潛在問題。 它們可以包含自動化程式代碼檢閱、靜態程式代碼分析工具,以及持續整合管線。 藉由將品質網關整合到您的開發工作流程中,您可以先識別並解決程式碼質量問題,再成為技術債務。

優化人員共同作業

優化人員共同作業是增強小組動態、溝通和知識共享的程式。 目標是要避免誤解、重複的工作,以及浪費時間。 它涉及細分尋址接收器、修改不必要的標準、建立共用的知識存放庫,以及投資相關的訓練。 有效的共同作業可減少重複的錯誤,並將小組的共同專業知識最大化。 若要優化人員共同作業,請考慮下列策略:

  • 消除尋址接收器:尋址接收器可能會導致缺乏共用的知識和不必要的工作複寫。 跨功能共同作業可以節省時間並改善結果。 細分部門或小組之間的障礙,以提升部門間合作。 培養跨部門會議、研討會和聯合專案。 鼓勵跨小組開放通道。

  • 優化標準:不必要的標準可能會導致浪費的時間和資源,而不會產生更好的結果。 評估、改善或消除不增加價值但增加工作負載的標準或通訊協定。 定期檢閱標準和通訊協定。 從底層員工取得意見反應。 如果標準沒有增加價值,請考慮排除或修改它。

  • 建立共用知識存放庫:共用 知識庫 可防止重複的錯誤、輔助訓練,並減少搜尋資訊所花費的時間。 開發集中位置,讓所有成員都能存取並參與共同知識。 採用知識管理工具、定期更新存放庫,以及向小組成員提供貢獻。

  • 投資訓練:對程式、工具和項目的訓練進行大量投資。 這麼做可確保在開始參與項目的人員之前符合基準需求。 請確定小組已針對已建立的標準和程序進行訓練,讓他們能夠在定義的指導方針內有效率且有效地工作。 小組成員應該針對這些標準和程序進行訓練,讓他們不會浪費心力自行識別這些成員。

優化程式

優化程式牽涉到精簡工作流程,以消除不必要的步驟、減少手動工作,以及簡化角色和變更管理。 這項增強功能可確保工作更有效率。 簡化的程式可減少工作所需的時間和資源。 減少時間會導致提高生產力並節省成本。 若要優化程式,請考慮下列建議:

  • 精簡軟體開發生命週期 (SDLC) 方法:採用最佳 SDLC 可協助您以較少的額外負荷達到高品質。 評估您目前的 SDLC 方法,並考慮更有效率的替代方案。 探索並採用 Scrum、工作流程看板或瀑布等方法。 定期重新評估所選架構以提升效率,並辨識 SDLC 原本就共同作業。

  • 針對每個角色優化:定義的角色可確保清楚的責任和期望,並提升效率。 瞭解並定義每個角色的需求,例如開發人員和解決方案架構設計人員。 當您想要擴充小組時,您應該知道每個角色在硬體、授權和存取方面的需求。

  • 簡化變更管理:變更的正面認知可確保更順暢的轉換和更好的結果。 讓實作變更的程序順暢且接受。 培養主動參與文化,而不是抗拒。 透過指導和持續學習來提升變更採用。 適應以積極方式改變。

優化作業工作

優化工作負載作業工作是讓作業工作更快速且更直接的程式。 目標是簡化活動以提升效率,並確保最有效地使用資源。 這種簡化可確保工作已完成,並減少錯誤、干擾和延遲。 它可節省人員時間,進而加快決策制定、縮短疑難解答持續時間,以及整體提升的效率與成本節省。 若要優化作業工作,請考慮下列策略。

減少雜訊與訊號比率

區分訊號與雜訊對於可觀察性很重要,因為它可讓小組專注於其系統和應用程式最重要的層面。 篩選出雜訊可協助小組做出明智的決策、針對問題進行疑難解答,以及更快速地優化工作負載。 更有效率且快速地找出問題並加以解決,進而降低人員成本。

若要區分訊號與雜訊,您必須定義清楚的目標和計量。 識別與工作負載相關的關鍵效能指標 (KPI) 和計量。 建立每個計量的臨界值或範圍,以指定正常行為,以及應標示為異常的專案。 使用監視工具來收集數據並即時追蹤定義的計量,並識別指出潛在問題或改進區域的模式。

優先處理可採取動作的深入解析。 專注於指向工作負載降低的深入解析,並排定其優先順序以進一步調查或採取動作。 根據意見反應定期檢閱和更新監視策略。

使用高精確度偵錯

高精確度偵 錯是指能夠正確診斷和修正軟體應用程式中的問題。 您可以在執行時間期間深入瞭解應用程式的行為和狀態。 高精確度偵錯對於有效的軟體開發和疑難解答而言非常重要。 透過高精確度的偵錯,開發人員可以使用更高的精確度重現和分析問題,以減少修正 Bug 所需的時間和精力。 瞭解應用程式的行為可讓開發人員更快速地做出明智的決策,以改善程式碼品質。

  • 使用偵錯工具:使用功能豐富的調試程式,提供應用程式執行流程、變數和記憶體狀態的完整見解。

  • 啟用詳細的記錄和追蹤:使用記錄和追蹤語句檢測程序代碼,以在運行時間期間擷取相關信息。 這麼做可協助您診斷問題。

  • 分析錯誤訊息和堆疊追蹤:仔細檢查錯誤訊息和堆疊追蹤,以瞭解導致問題的事件內容和順序。

增強技術支援

改善技術支持作業的效率與效力。 減少週期性問題可節省時間並改善用戶滿意度。 識別週期性支持問題、透過支援陰影整合工程和支援小組,並採用IT傳統部署模型程式來減少整體支援負載。

從事件中學習

分析事件可能會防止週期性並改善反應時間。 使用過去的事件作為未來改進的學習機會。 進行回顧以分析事件、識別改善的動作和聯繫人通訊協定,以及透過完整的記錄和計量增強系統可檢視性。

實作健全治理

標準化可減少錯誤和重新工作,以確保品質與成本優化一致。 加強貴組織內的合規性和標準化。 自動化合規性檢查,以及標準化解決方案、架構和藍圖的提倡者。 若要簡化決策,請將不符合組織條件約束或 SLA 的選項降到最低。

優化人員技能

更好的技能會導致提升效率,並減少錯誤。 投資小組技能的開發與改進。 若要將人員技能優化,以下是一些要考慮的建議:

  • 提升技能:確定小組成員具有基本的成本優化和監視技能。 提供用於實際操作學習和技能開發的沙盒環境。 鼓勵小組成員取得認證,並與有經驗的同事提升陰影。

  • 工具:熟悉工具是優化工作的重要技能,並取得成本管理的寶貴見解。 確保人員熟悉基本工具,並可適應新的工具。 優先熟悉重要工具,特別是與監視相關的工具。 訓練人員,從系統的各個層級的數據擷取有意義的深入解析,強調有效監視與成本管理之間的連結。

  • 一致的專業知識:根據員工的能力和專業知識,將員工與工作比對。 利用其優點並據以配置工作,以最大化效率。

Azure 指導

設定優化目標Azure DevOps 提供一套工具來定義目標、選取計量和設定目標。 它提供工作項目追蹤、儀錶板和報告功能等功能。 它也提供原始程式碼管理、持續整合、持續傳遞和專案管理功能。 小組可以使用 Azure DevOps 將程式自動化、有效地共同作業,並減少手動工作。

優化開發時間:Azure 提供各種工具和功能來優化開發人員時間,包括:

  • 開發環境:Azure 提供多種形式的開發環境,例如 Microsoft Dev Box,其提供安裝開發人員工具的 Windows 和 Linux VM。 Microsoft 也提供 Docker VM 來進行容器化開發和 Azure Container Registry,以啟用 Docker 組建。

  • 與 Azure DevOps 整合:Azure 會與 Azure DevOps 整合,以提升生產力並簡化開發程式。

  • IDE 整合:Azure 提供 IDE 與 Visual Studio 和 Visual Studio Code 等熱門開發工具的整合。 此整合可讓開發人員順暢地使用 Azure 服務。

  • 標準 SDK 和連結庫:Azure 為所有 Azure 服務提供標準 SDK 和連結庫。 這些 SDK 和連結庫可讓開發人員重複使用程式代碼,並減少整合和實作 Azure 服務所需的時間。

  • 快速入門範本和範例:Azure 提供可加速開發程式的快速入門範本和範例。

  • 套件管理員和標準連結庫:Azure 支援套件管理員並提供標準連結庫,例如 NuGet 套件管理員。 他們可以簡化開發,並協助開發人員減少實作常見功能所花費的時間。

  • 開放原始碼支援:Azure 具有強大的生態系統,可支援開放原始碼技術,讓開發人員可以使用現有的開放原始碼工具和架構來優化其時間。

Azure 所提供的這些功能和工具可協助開發人員節省時間,並提升其開發工作流程的生產力。

優化作業工作:Azure 支援基礎結構即程式代碼 (IaC) 功能,可讓您使用程式代碼來定義和管理基礎結構。 這樣做有助於降低複雜度,並改善系統的可調整性。

Azure 監視器是一項完整的監視服務,可讓您瞭解 Azure 上應用程式和基礎結構的效能和健康情況。 您可以使用它來收集遙測、設定警示,以及取得實時見解。 藉由使用 Azure 監視器,您可以主動識別並解決問題。 它可讓您減少您在疑難解答上花費的時間。

Azure 自動化 提供在 Azure 上將手動、重複的工作自動化的方法。 您可以使用它來建立和管理 Runbook,這是執行特定工作的指示集。 藉由自動化例行工作,您可以節省時間並釋出人員,以專注於更重要的活動。

優化人員技能:Microsoft 提供完整的 訓練 教材和活動套件。 訓練適用於開發人員、架構設計人員和商務項目關係人。

成本優化檢查清單

請參閱一組完整的建議。