如何建立“品质崇拜” [关闭]


21

DeMarco和Lister(Peopleware)建议您在编程团队中创建“质量崇拜”。令人沮丧的是,他们没有建议您如何去做!

有人对如何实现这一目标有任何想法吗?


1
您的“品质崇拜”只会在时间允许的范围内有效。当老板说“必须在星期五之前完成”时,您就不得不为了速度而降低质量。显然,这不是程序员喜欢的。理想情况下,我们更喜欢时间来确保质量!
反转

1
@WesleyWerner:好点。但我认为,“品质崇拜”还应包括解决技术债务问题,这将(最终)解决您提到的老板问题。
塔隆克斯

@invert:在这种情况下,我通常会回答说,我们的情况类似于此处的CAP定理。我们拥有质量,速度和人力,他可以选择两个。
JensG 2014年

Answers:


37

我的经验是,开发团队(但总的来说,任何团队)都由3类人员组成:

  • 那些内置驱动器以提高质量的人,
  • 那些只为赚钱的人(啤酒/女孩/其他)而又不在乎的人,但是您尝试激励他们,
  • “平庸”的(因为缺少更好的词)。

最后一组人数最多,他们倾向于跟随执政党。如果团队中有足够的高素质人才,他们可以随心所欲,从而在团队合作精神和动力上形成强大的螺旋式上升。但是,如果懒汉过多,它们很容易产生相反的效果,即死亡螺旋。

因此,经理的首要任务是选择并留住合适的人,并尽快消除坏人。但是,不是“平庸”的人-他们可能会受到影响,开始改善,为他人的好主意提供支持,其中有些人甚至有可能最终成为积极的趋势制定者。

[Update2]反映了Alb的回答:IMO不需要质量开发人员在团队中占据绝对多数(尽管这不会造成伤害:-)。有一个“趋势设置阈值”,在这个阈值之上,子群体的观点和行为可以迅速成为社区内的“主流”,因此其他人会注意到并开始关注。您可以一直在更广泛的社会中看到这一点(例如(非)吸烟习惯,健康与饮食,流行时尚,有机食品)。我非常粗略的估计是,它可能在25%到30%之间,但这取决于很多因素。这是坏人可能会受重伤的地方。即使您团队中的几个坏人也会大大提高该阈值。[/ Update2]

当然,并非总是可以聘请足够多的顶尖人才。因此,当第一个派系的实力不足以自行推动事情时,管理层需要帮助他们。关于此的一些想法:

  • 我认为Scrum在产品演示中对此有一个好主意。在观众面前展示您实现的功能,不仅包括您的队友,还可能包括来自其他团队,开发人员的管理人员,甚至该应用程序的用户都可以成为极大的自豪感,并且是帮助团队果冻的重要因素。

  • 管理层要做的另一件事是认真听取开发团队的质量要求。DeMarco和Lister甚至提到,在某些公司/部门中,开发团队对可投入生产的产品拥有否决权。如果他们认为该应用程序尚未准备就绪,可以推迟发布,而不管管理层希望什么。现在,这对管理人员来说很困难,但是我可以想象它建立了团队合作精神,并强烈传达了这样的信息:质量在这里确实很重要,而不仅仅是言语层面。

  • 这就引出了下一个观点:要创建“质量崇拜”,管理层必须彻底了解大多数经验丰富的开发人员已经知道的内容:质量不是事后才想,必须从一开始就将其纳入产品中。因此,应该鼓励人们(并应为此奖励!)考虑长期可维护性,而不是快速解决方案,而是寻求良好的解决方案。

更新资料

@Machado在他的评论中(至少对我来说)使问题有了新的变化:

作为团队成员而不是经理,我可以做些什么来提高团队的代码质量?

一些想法:

  • 不断学习并将知识传播给任何听众。在您的专业领域内学习和使用最佳实践
  • 以您的工作为荣
  • 这两个几乎可以自然地使您成为他人(尤其是新人和下辈)的积极榜样。注意这一点,并为整个团队的利益发挥自己的作用。影响他人的最佳方法是积极榜样。
  • 不仅要看代码,还要看软件开发的整个过程。不断提出问题和提供反馈以优化开发过程

