最近我一直在思考如何建立精益开发团队。最终,我想与少数志同道合的人一起开设自己的小软件商店。目标不是致富,而是拥有一个健康的工作环境。
到目前为止,我将精益团队定义为:
- 小;
- 自组织;
- 所有成员都必须牢记质量保证;
- 成员必须能够执行多个角色
最后一点是我有点担心,因为随着口头禅的发展……
开发人员会成为糟糕的测试人员。
虽然我知道开发人员通常与他们的代码或同事的代码“过于接近”,无法对质量进行更高级别的评估,但我并不认为他们实际上是糟糕的测试人员。相反,我认为优秀的开发人员的素质与优秀的测试人员的素质有很大的重叠。
假设这是正确的,我一直在思考解决开发人员/测试人员问题的不同方法,我相信我已经提出了一个可行的模型。
我的模型要求:
- 一个带有2个以上项目的小型软件公司
- 开发和交付的敏捷(迭代)方法
- 每个项目1个团队
- 所有团队成员均为软件开发人员
- 他们的工作描述将清楚地说明开发,质量保证,测试和交付为职责
如果满足所有这些先决条件,那么可以按以下方式组织项目(此示例将引用两个项目A和B):
- 每个团队成员将在开发人员角色和测试人员角色之间交替
- 如果团队成员是项目A的开发人员,那么他们将是项目B的测试人员
- 会员将在时间上只有1个项目上工作,因此预计将充当无论是一个开发或测试员。
- 甲角色周期由3次迭代作为开发和2次迭代作为测试仪(再次,在两个不同的项目)
- 项目团队将始终具有3个开发人员和2个测试人员。
- 成员角色周期应相差1次迭代。
- 这样可以最大程度地减少团队变更的突然性。对于每个迭代,2个Devs和1个Tester将与上一个迭代相同。
鉴于以上所述,我看到以下优点和缺点:
优点
- 在整个公司范围内分配项目知识。
- 确保团队成员没有测试他们帮助编写的代码。
- 角色周期异相意味着没有项目拥有100%的成员切换。
- 交替角色打破了无聊项目的单调性。
缺点
- 两个项目的迭代紧密耦合。如果一个项目要在中途取消迭代并重新开始,则这两个项目将不同步。这将使角色周期难以管理。
- 聘请开发人员的铰链也开始充当测试人员的角色。
与朋友和同事讨论这种方法时,我收到了好坏参半的评价。有些人认为很少有开发人员会愿意像这样的角色,而另一些人则告诉我,他们个人愿意尝试。
所以我的问题是: 这样的模型可以在实践中起作用吗?如果没有,是否可以将其调整为可行的模型?
注意: 为了简洁起见,我仅关注Dev和Tester角色。如果需要,我将继续介绍其他角色。