你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
优化人员时间的建议
适用于此 Azure 精心构建的框架成本优化清单建议:
CO:13 | 优化人员时间。 使人员在任务上花费的时间与任务的优先级保持一致。 目标是减少任务花费的时间,但不会使结果变差。 优化工作应包括尽量减少噪音、减少生成时间、高保真调试和生产模拟。 |
---|
本指南介绍优化人员时间的建议。 这种优化是最大程度地提高员工在工作时间设计、实施和操作工作负荷的工作效率和效率的战略过程。 它涉及以某种方式调整人员的技能、优势和任务,确保他们在工作中花费的每一个小时都得到最有效的利用。 目标是消除浪费的人员潜力和能力。 未能优化员工时间可能会导致员工消耗量减少、竞争优势降低和工作效率降低。
定义
术语 | 定义 |
---|---|
噪声 | 可能会分散实际问题或趋势的不相关或误导性信息。 |
Signal | 有意义的相关信息,提供有关系统或应用程序的行为和性能的见解。 |
技术债务 | 在开发过程中有意采用的低效性、欠佳的设计选择或快捷方式,以更快地交付代码。 |
关键设计策略
人员通常会在工作负荷中创建最重大的费用。 人员成本和价值突显出高效时间管理的重要性。 本指南旨在最大限度地发挥每小时工作的潜力。 鉴于员工不能整天和晚上工作,重点是确保每个人在指定时间内更有效,或在缩短的时间范围内同样有效。 目标是为了个人和工作负荷的利益,更好地利用其时间。
设置优化目标
设置人员时间优化目标是建立明确、可衡量的目标的过程。 这些目标充当任务和函数中所需改进的准则。 可以使用这些基准针对目标评估结果。 首先,定义用于衡量人员时间优化工作成功的指标。 确定想要通过优化实现的特定目标。 示例目标是减少管理任务花费的时间或减少响应客户查询所需的时间。 若要为人员时间优化设置目标,请考虑以下策略:
选择定量指标:选择与目标一致的指标,并可以准确测量。 考虑诸如节省时间、工作效率提高、效率改进和任务完成时间等指标。
收集定性指标:除了定量指标外,还收集人员反馈,以衡量他们对角色的满意度。 此反馈可以提供对员工士气和参与度员工时间优化工作的影响的宝贵见解。
设置目标:为每个所选指标设置实际且可实现的目标。 这些目标应基于当前的性能级别和所需的改进级别。
优化开发时间
优化开发涉及优化软件开发流程,以实现更高的效率。 因此,开发人员可以投入更多时间来优化功能,在特定工作负荷的约束内进行创新,并解决工作负载呈现的任何独特挑战。
使功能保持精简
设计和自定义功能时,请保持其精简和简单。 避免不必要的复杂性和配置选项,这些选项会增加开发、测试和维护工作负荷所需的时间。 使工作负荷保持简单且专注,可随时间推移更轻松地适应和优化。
缩短生成时间
减少生成时间是最大程度地减少编译和生成部署所需的时间的过程。 较短的生成时间使开发人员可以花更少的时间等待生成完成,并允许他们专注于编写代码和交付功能。 减少生成时间还有助于确保开发人员更快地收到有关其代码更改的反馈。 更快速的反馈允许他们更快地循环访问和修复问题,从而支持敏捷开发模型。 更快的生成时间可促进更频繁的生成,使团队能够采用敏捷开发做法,例如持续集成和持续交付(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还提供用于容器化开发和Azure 容器注册表的 Docker VM,从而启用 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 Monitor 是一项全面的监视服务,提供对 Azure 上应用程序和基础结构的性能和运行状况的可见性。 可以使用它收集遥测数据、设置警报并获取实时见解。 通过使用 Azure Monitor,可以主动识别和解决问题。 它使你能够减少在故障排除上花费的时间。
Azure 自动化提供了在 Azure 上自动执行手动重复任务的方法。 可以使用它来创建和管理 Runbook,这些 Runbook 是执行特定任务的说明集。 通过自动执行常规任务,可以节省时间并释放人员专注于更关键的活动。
优化人员技能:Microsoft提供了一套 全面的培训 材料和活动。 培训面向开发人员、架构师和业务利益干系人。
相关链接
社区链接
成本优化清单
请参阅完整的建议集。