当你的小组中只有一个人知道或管理代码的某些事情时,你就会看到一个漂亮的红色发光的“Saloon”标志,而你基本上是在推门。
牛仔编码出了什么问题?如果您开始看到质量差,代码交付时间越来越长,无法满足最终用户的期望(或者无论是谁付钱),那么它的时间(我是PM说这个)。当你有一个优秀/可靠的编程团队时,不需要正式的流程 - 它通常是内化的 - 优秀的程序员自然地遵循良好的形式/流程 - 我认为很多流程适用于那些表现较差的人许多案例对优秀/优秀表现者产生负面影响。一个好的项目经理需要平衡过程与特定情况......领先/跟随/走出路的方法
作为任务/故事/工作单元何时完成的问题在脑海中浮现在脑海中。如果你需要测试,并且一双眼睛已经看了一些东西,这可能有助于防止想成为牛仔的流氓开发者的情况。同样,代码如何投入生产?如果团队中的任何人都可以随心所欲地推送代码,那将是我心中的警告信号。
我要注意的其他一些警示标志是:
可能没有明确的警告标志清单,如果你看到你告诉你你在牛仔领域。就个人而言,如果人们发布未经测试的代码,开发未明确理解的功能,或者无论如何急于工作或忽略警告标志,我都会担心。
最好用自己的判断。希望,因为你问的问题是你是治安官的合适人选。
我想如果你保留一些代码审查,那么这方面就不会出错。如果没有人知道其他程序员在做什么以及他们是如何做的,那么你可能已经越过了这条线。
雇佣(或代理)治安官,并将代码集中起来,以便它不仅仅会被提交,而是被整个团队看到。
牛仔编码是流氓编码。允许流氓行为的唯一因素是权威机构缺乏监督。
敏捷的“自组织”经常被滥用到使得这个词大部分毫无意义的地步,因为开发团队机会性地将其重新解释为“自我决定”。
管理的精益组织方法可能与我们习惯的方式有很大的不同 - 甚至来自敏捷团队。正是这个组织和方向问题及其组织机制才能发挥重要作用。
在软件中采用精益产品开发仍然很年轻,不幸的是受到看板分心的影响。但这是可以预期的 - 方法中最可外化的方面通常是首先被认可和采用的方面,而这些通常是最机械的方面。看板是精益的公然机械部分。但它只是一部分。
精益是一种组织变革,远远超过敏捷。如果你不改变董事在组织中的角色,那么你可能最终只能访问精益的最重要和机械方面,并且可能以最天真的方式。
为了让任何组织中的任何人都不会流氓,他们需要被指示去实现期望。不过,导演在精益组织中的角色不仅仅是一个欺负者。精益组织(开发团队等)的董事也是一名技术工人,能够教授他人必要的技能,以便更加熟练地履行他们承担责任的期望。
无论您采用何种具体流程(代码审查,配对,激励等),都取决于您在恰好考虑它们的特定时刻特定于您的组织的太多因素。努力的导演应该了解如何争取整个团队的集体脑力,找到良好的解决方案或探索,实验和学习的途径,并做出最好的决定 - 即使它偶尔意味着与集体相矛盾(特别是如果集体在精益方面很年轻)。
除非您的组织完全分散了精益的知识分子主义(例如看板)之类的弱导演问题。如果你让人们变得流氓,你就没有方法论问题,你就会遇到组织问题。如果你遇到组织问题,你就不可避免地遇到了董事职位问题,以及一个非生产性使用权力的问题。
精益和敏捷都涉及在非常具体的背景下最大限度地减少浪费:提供价值。
如果您停止使用有助于您有效生成价值的流程,那么您将产生更少的价值或更快地产生价值。
由于精益和敏捷技术都涉及衡量您在价值生产方面取得的进展,因此您应该能够分辨出何时越过界限并消除有用的做法。
如果您没有使用速度或周期时间来衡量您的价值交付,那么您已经越过了界限!
正式过程越来越少。在某些时候,我们将回到牛仔编码......
Agile / Lean / Scrum“流程”的讽刺之处在于,不太正式的流程不会导致牛仔编程。
而这些方法论 的 比较喜欢 强> “人过度过程”,过程并未完全抛弃;管理仍然是必需的。在一天结束时,您仍然对客户和截止日期做出承诺。这些承诺应该控制在奶牛身上。
“什么过程不能安全 在精益的驱动下消失了 消除浪费“?
这是一个非常普遍的问题,很难准确回答。
当您抛弃不产生价值的管理流程时,您需要包含更多技术实践,例如eXtreme Programming中的技术实践。我所谈到的大多数敏捷教练都认为测试驱动开发,结对编程和持续集成在他们使用敏捷采用时是一个给定的。使用这些技术摆脱“牛仔编程”是非常困难的。如果我担心代码失控,我也会抛出一些代码评论。
(我一直很内疚)
想必你担心的是 效果 牛仔编码:
只要你有一个计划/机制/过程来避免这些不良影响,那么你就好了;对?
也许与客户打交道,所以你不要在BAU预算下写一个理论体系,而这个预算并不是企业真正想要的?再与您的经理交谈。
这就是ScrumMaster / Lean / Agile教练的价值所在。在你的团队中填补这个角色的人应该能够发现团队的自律何时正在下滑,并提醒团队他们彼此之间就这个问题做出的承诺。他们的代码质量。
您可以做的另一件事是调整容器。将代码评论添加到您的看板,然后对其进行限制以确保完成。更好的是,要求所有代码成对写入几周,以便改善良好的习惯,并且没有人可以对代码的各个部分声明所有权。
最后,考虑一下,或许你离开正式的Scrum过程有点为时过早。 Scrum的规则是教你一种完全不同的思考和工作方式。如果精益和敏捷的价值观尚未在你的团队中根深蒂固,那么很容易回到原来的习惯中。这是严格执行Scrum规则可以帮助您,直到您的团队准备就绪的地方。
请记住,看板是一种工具。如果您没有始终如一地将精益和敏捷原则应用于其使用,您将无法获得全部收益。