我认为这是真的,在某些环境中,敏捷是没有纪律的借口。真正的问题是,我们没有意识到为什么要使用任何方法。就我个人而言,我认为该方法论是体系结构问题,因为系统的体系结构应该解决非功能性,质量属性,该方法论应该解决某些相同的属性(可维护性,开发生产力,知识转移,等)。
将方法论视为对过程属性的控制意味着两件事:1)没有度量标准,我们无法将一种方法论的有效性与另一方法论进行比较; 2)需要就哪些属性很重要(交付时间与代码)做出积极的决策质量与知识转移)。
如果既没有指标又没有明确的目标,我们只是选择一种方法作为我们的“魔术羽毛”,只要坚持下去,我们就可以交付软件。
现在,敏捷,XP,Scrum等的反对者都在谈论这种特定方法论的脆弱性。争论是:为什么要使用一种可以被缺乏纪律的个人破坏的方法来遵循所有规则?这个问题是有效的。但是,这只是症状,而不是原因。如果定义,测试和及时反馈一组准确而有意义的(这是困难的部分),我认为我们会发现特定的方法论与成功无关。(有趣的是,我看到过使用无数方法论的成功项目,而使用相同方法论的失败则是两倍)
那么指标是什么?它们因项目而异,因团队而异,有时也不尽相同。当交货时间表很重要时,这很有用,我个人使用的是估算技能和质量。大多数开发人员可以准确地估计为期一周或更短的任务。因此,一种方法是将项目划分为一个开发人员一周的任务,并跟踪谁进行估算。随着项目的进行,他们可能会更改其估算。任务完成后,如果关闭超过10%(每天1/2),我们将其视为错误-我们确定为什么关闭估算(即未考虑数据库表),确定纠正措施(即将DBA包括在估算中),然后继续进行。利用这些信息,我们可以创建指标,例如每周的估计错误数,每个开发人员的错误数,
所以呢?那就是方法论的来龙去脉-如果您的预测模型无法满足流程质量,则可以选择添加或删除方法论的某些方面,并查看其如何影响模型。当然,没有人会因为担心失败而愿意参与开发过程,但是我们已经以持续高且可预测的速度失败了。通过进行单独的更改并衡量结果,您可能会发现敏捷是您团队的理想方法,但是您可以轻松地找到RUP,瀑布式或最佳实践的杂烩。
因此,我的建议是让我们不再担心我们所说的流程,进行与我们的开发流程目标相关的检查,并尝试使用不同的技术来改进该流程。