DeMarco和Lister(Peopleware)建议您在编程团队中创建“质量崇拜”。令人沮丧的是,他们没有建议您如何去做!
有人对如何实现这一目标有任何想法吗?
DeMarco和Lister(Peopleware)建议您在编程团队中创建“质量崇拜”。令人沮丧的是,他们没有建议您如何去做!
有人对如何实现这一目标有任何想法吗?
Answers:
我的经验是,开发团队(但总的来说,任何团队)都由3类人员组成:
最后一组人数最多,他们倾向于跟随执政党。如果团队中有足够的高素质人才,他们可以随心所欲,从而在团队合作精神和动力上形成强大的螺旋式上升。但是,如果懒汉过多,它们很容易产生相反的效果,即死亡螺旋。
因此,经理的首要任务是选择并留住合适的人,并尽快消除坏人。但是,不是“平庸”的人-他们可能会受到影响,开始改善,为他人的好主意提供支持,其中有些人甚至有可能最终成为积极的趋势制定者。
[Update2]反映了Alb的回答:IMO不需要质量开发人员在团队中占据绝对多数(尽管这不会造成伤害:-)。有一个“趋势设置阈值”,在这个阈值之上,子群体的观点和行为可以迅速成为社区内的“主流”,因此其他人会注意到并开始关注。您可以一直在更广泛的社会中看到这一点(例如(非)吸烟习惯,健康与饮食,流行时尚,有机食品)。我非常粗略的估计是,它可能在25%到30%之间,但这取决于很多因素。这是坏人可能会受重伤的地方。即使您团队中的几个坏人也会大大提高该阈值。[/ Update2]
当然,并非总是可以聘请足够多的顶尖人才。因此,当第一个派系的实力不足以自行推动事情时,管理层需要帮助他们。关于此的一些想法:
我认为Scrum在产品演示中对此有一个好主意。在观众面前展示您实现的功能,不仅包括您的队友,还可能包括来自其他团队,开发人员的管理人员,甚至该应用程序的用户都可以成为极大的自豪感,并且是帮助团队果冻的重要因素。
管理层要做的另一件事是认真听取开发团队的质量要求。DeMarco和Lister甚至提到,在某些公司/部门中,开发团队对可投入生产的产品拥有否决权。如果他们认为该应用程序尚未准备就绪,可以推迟发布,而不管管理层希望什么。现在,这对管理人员来说很困难,但是我可以想象它建立了团队合作精神,并强烈传达了这样的信息:质量在这里确实很重要,而不仅仅是言语层面。
这就引出了下一个观点:要创建“质量崇拜”,管理层必须彻底了解大多数经验丰富的开发人员已经知道的内容:质量不是事后才想,必须从一开始就将其纳入产品中。因此,应该鼓励人们(并应为此奖励!)考虑长期可维护性,而不是快速解决方案,而是寻求良好的解决方案。
@Machado在他的评论中(至少对我来说)使问题有了新的变化:
作为团队成员而不是经理,我可以做些什么来提高团队的代码质量?
一些想法:
最后但并非最不重要的一点:找到一个可以成为“顶尖人物”的地方。如果您现在属于“中庸”组,请努力发展自己-希望以上想法对您有所帮助。但是,如果您恰好位于当前团队的“低层”,我建议您分析原因。是什么使您受挫?恶劣的工作条件?队友?管理?工作类型?激发您兴趣的是什么?您可能需要与您的同事和/或老板讨论。或者,您可能需要寻找更好的工作-甚至是新职业-在这里您可以开始发光。花一生的大部分时间从事不满意或令人沮丧的活动确实不值得。
也可能是由于外部因素(缺少更好的工作机会,需要支付账单等)导致您被迫继续当前的次优工作-这种情况时有发生。即使在这种情况下,也要尽力而为。进行高质量的工作(在环境允许的范围内)本身就是一种奖励,这有助于保持自尊心,并长期保持理智和开放。因此,当出现更好的机会时,您就准备好了。
我会说最好的方法是鼓励质量胜于产出。这是精益软件运动(基于精益制造)的前提之一。我写了一篇很长的博客,讨论精益是什么。我告诉你如何建立对质量的崇拜。投资于您的员工,然后让他们投资于您的公司(不是货币投资,而是个人投资)。
丹·平克(Dan Pink)在TED上做了精彩的演讲,探讨了激励我们的因素。虽然他没有具体引用。马斯洛的需求层次完美地解释了观察到的现象。只要雇主满足前两个需求(即支付足够的钱,这样钱就不会成为问题),剩下的就是归属,尊重和自我实现。
质量不是可以支配的东西,而是可以启用的。信任您的员工去做最好的事情,并摆脱困境。最终,您必须告诉他们他们需要离开。而不是要求他们投入更多时间