是否所有开发人员都需要参与行为驱动开发规范的编写?
Do all developers need to participate in behaviour driven development specification writing?
在编写用户故事时,我与团队中的其他 2 个人进行了几个小时的交流。
对我来说,这看起来像是在浪费时间。例如 - 我们正在为用户注册功能编写用户故事。看起来就是这么简单的东西,一个人就可以写出这个规范了。
我们还没有编写像这样的测试(或者它们是如何被调用的):
Given a 5 by 5 game When I toggle the cell at (3, 2) Then the grid
should look like [graphics]
所以我只有第一印象。
团队将超过 3 人。因此,如果连接所有团队,将花费大量时间。这是因为——我们一次只考虑一件事。现在喜欢 3 个人 - 一次 3 件事(例如故事)。
而且我认为产品所有者可能会不高兴,因为支付薪水却没有获得巨大的收益。
编写规范是个好东西。但我认为 - 最好是尽可能少的人为功能编写规范。然后我们开会讨论这个规范并对其进行编辑。
据我所知,以后的功能会比用户注册复杂得多。而且我相信这将需要更多时间来准备规范。仍然 - 也许尽可能少的人可以制定规范,然后其他人 - 会面并讨论它。
此外,并非所有开发人员都可能需要讨论某个功能。我认为只有真正致力于该功能的开发人员才能与规范创建者一起讨论。
BDD可以这么搞吗?也许我不明白什么,这就是为什么我认为这是浪费时间?
BDD 没有灵丹妙药。通过 trial/error 和经验,您将不断学习如何进一步简化流程。没有一定的对,也没有一定的错。我想说的是,首先,no-one 应该觉得他们在浪费时间。如果是这样的话,那就说明事情可以改进,或者不是每个人都致力于实践 BDD。
就您而言,作为一个如此小的团队,让每个人都参与功能的定义绝对是有意义的。当 team/s 增长时,您需要开始考虑安排与 just
合适的利益相关者的讨论。
您必须认为 BDD 的全部意义在于帮助将业务需求和概念转化为可以确保满足这些业务需求的软件。你可以通过描述你的产品的特性来做到这一点,通过提供具体的例子,你甚至可以使用 BDD 来做一个完整的用户体验方法(我不推荐,维护噩梦)。
谁知道企业 works/should 是如何运作的?让这些专家参与对话。谁将开发该功能?让那些人参与对话。是否会通过手动测试或更新现有测试套件的方式参与质量检查?让他们也加入对话。
所有这些利益相关者都很重要,也是 BDD 成功的关键。一旦他们都参与了对话,业务专家应该解释他们对需要构建的功能的了解。然后其他利益相关者应该提出问题、澄清、示例等。然后理想情况下,您将开始使用 Gherkin 或其变体为该功能起草场景。一旦这些场景完全描述了该功能应该如何工作并且每个人都对它们的编写方式感到满意,session 就会结束。
从那里开始,开发人员和 QA 团队的实施阶段以及专家等待,直到 session 期间描述的所有场景都可执行并通过。
现在考虑一个开发人员,他没有参与该功能的初始对话,但需要更改其行为或修复错误。该开发人员将用简单的英语完整描述该功能应如何工作,并且可以快速检测可能在何处引入这些行为变化。为此,该人应该再次召集适当的利益相关者并就该功能的新描述达成一致。开发、演示、庆祝。
冲洗并重复。
BDD 的概念是关于“3 个朋友”。这些是利益相关者、开发人员和问答。这些职位可能会有所不同,这取决于项目和公司结构。
大多数情况下,利益相关者在讨论中只有 1 人,但问答团队或开发人员可以像您在案例中描述的那样有更多的与会者。不应该规定必须有团队中的每个人。将数量保持在最低限度以提高效率,但主要是将数量保持在最佳状态以便能够正确理解和描述问题。这取决于功能的复杂性。根据我的经验,最理想的人数是 2 名开发人员。
BDD 最重要的是沟通和对您将要实现的内容的共同理解。
获得这种共识的一种方法是举行一次三人会议。将产品所有者、测试人员和开发人员召集在一起,让他们讨论用户故事。这可以使用 Matt Wynne 在此处描述的示例映射来完成:https://cucumber.io/blog/2015/12/08/example-mapping-introduction
正式的Gherkin应该不是三哥开会的时候写的,应该是后来开发者或者测试者写的。如果它写了。
如果您对会议期间的理解感到满意并且不需要更多来实现您的功能,您可以跳过编写 Gherkin。
如果您要自动化场景,请编写 Gherkin,因为这将是您自动化工作的基础。
我喜欢自动化,所以我可能会自动化这些步骤。您可能会或可能不会发现它是受益者,因此请做对您的团队和项目最有利的事情。
达成共识是强制性的,自动化不是强制性的。
在编写用户故事时,我与团队中的其他 2 个人进行了几个小时的交流。
对我来说,这看起来像是在浪费时间。例如 - 我们正在为用户注册功能编写用户故事。看起来就是这么简单的东西,一个人就可以写出这个规范了。
我们还没有编写像这样的测试(或者它们是如何被调用的):
Given a 5 by 5 game When I toggle the cell at (3, 2) Then the grid should look like [graphics]
所以我只有第一印象。
团队将超过 3 人。因此,如果连接所有团队,将花费大量时间。这是因为——我们一次只考虑一件事。现在喜欢 3 个人 - 一次 3 件事(例如故事)。
而且我认为产品所有者可能会不高兴,因为支付薪水却没有获得巨大的收益。
编写规范是个好东西。但我认为 - 最好是尽可能少的人为功能编写规范。然后我们开会讨论这个规范并对其进行编辑。
据我所知,以后的功能会比用户注册复杂得多。而且我相信这将需要更多时间来准备规范。仍然 - 也许尽可能少的人可以制定规范,然后其他人 - 会面并讨论它。
此外,并非所有开发人员都可能需要讨论某个功能。我认为只有真正致力于该功能的开发人员才能与规范创建者一起讨论。
BDD可以这么搞吗?也许我不明白什么,这就是为什么我认为这是浪费时间?
BDD 没有灵丹妙药。通过 trial/error 和经验,您将不断学习如何进一步简化流程。没有一定的对,也没有一定的错。我想说的是,首先,no-one 应该觉得他们在浪费时间。如果是这样的话,那就说明事情可以改进,或者不是每个人都致力于实践 BDD。
就您而言,作为一个如此小的团队,让每个人都参与功能的定义绝对是有意义的。当 team/s 增长时,您需要开始考虑安排与 just
合适的利益相关者的讨论。
您必须认为 BDD 的全部意义在于帮助将业务需求和概念转化为可以确保满足这些业务需求的软件。你可以通过描述你的产品的特性来做到这一点,通过提供具体的例子,你甚至可以使用 BDD 来做一个完整的用户体验方法(我不推荐,维护噩梦)。
谁知道企业 works/should 是如何运作的?让这些专家参与对话。谁将开发该功能?让那些人参与对话。是否会通过手动测试或更新现有测试套件的方式参与质量检查?让他们也加入对话。
所有这些利益相关者都很重要,也是 BDD 成功的关键。一旦他们都参与了对话,业务专家应该解释他们对需要构建的功能的了解。然后其他利益相关者应该提出问题、澄清、示例等。然后理想情况下,您将开始使用 Gherkin 或其变体为该功能起草场景。一旦这些场景完全描述了该功能应该如何工作并且每个人都对它们的编写方式感到满意,session 就会结束。
从那里开始,开发人员和 QA 团队的实施阶段以及专家等待,直到 session 期间描述的所有场景都可执行并通过。
现在考虑一个开发人员,他没有参与该功能的初始对话,但需要更改其行为或修复错误。该开发人员将用简单的英语完整描述该功能应如何工作,并且可以快速检测可能在何处引入这些行为变化。为此,该人应该再次召集适当的利益相关者并就该功能的新描述达成一致。开发、演示、庆祝。
冲洗并重复。
BDD 的概念是关于“3 个朋友”。这些是利益相关者、开发人员和问答。这些职位可能会有所不同,这取决于项目和公司结构。
大多数情况下,利益相关者在讨论中只有 1 人,但问答团队或开发人员可以像您在案例中描述的那样有更多的与会者。不应该规定必须有团队中的每个人。将数量保持在最低限度以提高效率,但主要是将数量保持在最佳状态以便能够正确理解和描述问题。这取决于功能的复杂性。根据我的经验,最理想的人数是 2 名开发人员。
BDD 最重要的是沟通和对您将要实现的内容的共同理解。
获得这种共识的一种方法是举行一次三人会议。将产品所有者、测试人员和开发人员召集在一起,让他们讨论用户故事。这可以使用 Matt Wynne 在此处描述的示例映射来完成:https://cucumber.io/blog/2015/12/08/example-mapping-introduction
正式的Gherkin应该不是三哥开会的时候写的,应该是后来开发者或者测试者写的。如果它写了。
如果您对会议期间的理解感到满意并且不需要更多来实现您的功能,您可以跳过编写 Gherkin。
如果您要自动化场景,请编写 Gherkin,因为这将是您自动化工作的基础。
我喜欢自动化,所以我可能会自动化这些步骤。您可能会或可能不会发现它是受益者,因此请做对您的团队和项目最有利的事情。
达成共识是强制性的,自动化不是强制性的。