“开发人员的工作是建立 - 将其快速构建并建立对。”

很长一段时间我买到那个心态,它很好地为我的开发人员提供了。我会快速构建东西,我的代码很好地结构化和测试,我与我的团队相处得很好。我祝贺并奖励这件事。我被称为“顶级表演者”。项目是否成功或失败了并不重要。只要我做得很好地建造,那就是那么重要。

大多数公司的开发人员的绩效评估往往会侧重于这三个问题:

速度:你能写作多少努力?质量:您编写的代码的质量是什么?团队合作:你和周围人的人如何合作?

虽然这些领域地址需要成为一个好的开发人员所需的基本日常技能,但他们忽略了更广泛的产品背景,并饲养了一个已经根深的开发商心态“我的角色只是为了建立”,为整体产品目标进行零问责制(即,我们为什么要构建它)。

那么为什么这是一个问题?

没有产品目标和结果产品经理的工作?如果开发人员开始担心转换率和KPI,那么它不会开始将他们的焦点远离完成他们最能做的事情吗?那要看。

首先,如果您在瀑布的环境中运营,那些开发人员几乎没有或没有参与建设阶段的任何东西,那么使他们对他们无法控制的东西负责是不公平的。

然而,在一个自治团队共同拥有某些目标的项目的敏捷Scrum的环境中,开发人员可以且应该对团队的其他所有贡献成员负责。虽然产品经理推动产品策略,但开发人员应该能够理解和购买该战略,并最终利用他们的技术知识来影响产品决策。

具有集体所有权和问责制的鼓励开发人员创造性地思考实施和优化实现产品目标,而不是仅仅是在技术上有趣的解决方案。

我将成为第一个承认我经常跳过的机会建立技术上挑战的解决方案,而不是质疑其对产品的价值,或者建议更简单的解决方案,可能仍然可以实现相同的产品目标。更难更有趣,因此偏向于开发人员的默认行为。

几年前,我记得我与产品经理的交换机:

下午:我们应该允许客户保存信用卡以备将来购买。

我:当然,我们可以在将它们存储在数据库中之前加密信用卡号。为了更好的安全性,我们应该使用围绕访问的更严格协议使用单独的数据库服务器。我们还需要对加密密钥进行适当的密钥管理策略,因此我们应该介入操作。

下午:听起来很复杂,但安全性是必不可少的,所以让我们绝对这样做。

后来,我意识到我的建议的实施对于我们的用例完全没必要。我们可以通过更简单的实现提供相同的用户值:

我:如果我们的目标是减少返回客户的摩擦,我们实际上并不需要在我们的数据库中存储信用卡号。相反,我们可以在我们的付款网关上授予信用卡,因此我们不必处理存储实际的信用卡号码,但仍然可以允许客户重复使用已保存的(令牌化的)信用卡。

专注于更大的图片

在我职业生涯的某一点,我意识到我的团队的移动能力更快受到我对产品和产品目标的理解的限制。我正在努力,但不一定工作聪明。我是瓶颈。

所以我开始问问题。我想知道产品决策背后的推理。我意识到我需要影响这些决定。我的心态作为开发者开始改变。我开始询问关于UX和客户价值的问题。而不是在有机会中跳跃建立技术上很复杂的功能,而是开始发现除了没有增加大量客户价值的复杂性的方法。

作为一个发展经理,我试图灌输我团队开发人员之间的同样的心态:对于您构建的一切,请确保您知道您为什么要建立它并确保它是值得的。如果您不同意它们,您应该了解产品决策并挑战它们。

这里的一个重要先决条件是团队自治和团队内部。如果团队中的团队或团队内的辛勤人,则没有声音来影响产品,那么需要先修复。

通过,我们可以重新定义开发人员的评估标准:

结果:您为实现团队的产品目标做出了多少贡献?可持续发展:你在长期生产的工作是如何?团队合作:你如何让你周围的人更好?

速度和质量仍然是相关的,但仅在实现结果和可持续性方面。团队合作不仅仅是与你的团队相处,而且还对实际对他们产生积极影响。

把它付诸实践

那么你如何评估开发人员,和呢?我发现询问以下问题是一个很好的起点:

结果

可持续性

团队合作

这里的重点是改变开发人员的心态,只是建设者成为他们在建造的成功的业主。拥有这种心态的开发人员是独特的,因为他们能够将产品知识与深层技术专业知识结合起来,对产品产生深远的影响。

改变的心态并不容易,但将其绑进开发人员的评估方式设置了明确的期望,即开发人员的工作不仅仅是建立,而且还可以告知内置的内容。

Zach Mathew是新鲜簿的发展经理。