在远程工作时代重新思考敏捷

通过Pravas Ranjan溃败,艾萨克LaBauve 2021年2月| POV | 10分钟读|本文的电子邮件|下载
冠状病毒挑战了敏捷的核心原则:使用面对面的互动。从会议到开发再到支持,敏捷不得不走向虚拟。然而,实践者已经找到了使敏捷适应远程环境的方法——这种方法即使在团队再次共处时仍然有价值。
在远程工作时代重新思考敏捷

敏捷软件开发在商业世界中非常普遍,并且经常嵌入软件开发之外的企业文化中。然而,冠状病毒大流行正在考验这种方法的基本原则之一。敏捷宣言认为,向开发团队和在开发团队中传递信息的最有效的方式是面对面的对话。

由于大多数办公室关闭,员工远程办公,这种首选的方法从困难到不可能。

公司必须适应这种新的工作环境,如果他们想要敏捷提供同样的好处,比如提高生产力、更大的用户满意度、更快的上市速度和更高的软件质量。一些基于网络的或虚拟的工具可以模拟传统上亲自进行的工作,但这并不是故事的结局。这种敏捷重新启动需要调整;把面对面交流换成网上交流并不是一个一对一的提议。会议通常应该更短,重点更狭窄。测试应该更加自动化。最终用户培训应通过电子学习文档和课程来完成。了解面对面协作的好处将帮助敏捷领导者找到会议、执行和支持的远程类似物。

会议

无论在产品生命周期的哪个阶段,几乎每一次会议都会受到缺乏面对面互动的影响。开发团队认为在虚拟会议中会丢失非语言交流的线索。部分损失可以通过视频电话会议来缓解,但这并不能完全消除问题。对于虚拟会议,每种类型的会议都有自己偏爱的方式和挑战——有时也有好处。

对于简单的话题,比如那些在每日Scrum会议中讨论的话题,视频电话会议实际上可能会使会议更快、更集中。一次只有一个人能说话,能被人理解;这就限制了离题和旁门左道的谈话。这个好处,加上虚拟看板的使用,可能会提高这些会议的生产力。

会议通常是持续数小时的知识转储,不应该采用简单的“只是把它转移到网上”的方法。研究表明,在参与度较低的会议中,与会者的注意力开始迅速下降,比如终端用户知识会议。相反,最好是缩短这些会议,以确保信息被适当吸收。北卡罗来纳大学(University of North Carolina)教授史蒂文·罗格伯格(Steven Rogelberg)在《华尔街日报》(Wall Street Journal)上写道,会议时间少于48分钟可能是最好的。此外,通过电子学习文档和课程、预防性维护指南和问题解决手册来补充这些会议有助于弥补面对面交流的不足。

专家建议会议时间不要超过48分钟,这样才最有效率

需要来自不同来源的输入并解决复杂问题(如用户故事和功能确定)的会议更难进入虚拟会议空间。这种类型的会议应该很长,并包括不同观点的听众。由于这些会议不是知识转储,重要的是让所有与会者参与到对话和手头的问题中。这可以通过在简要介绍该问题后为个别与会者创造时间来表达他们的想法来促进。虚拟白板对于记录想法并将其展示以供讨论也很有用。参与会议的与会者可以保持更长时间的专注,但仍然建议会议负责人设置周期性的休息时间。

执行

在软件开发过程中,对于如何进行会议有两个更重要的变化:协作和信息传播。

开发人员将不能“结对程序”,或者到同事的办公桌前寻求如何解决问题的建议。显而易见的解决方案是使用像Microsoft Teams或Slack这样的通信软件。在某些情况下,这些工具可以使这个过程更容易,因为代码可以粘贴到聊天框中,而不是描述它。但是,也有更好的解决方案,比如Visual Studio Live Share。例如,Live Share允许多个开发人员同时编辑一个文件。因此,该特性允许另一个开发人员连接到文件并添加相关的行,而不是指定可能有帮助的代码。这也可以解决结对编程中的一个常见问题,在这个问题中,一些参与者不参与,因为他们不是在键盘前,就是在听写。

物理信息辐射器,如看板和燃耗图,在工作场所提供了明显的好处。他们的存在不断提醒着我们,在团队的目标中,团队所处的位置。这种虚拟板子的缺点是它们很容易被新的桌面窗口隐藏起来。因此,重要的是每天至少与团队一起参考这些董事会一次,并讨论发生了什么变化。如果仍然需要一个物理板,一个人可以维护它,然后每天发送该板的延时照片(除了维护一个虚拟板)。

测试是任何软件开发项目的重要部分。当使用敏捷方法进行软件开发时,自动单元和集成测试是常见的。然而,更细致入微的回归测试和场景测试自动化程度较低,以前通常在业务和产品负责人参与的小组中进行。现在需要使用在线协作工具在开发过程中更早地识别和澄清这些用例,这样测试就可以包含在自动化测试套件中。即使团队没有被迫远程工作,这也是一个很好的实践,因为自动化测试可以显著地加速开发。

图1所示。分散敏捷的策略。

    应对大流行的做法:

  • 减少“信息转储”会议的长度和重点。
  • 对于高概念会议,通过征求每个成员的意见来保持参与者的参与。
  • 使用允许多个编辑器在一个代码项目中协作的软件。
  • 每天至少参考一次虚拟信息辐射器,以保持其相关性。

    任何时候都有用的实践:

  • 将场景测试合并到自动化测试套件中。
  • 创建日志和警报系统,以便在部署后将错误通知团队成员。
  • 创建一套全面的电子学习课程、维护指南和问题解决手册,以促进最终用户知识会议,并减少关键支持的需求。

支持

保修服务和软件交付后的关键支持通常需要一些团队成员留在现场解决新问题。相反,开发人员可以创建一个日志和警报系统来通知团队成员出现错误。此外,使用bug跟踪和票据软件来跟踪用户发现的问题,这样它们就可以添加到待办事项列表中,并由开发人员根据优先级解决。

此外,一套健壮的电子学习课程、维护指南和问题解决手册可以减轻敏捷团队在支持阶段的负担。与测试一样,支持是新工具和方法在任何情况下都能提供好处的另一个领域。

分散敏捷的秘密

疫情给企业带来了许多新的挑战,从网络安全到物流再到消费者需求。对于实践敏捷的软件开发人员来说,这种外部危机已经颠覆了一个基本原则。但仔细考虑我们目前做法的原因,可以找到任何挑战的可行的解决方案。当情况需要远程团队时,使用虚拟信息辐射器和视频会议可以帮助减轻缺点,但它们不能完全取代面对面的交流。然而,诸如在过程早期合并更复杂的测试这样的实践是有价值的开发工具,因为即使团队再次位于同一地点时,它们也会很有用。

参考文献
  1. 更好的会议科学史蒂文·g·罗格伯格,2019年2月15日,《华尔街日报》
  2. 为冗长、大型、无重点的会议辩护。真的。David Komlos & David Benjamin, 2019年11月27日,《华尔街日报》