软件的软方面

  下载本文的PDF版本PDF格式

软件的软方面

软件经理卓越运营指南

成为一名伟大的工程领导者的秘诀是什么?建立正确的制衡机制。

凯特·马苏迪亚

要成为一名优秀的软件领导者,您必须给予团队尽可能多的自主权。然而,你也必须负最终责任(尤其是当事情出错时)。作为管理者最困难的事情之一是对每件事都负有责任,但没有直接的控制权。

伟大的管理者解决这一问题的方法是建立能够提供见解的流程、工具或机制。这使他们能够(在适当的时间)提出适当的问题,并温和地引导团队朝着正确的方向前进。

软件工程经理(或任何高级技术领导)有许多职责:照顾和支持团队,交付业务成果,保持产品/系统/应用程序正常运行。这些领域中的每一个都可以从系统方法中受益。我在这里介绍的是为团队的卓越运营建立制衡机制。

卓越运营是指持续向客户提供高质量产品和服务的能力。这对软件工程经理来说至关重要,因为它可以帮助他们确保他们的团队能够满足客户的需求。

卓越运营有很多好处,包括:

  • 提高客户满意度
  • 降低了成本
  • 提高了效率
  • 增加创新
  • 提高员工士气
  •  

    卓越运营检查表

    如果你正在组建一个新团队,或者想改进当前团队的工作方式,这是一份清单,以及我在所领导的组织中使用过的一些最佳实践。请记住,这并不是全面的,你应该计划根据你的团队、目标和时间表调整清单。

     

    验证发布计划

    大多数事件都是由错误的代码推送或环境的其他更改引起的。作为领导者,你应该确保你对产品发布有可见性,并且产品发布团队已经完成了他们的工作。例如,考虑以下几点:

  • 团队是否有监控和仪表盘?有仪器是不够的;您需要验证它是否有效,并知道如何使用它(并找到它)。
  • Runbook(或playbook)?团队是否计划好了出现问题时该怎么办?对于不太熟悉项目的人来说,是否有足够的文档来构建和部署代码?确保清楚如何重新启动、重新启动、清除缓存、预热缓存、部署清理等。
  • SLO?一开始就考虑服务级目标很重要,因此用户流应该是什么以及软件是否达到了这个目标都很清楚。
  • 灾难恢复计划?当一切出错时会发生什么?有备份吗?如何从备份中恢复?您考虑过故障切换和冗余吗?
  • 依赖关系?当依赖关系失败时会发生什么?客户端是否正常降级?用户/客户将体验什么?如果下游服务速度慢、无响应或不可用,系统是否可以运行?
  • 负载和性能测试?你知道这项服务的限制是什么吗?如果需要,需要做什么来增加容量?
  • 顺从?如果您在高法规遵从性环境中工作,您是否符合所有法规和标准(可能包括安全和隐私审查等内容)?
  •  

    管理您的事件并密切跟踪后续事项

    问题和事件发生了,但你不想被同一个问题折磨两次。确保您了解团队中的事件负载情况,以及他们如何阻止关闭这些事件中的未清项。

  • 建立事故审查流程。无论您是进行回顾、根本原因分析还是其他跟进,都要确保团队知道何时有人被传呼,并进行后续工作以防止将来发生这些事件。
  • 测量警报音量。你的团队多久被传呼一次?每个事件有多少警报?下班后多久发生一次事故?如果这些数字中有任何一个看起来很高,那么可能是时候投资改进警报或根本原因,以防止倦怠、警报疲劳和/或停机。
  • 查看事件响应。如何处理事件(点击缩放并观察)?文档的质量足够好吗?在单点失败的领域是否有中小企业(主题专家)?有时,如果你还没有一个主管,你可能需要在这些电话中增加一个负责人,并确保团队专注于解决问题(而不是试图了解原因)。
  • 跟踪行动项目。后续事项处理的紧急程度是否合适?确保定期(我喜欢每周)查看事件行动项目及其趋势。您需要确保以正确的优先级处理这些问题。
  •  

    管理通话轮换

    您领导角色的另一个重要部分是为您的团队设计合理的待命轮换。如果总是需要同样的两个或三个团队来解决一个事件(对于紧密耦合的服务),那么分组类服务和扩大轮换可能会有所帮助。一些组织还设置了前端或移动电话轮换,以快速响应客户中的紧急错误或问题。作为领导者,你应该考虑以下方面:

  • 有人多久打一次电话?
  • 旋转持续多长时间?
  • 当有人没有回答页面时会发生什么?
  • 任何时候都有多少工程师在待命?如果你有一名初级和二级工程师,那么多名待命工程师如何分工?
  • 随叫随到的人是否具备应对问题的技能和支持?
  • 呼叫轮换有多痛苦(例如,人们多久被传呼一次)?
  • 当人们随时待命时,他们是否也应该为团队的功能工作做出贡献,或者他们是否可以自由处理事件操作项或其他高优先级错误?
  • 每个待命人员是否都拥有所需的所有权限和工具(以及他们知道如何使用这些权限和工具)?
  • 模型如何为每个待命轮换选择团队成员?
  •  

    管理您的数据

    作为团队的领导者,你知道你的软件是如何运行的吗?这不仅仅是正常运行—您应该注意系统中的所有关键用户流,查看吞吐量、延迟等。

  • 你怎么知道业务和服务是健康的?你有仪表盘吗?你多久看一次?
  • 在任何给定的时间,您知道您的环境中打开了哪些功能标志吗?
  • 你知道现场有什么营销、销售或其他促销活动吗?
  • 你的系统有弹性吗?您需要什么时候开始处理容量和吞吐量?
  •  

    跟踪客户报告的问题

    除了处理事故和停机的能力外,卓越运营的另一个重要部分是了解客户体验。除了系统指标外,您还应该注意从客户那里获得的所有信息。例如:

  • 客户多久报告一次问题?你如何追踪他们?这个名单是缩小了还是扩大了?
  • 你如何在特征工作中考虑和管理质量?
  • 服务超时、出错或导致崩溃的频率如何(例如,在手机上)?
  •  

    管理故障切换和恢复

  • 您有灾难恢复计划吗?
  • 您的系统是否正常降级?
  • 从重大服务中断(包括您的CSP(内容安全策略)构建块)中恢复需要多长时间?
  •  

    管理CI/CD、测试和自动化

    这个主题可以是一篇文章。拥有良好的测试、自动化、强大的CI/CD(持续集成/持续交付)管道等有助于预防问题。问问你自己(或你的工程师):你怎么知道你正在推送的代码是高质量的?你需要做什么来回答这个问题?

  • 你对自己的部署有信心吗?
  • 您是在测试和登台环境中发布金丝雀版本,还是使用功能标志迭代推出?
  • 您的顶级用户流是否有合成和RUM(真实用户监控)?
  • 您的所有系统是否都配备了适当级别的可观察性(例如,配置文件、特定供应商的插件、开源软件包等)?
  • 您是否可以始终回滚或故障切换到已知的良好实例?
  •  

    成功的关键

    当你仔细阅读这些要点时,你会发现在每个领域都有很多调整和改进的方法。第一步是提出正确的问题。第二步可能包括以下内容:

  • 投资质量保证
  • 自动化任务
  • 更新、标准化和改进流程
  • 测量和跟踪绩效(并关注数据)
  • 创造持续改进的文化
  • 卓越的运营是任何软件工程团队成功的关键部分。作为领导者,你有很大的机会改进团队的工作方式。祝你好运,并祝你100%正常运行。

    凯特·马苏迪亚是SoFi Money(支票和储蓄)、信用卡、投资、保险、At Work和合作伙伴关系的技术副总裁。此前,她是Splunk的副总裁,负责Observability产品套件。她还曾在谷歌担任高管,帮助建立了几家成功的初创公司,这些公司被eBay、O'Reilly Media和Limelight收购。她的职业生涯始于软件工程师,并在微软和亚马逊担任领导。她是一位主旨演讲人和出版作家,并获得了NCWIT西蒙斯创新者奖等荣誉。她与丈夫加勒特(Garrett)住在华盛顿州伊斯夸(西雅图郊外);三个男孩;还有三只狗。

    版权所有©2023,所有者/作者所有。授权给ACM的出版权。

    阿克姆奎厄

    最初发表于《队列》第21卷第5期
    对这篇文章的评论美国计算机协会数字图书馆





    更多相关文章:

    Abi Noda、Margaret-Anne Storey、Nicole Forsgren、Michaela Greiler-DevEx:真正推动生产力的因素
    开发人员体验侧重于开发人员的生活体验以及他们在日常工作中遇到的摩擦点。除了提高生产力外,DevEx还通过提高效率、产品质量和员工保留率来推动业务绩效。本文提供了一个理解DevEx的实用框架,并提出了一个度量框架,该框架将开发人员的反馈与他们交互的工程系统的数据相结合。这两个框架为领导者提供了明确的、可操作的见解,以了解要衡量什么以及在哪里关注,从而提高开发人员的生产力。


    詹娜·巴特勒(Jenna Butler)、凯瑟琳·叶(Catherine Yeh)-穿着他们的鞋子走一英里
    Covid在许多方面改变了人们的工作方式,但许多结果本质上是矛盾的。对一个人有效的方法可能对下一个人(甚至第二天对同一个人)无效,我们还没有弄清楚如何准确预测对每个人有效的方法。正如你在这里描述的复合人物角色中看到的那样,有些人与孤立和孤独作斗争,很难与团队建立社交关系,或者发现与远程团队混合工作的时间压力非常大。其他人喜欢这种新的工作方式,享受更多与家人在一起的时间,白天锻炼的灵活性更大,工作/生活更平衡,以及为世界做出贡献的强烈愿望。


    布里奇特·克罗姆霍特-容器无法修复你破碎的文化(和其他硬道理)
    我们经常关注技术反模式,而忽视了我们社会结构中的类似问题。剧透提醒:通过检查我们与他人的互动,可以找到许多看似技术性的困难的解决方案。让我们谈谈在与人类这种讨厌的生物打交道时你想知道的五件事。





    ©ACM,Inc.保留所有权利。