最后但并非最不重要的一点:找到一个可以成为“顶尖人物”的地方。如果您现在属于“中庸”组,请努力发展自己-希望以上想法对您有所帮助。但是,如果您恰好位于当前团队的“低层”,我建议您分析原因。是什么使您受挫?恶劣的工作条件?队友?管理?工作类型?激发您兴趣的是什么?您可能需要与您的同事和/或老板讨论。或者,您可能需要寻找更好的工作-甚至是新职业-在这里您可以开始发光。花一生的大部分时间从事不满意或令人沮丧的活动确实不值得。

也可能是由于外部因素(缺少更好的工作机会,需要支付账单等)导致您被迫继续当前的次优工作-这种情况时有发生。即使在这种情况下,也要尽力而为。进行高质量的工作(在环境允许的范围内)本身就是一种奖励,这有助于保持自尊心,并长期保持理智和开放。因此,当出现更好的机会时,您就准备好了。


4
一个危险的建议。如果OP属于第二/第三组怎么办?;)

1
很好的答案,我从没想过像这样,但这很有道理。
Alb

9
@Developer,如果是的话,他们不会在阅读DeMarco和Lister或在这里提问。
Alb

我认为从团队成员的角度出发,这个问题更具针对性。如果管理层真的想要质量,他们将倾听他们的顶级/核心开发人员。作为团队成员而不是经理,我可以做些什么来提高团队的代码质量?
马查多

1
@Thorbjørn,好问题!我承认,到目前为止,我在大多数工作场所中都没有想到这一点。希望不要听起来太自夸,我一直在寻找队友来学习和学习,但是我很少找到他们。所以我转向书籍和互联网。我尽可能地在马丁·福勒(Martin Fowler),鲍勃·马丁(Bob Martin)叔叔等人中找到了榜样。最近在SO社区中!这是一个学习的好地方。也是有效的“现实检查提供者”。谦卑的经历揭示了知识的局限性和不足之处,这很难理解,但对我来说却非常健康。
彼得Török

2

佩特·托克(PéterTörök)的很好回答,着重指出,只有大多数好人才能解决这个问题。一旦有了好人,就需要更多地针对胡萝卜而不是坚持。赋予开发人员权力,让他们拥有项目/任务的所有权,并鼓励质量方面的竞争,也许有人简短地介绍他们如何提高项目质量。优秀的开发人员将被激励打动他们的同行。


+1关于动力的要点。对于大多数人来说,我显然是难以理解的。我更新了答案以澄清问题。
彼得Török

2

除了Peter的评论(这实际上是核心问题)之外,您还需要确保质量不是稍后添加的功能。

进一步来说:

  • 消除任何想法“我们稍后会清理”的想法。而是在开始时就付出努力以正确地完成它。
  • 要求对变更进行审查并通过涉及开发人员以外的人员的某种质量检查流程来进行工作。
  • Force在项目早期阶段就质量进行了思考。在开发过程中,应始终保持诸如“让他人轻松维护它这样的事情”之类的重点。
  • 跟踪并报告发生的错误。如果有趋势,请寻找解决错误根源的方法。
  • 将软件思想介绍为可以改进的工艺,并为创建者感到自豪。

1

我会说最好的方法是鼓励质量胜于产出。这是精益软件运动(基于精益制造)的前提之一。我写了一篇很长的博客,讨论精益是什么。我告诉你如何建立对质量的崇拜。投资于您的员工,然后让他们投资于您的公司(不是货币投资,而是个人投资)。

丹·平克(Dan Pink)在TED上做了精彩的演讲,探讨了激励我们的因素。虽然他没有具体引用。马斯洛的需求层次完美地解释了观察到的现象。只要雇主满足前两个需求(即支付足够的钱,这样钱就不会成为问题),剩下的就是归属,尊重和自我实现。

  • 提供一个扎实的归属感社区。
  • 提供一个让员工随时随地犯错的环境,这样他们就可以在成就时树立自尊心。
  • 交给您的开发人员控制权,以便他们可以为实现自我做出重要决策

质量不是可以支配的东西,而是可以启用的。信任您的员工去做最好的事情,并摆脱困境。最终,您必须告诉他们他们需要离开。而不是要求他们投入更多时间

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.