什么是敏捷?

已完成

敏捷是一个描述软件开发方法的术语,强调增量交付、团队协作、持续计划和学习。 敏捷与其说是一个过程,不如说是一种规划团队将要开展的工作的理念或思维方式。 它基于迭代开发,可以帮助团队更好地计划和应对软件开发中不可避免的更改。 让我们来听听 Mara 和 Andy 在最新版本发布后进行的讨论。

Mara 觉得自己在让团队对 DevOps 感兴趣方面有了一点进步,但进展却不大。 团队一直忙于修复了上一版本中的 bug,没有时间考虑其他事情。

记得产品经理 Irwin 向团队提供了一些关于竞赛游戏网站十分关键的客户反馈。 解决这些问题并不轻松。 Andy 和 Mara 会编写代码,然后将其交给测试人员 Amita。 Amita 似乎总能找到新的 bug,不得不把代码返回。 生成服务器失败了。 虽然游戏网站在开发和测试阶段还能运作,Tim 却无法让网站在生产阶段运作。 所有人都工作了很长时间,好几个周末都没有休息。

完成发布后,Mara 和 Andy 一起坐下来喝咖啡。 他们都很疲惫。 Mara 感到很气馁,但 Andy 却持不同态度。

Andy:我不知道你为什么这样惊讶。 将软件发布出去是很难的。 这是个苦差事。 你有过不同的做法吗?

Mara:是的,而且我认为在这里,我们也可以让工作变得更简单。 我真的相信 DevOps 可以帮助我们。

Andy:我记得我们做过一个价值流图练习,但是现在呢? 我们得开始着手处理新版本的发布了。 我认为我们已经不再需要 DevOps 了。

Mara:我们还有很多地方都需要。 我认为我们应该迈出第一步,做一些敏捷计划。 我们可以使用 Azure Boards 来提供帮助。

Andy:敏捷是什么意思?

Mara:敏捷是软件开发的一种方法。 “敏捷”一词是 2001 年在敏捷宣言中提出的。 该宣言确立了一些指导原则,以便更好地实现软件开发。 宣言指出:

我们重视:

  • 个体和交互胜过流程和工具。
  • 有效用的软件胜过全面的文档。
  • 客户协作胜过合同协商。
  • 响应变化胜过遵循计划。

Andy:如果你知道什么神奇的方法能让工作更轻松,我全力支持。 我常常回家的时候,孩子们都睡着了。 虽然听起来很感性,但没有任何具体的解决方案呀。

Mara:这并不是魔法,但我们可以一点一点地做到。 Azure DevOps 为我们提供了实现敏捷做法所需的工具。 现在,如果我们需要计划,可以使用 Azure Boards。 首先,你能给我说明一下生成流程,帮我找出大的问题吗?

在喝了很多咖啡之后,Mara 和 Andy 找出了生成流程中的最大问题。 所有的问题都是最近一次发布时出现的。 Andy 离开后,Mara 看着她潦草的笔记,决定自己做一下敏捷计划。 她自己使用 Azure Boards 上的基本流程,将所有问题集中到一处。

她的下一步是向团队展示该版块,并让他们参与进来。

采用敏捷方法的建议

团队已准备好迈出采用敏捷方法的第一步。 下面是任何团队可以用来将敏捷方法融入自己组织的一些一般建议。

创建支持敏捷做法的组织结构

对于大多数组织而言,采用敏捷方法可能会很困难。 它需要转变思维和文化,这将挑战组织内的许多现有政策和流程。 传统上,大多数公司都使用水平团队结构。 在实际操作中,这意味着团队对应的是软件体系结构。 例如,可能有一个团队负责应用程序的用户界面,另一个团队负责数据,还有一个团队负责面向服务的体系结构。

但是,垂直团队可以为敏捷项目带来更好的结果。 垂直团队跨越整个体系结构,并与产品成果保持一致。 例如,可能有一个团队负责应用的电子邮件部分,团队成员来自先前提到的全部三个专业领域。 垂直团队结构的另一个优点是,可以通过增加团队来进行缩放。

指导团队成员学习敏捷技术和做法

当他们首次开始采用敏捷技术和做法时,有些团队决定聘请外部教练。 教练甚至可以与多个团队合作,帮助消除组织障碍和孤岛,因此他们通常同时具备教学和管理技能。 他们还可以对团队成员进行敏捷技术方面的培训,例如如何组织站立式会议和审查会议。 然而,随着时间的推移,团队成员培养相互指导的能力也很重要。 这意味着大多数工作应该是协作完成的,而不是由个人花大部分时间单独工作。

实现团队内部和跨团队协作

如果协作是在敏捷方法中取得成功的关键,可以通过哪些方法来鼓励协作呢? 下面是一些想法。

文化变革

当改变一种文化时,请记住几件事。 团队成员有一个安静、舒适的工作场所,这一点很重要。 他们需要一个可以集中精力的空间,没有过多的干扰和噪音。

会议是工作中无可避免的一部分,可能会让人觉得会议占据了大量的个人工作时间。 为了让团队成员有更多的控制权,会议需要有议程和严格的时间限制。

电子邮件和消息之类的异步通信可能会令人倍感压力,人们往往觉得必须马上回复这些信息。 可以明确指出,并非所有这些通信都需要立即回复。

现在,团队成员远程办公是许多公司的常态。 无论是在办公室还是在异地办公,每个人都必须与所有团队成员自在地相处且一视同仁。 通过沟通进行协作应该成为组织的一大特性。

良好沟通的重要性怎么强调都不为过,即使是在意见不一致的时候。 解决冲突是任何一个敏捷团队都要具备的良好技能。

跨职能团队

团队成员之间的协作非常重要,同样地,团队之间的协作也很重要。 跨职能团队增加了新的技能和观点,可以增强每个人创造性地解决困难的能力。 跨职能团队还会使整个组织更有凝聚力。 可以减少权利争夺,增强每个人为实现共同目标而奋斗的信念感。

协作工具

好的工具可帮助敏捷团队成员在团队内部以及与其他团队之间进行更有效地协作。 这里有一些可以帮助你开始协作的建议:

  • Microsoft Teams:Teams 是一个为聊天、会议、笔记和文件存储提供工作区的应用程序。
  • Skype:Skype 易于使用,是很好的通用工具。 许多人已经安装了它。
  • Slack:Slack 提供多个单独的信道,所有信道都来自一个接口。 可以通过多种方式组织这些信道,例如按项目、团队或主题。 对话将被保留,并且可搜索。 可以轻松添加内部和外部团队成员。 Slack 与许多第三方工具(如 GitHub)直接集成,可获取其源代码。

其他常见工具包括 Google Hangouts、Asana、Trello、GoToMeeting 和 monday.com。 试着熟悉一下这些工具,看看其中哪些适合你的团队和公司的需求。