云科技时代|微软的软件工程现代化转型( 二 )


-- 向工程和业务团队提供通用实践 , 以改善服务、基础架构和业务流程的运行状况 。
为了解决以前对供应商的高度依赖 , CSEO实施了一项新的员工战略 , 从而增加了全职员工的招聘并带来了更多的内部工作 。 这使CSEO能够改变并现代化其提供服务的方式 , 此外这一战略使得任何供应商的交付都必须有全职员工监督 。 CSEO的策略要求拥有交付服务或合同的开发人员对供应商交付的质量承担端到端的责任 , 并确保他们遵守流程、标准和法规要求 , 包括安全性、可访问性和隐私 。 此外 , 随着增加招聘人数 , CSEO还为所有团队实施了通用的招聘标准和通用的入职计划 , 以确保所有新员工都接受有关所有关键工具和技术的一致培训 。 2:现代软件工程愿景
微软的数字化转型要求CSEO以更高的速度、更高的质量、可靠性和安全性来提供功能和解决方案 。 CSEO正在对构建、部署和管理服务的方式进行现代化 , 以尽可能快地将新功能交到用户手中 。 CSEO正在重新审查工程流程的每个部分 , 并以微软首席执行官萨蒂亚·纳德拉(Satya Nadella)所概括的方式建立现代软件工程实践:“为了向我们的客户提供移动优先、云优先的体验 , 我们将实现工程流程现代化——痴迷于客户、数据驱动、速度导向、注重质量 。 ”
为了确保工程师以客户为先、为中心 , CSEO通过使用通用工具收集反馈 , 从而使微软工程师对客户体验有深刻了解 。 CSEO正在与遥测技术结合使用和查看此反馈 , 这将有助于工程师们了解用户如何使用产品以及可能出现的问题 。 CSEO希望实施更高保真度的服务和业务流程监测 , 以便在客户甚至意识到问题之前就对问题发出警报并加以解决 。 CSEO希望使工程师能够开发可靠和安全的服务 , 并通过简化从提交代码到部署的过程、同时在软件构建和发布线中无缝集成合规性检查 , 来减少部署的前置时间 。 CSEO是微软商业产品的第一批客户 , 这使CSEO能够识别并满足在以云为中心架构中运营的企业的软件工程需求 。 CSEO与微软的产品工程团队不断合作 , 创造了一个良性循环 , 使微软的产品(例如Azure DevOps和Azure服务)更加适合企业使用 。
CSEO建立了一种文化 , 以支持现代软件工程实践和快速交付新功能 , 并且通过阶段性发布的方式 , 更快速地向客户交付经验证的新功能 , 以及通过紧密集成的反馈循环和提供定期发布来完善这些新功能 , 从而使微软业务能够更快地做出响应 。
虽然提高速度对于数字化转型至关重要 , 但不能对可靠性产生负面影响 。 连续的数据收集、健康信号的监测、主动检测以及快速修复 , 这些对于确保减少停机时间并创造高质量的客户体验也至关重要 。 实施现代软件工程实践是一项长期的过程 , 需要对思维方式、文化和工具进行根本性的改变 , 包括:
-- 转向现代云架构;通过组件化整体应用程序来构建微服务;在中央存储库中发布 API、NuGet 和类似版本 , 以实现集成;确保超过90%的自动测试覆盖率;与其它团队合作 , 采用依赖关系并与他们的服务集成 , 而不是试图复制它 。
-- 持续集成经过测试的代码 , 并且仅从代码的主分支进行部署 。
-- 通过将产品保持在可发布的状态(releasable state) , 从固定节奏发布转变为持续集成/连续交付 , 并通过自动部署管道(pipeline)对故障做出快速响应和实现快速发布 。
-- 使用环形部署模式(ring-deployment)进行生产环境的实验 , 而不要进行用户验收测试(UAT)并依赖于专用的UAT环境 。
-- Live Site文化 , 可以全面监测服务健康状况 , 主动识别问题 , 引入自我修复机制 , 快速修复重大事件 , 直接与最终用户联系 , 专注于根本原因以确保服务质量的持续改善 , 并将关注范围从服务健康扩大到业务流程健康 。
-- 积极管理已确认的技术债务并保留相应的工程资源 , 以能够在其产生计划外的工作或影响服务质量之前解决它 。


推荐阅读