Process 如何阻止精益编程变成牛仔编码?
我的团队一直在逐步采用越来越多的轻量级方法,从Scrum转向精益/看板,在那里,流程越来越不正式。在某个时候,我们将回到牛仔编码;事实上,我担心我们可能已经在边界线上了 一个非常轻量级的精益和敏捷流程与无政府状态之间的界限在哪里?我们怎么知道我们什么时候越过了界限?我们怎样才能防止自己越界呢Process 如何阻止精益编程变成牛仔编码?,process,agile,methodology,kanban,Process,Agile,Methodology,Kanban,我的团队一直在逐步采用越来越多的轻量级方法,从Scrum转向精益/看板,在那里,流程越来越不正式。在某个时候,我们将回到牛仔编码;事实上,我担心我们可能已经在边界线上了 一个非常轻量级的精益和敏捷流程与无政府状态之间的界限在哪里?我们怎么知道我们什么时候越过了界限?我们怎样才能防止自己越界呢 这个问题也可以用“在精益消除浪费的过程中,哪些流程不能被安全地消除”?当团队中只有一个人知道或管理代码的某些内容时,你会看到一个红色发光的大“沙龙”标志,你基本上是在推开大门。作为这条路线的一部分,我想到了
这个问题也可以用“在精益消除浪费的过程中,哪些流程不能被安全地消除”?当团队中只有一个人知道或管理代码的某些内容时,你会看到一个红色发光的大“沙龙”标志,你基本上是在推开大门。作为这条路线的一部分,我想到了什么时候完成任务/故事/工作单元的问题。如果您需要测试,并且一双眼睛已经检查了一些东西,这可能有助于防止流氓开发人员想成为牛仔的情况。类似地,代码是如何进入生产的?如果团队中的任何人能够突发奇想推送代码,那将是我心中的一个警告信号 我要注意的其他几个警告标志是:
- 团队是否有编码标准以及维护该标准的承诺
- 是否有一个人在进行“重构”时所做的大量代码更改没有人认为值得
(我有罪)雇佣(或代理)一名警长,并将代码圈起来,这样它不仅会被执行,而且会被整个团队看到。大概你担心牛仔编码的影响:
- 无要求
- 没有设计
- 不测试
- 没有来自用户的反馈
- 没有时间表
- 无法维护
- 母线系数
虽然这些方法论倾向于“人胜于过程”,但过程并没有被完全抛弃;仍然需要管理。一天结束时,你仍然对你的客户和最后期限有承诺。这些承诺应该约束奶牛。牛仔编码有什么问题?如果您开始看到质量差,代码交付时间越来越长,无法满足最终用户的期望(或者不管是谁付费),那么是时候了(我是一位PM,我这么说)。当你有一个好的/可靠的编程团队时,就不需要正式的过程——它通常是内在化的——好的程序员自然遵循好的形式/过程——我认为很多过程都是为表现较差的人准备的,这在很多情况下会对表现良好/优秀的人产生负面影响。一个好的项目经理需要根据具体情况平衡流程……领导/遵循/让路的方法类型这就是ScrumMaster/Lean/Agile教练的价值所在。无论是谁在您的团队中担任该角色,都应该能够发现团队的自律性何时下降,并提醒团队他们对彼此的代码质量所做的承诺 你可以做的另一件事是调整容器。将代码评审添加到看板上,然后对其进行限制,以确保其完成。更好的是,要求所有代码在几周内成对编写,这样好的习惯就可以重新养成,并且没有人可以声称对代码的各个部分拥有所有权 最后,考虑一下你离开Scrum的正式过程可能有点过早。Scrum的规则是教你一种完全不同的思维和工作方式。如果精益和敏捷的价值观还没有在你的团队中根深蒂固,那么很容易回到旧习惯。在这里,严格执行Scrum规则可以帮助您,直到您的团队做好准备 记住,看板是一种工具。如果您没有始终如一地将精益和敏捷原则应用到其使用中,您将无法获得全部好处 “哪些流程不能安全运行 在精益的驱动力中被淘汰 消除浪费“ 这是一个非常普遍的问题,很难准确回答
当您抛弃了没有价值的管理过程时,您需要包括更多的技术实践,比如极限编程中的实践。我谈到过的大多数敏捷教练都把测试驱动的开发、配对编程和持续集成视为敏捷使用的一种方式。有了这些技术,“牛仔编程”就很难逃脱惩罚。如果我担心代码失控,我也会加入一些代码审查。牛仔编码是流氓编码。唯一允许流氓行为的是缺乏权威的监督 敏捷的“自组织”经常被滥用,以至于在开发团队运作时,这个术语几乎毫无意义