面对现实吧。开发者体验是一个流行语。这意味着它被笼统地谈论了很多,而实质内容或定义却很少。
这就是为什么我受到启发开始- 一项旨在为开发人员体验讨论带来更多质感和定义的倡议。在每个“情节”中,我都会向行业领导者询问 10 个关于开发人员体验的问题,以收集他们对这些特定主题的见解和意见。然后我发布这些讨论并与社区分享。
我进行了近 20 次采访,现在有足够的材料开始以有用的方式进行汇总,并发现一些有趣的趋势和重复的主题。
这是创建优秀工程文化的终极指南。我在 DevX 项目采访中问过的一个问题是“伟大的工程文化的关键要素是什么”。
这是一个重要的问题,因为归根结底,你公司的一切都会受到你所创造的文化的影响——无论好坏。正如所说:“文化把战略当早餐吃,因为文化能让你的团队在不可预测的情况下以可预测的方式行事。”
那么,文化到底是什么?好问题。我故意让那部分有待解释,反应也同样广泛。一些受访者关注开发人员本身。其他人专注于公司和公司政策。一些提供技术或专业建议,而另一些则提供人际关系和沟通技巧。
这是第一点,也许是最重要的一点。真正伟大的工程文化需要并行平衡多个项目。
具体细节可能因组织和情况而异,但共同点是需要三维文化建设方法。
因此,我希望您喜欢这份开发人员体验指南,以构建伟大的工程文化,它是从 DevX 项目访谈中收集和改编的。
DevX 项目的几个功能反映了为开发人员创造自由和自主文化的重要性。
正如的所说:“我认为它真的依赖于丹·平克在他的书《驱动力——关于我们的动机的令人惊讶的真相》中所说的内容。”他介绍了自主性、精通和目标作为关键的激励因素。因此,当您赋予开发人员自主权来掌握他们的手艺时,他们也会制定一个创造伟大文化的目标……并且不要将工具强加给工程师。我认为你应该让你的工程师选择他们自己的工具。赋予他们自主权和所有权。”
补充说:“对我来说,最重要的是可以自由做出决定。我相信,许多公司对待工程师就像对待孩子一样——握着他们的手,告诉他们该做什么。现在你可以过马路了,现在你需要停下来。现在你向左移动,现在你向右移动。对我来说,这对开发人员的任何创造力和学习能力来说真的是一种毁灭性的打击。这是毁灭性的,因为我相信我们作为开发人员的大部分工作都是在思考和解决问题。编写代码很容易。一旦你知道要写什么并假设你至少对语法和类似的东西有基本的了解,那么编写代码就是这个过程中最简单的部分。弄清楚要写什么以及如何写——这是复杂的部分。如果我们没有为人们提供足够的自由来弄清楚这些东西,那么我们最终会得到我们不想要的结果——东西不起作用,因为开发人员只是机器人,他们完全按照你告诉他们的去做,没有任何他们自己的想法或创造力。”
开发人员自主权的好处不仅限于技术决策。它还可以帮助培养团队成员之间更好的人际关系。 Seif Lotfy 强调了建立真实关系的好处,他解释说:“除了超级专业的关系,让团队自由行动,做他们自己,并欣赏彼此的真实身份。”
自治意味着让人们成为最好的、真实的自己。当这种情况发生时,它通常会为团队和公司带来积极的结果。
正如所说,如果您可以“雇用有趣的聪明人”,这也会有所帮助。
赋予开发人员自主权与开发人员对其工作采取主动所有权和问责制的需求相吻合。
Liran Haimovitch 认为,所有权和问责制是任何伟大文化中最重要的两个要素。
强调这种所有权应该是“主动所有权”:“亚马逊的清单中的第 9 项 - “行动偏见”。我觉得这在这种情况下很重要,因为如果你不主动掌控,很多事情就无法完成。因此,这对于健康的工程文化非常重要。”
Seif Lotfy 反映,开发人员进行交流并询问原因很重要:“确保您了解其他人的方法和决策中的想法。这样,即使您不同意,您也可以考虑所有因素并尝试找到最佳的前进道路。
补充说,这不应该取决于有人要求解释。您应该建立一种预先提供“为什么”的文化:
“分享你的知识并解释你为什么选择 x 而不是 y。这样人们就可以向你学习,并在他们的日常工作中采用你的最佳实践和独特的思维方式。”
一个类似且同样重要的价值是透明度。
Amir Shevat 解释说:“透明度非常重要。这意味着创造一个环境,让工程师可以看到更大的图景——我们要去哪里,为什么我们正在做我们正在做的事情。为开发人员创建这种类型的环境将使他们能够创建更好的代码。”
当沟通和透明度得到适当维护时,您还会获得“诚信”中的另一个关键文化要素。正如阿米尔所说:“如果你认为有什么不对的地方——大声说出来。流程可以而且应该改变并朝着更好的方向发展。”
来自 Wilco 的提出了类似的观点:“关键是要始终思考我们可以改进的地方:在我们的系统、流程、产品、代码风格、监控工具中,等等。建立一个系统有无数方面,它永远不会是完美的——但我们应该始终寻找改进的方法。”这是沟通、透明度和完整性在良好的工程文化中表现出来的一种方式。
Swyx 和都表示,无可指责的反馈和事后分析文化至关重要。
用 Swyx 的话来说:“当你运送东西并在生产中维护东西时,请记住,东西总是会坏的。因此,拥有一种无可指责的事后分析文化也很重要。”
这也得到了 Amir Shevat 的赞同,他补充说团队中的每个人都应该对接收反馈持开放态度:“一般来说,对彼此反馈持开放态度的工程师在工作中表现得更好。
您如何才能实现零责备文化?根据 Seif Lotfy 的说法,它从您的基本假设开始:“重要的是要建立一个基本假设,即每个人都是善意的。这对于处于不同时区和日程安排的分布式团队尤为重要。”
如果每个人都认为其他人都是好意的,并且每个团队成员都乐于接受反馈而不会受到责备 - 团队将处于有利地位,可以有效地完成工作。
的是这样说的:“伟大的文化基于信任和理解。两者都是基于共同的经验随着时间的推移而建立起来的。”
毫不奇怪,协作作为工程文化的关键组成部分在我们的几次采访中都得到了回应。
正如的所说:“您需要与他人合作以提出最佳解决方案,并确保实现最终目标。”
Amir Shevat 解释说:“我认为,协作性强的团队总是会胜过协作性差的团队,即使协作性差的团队中充满了‘了不起的’工程师个体。我个人曾参与过不那么协作的工程团队。他们有很棒的工程师,但他们并没有真正分享他们在做什么。当人们开始协作、分享、提供反馈并讨论每个人正在从事的工作之间的接口时,这会更加有益。”
对工艺和产品的热情
来自的说:“我认为一个团队可以拥有的最好的东西就是对他们正在构建的产品的真正热情。在从事过我已经投资和未投资的项目后,士气(以及产出)的差异是惊人的。当工程师真正关心他们的工作时,我认为文化会提高十倍。雇用愿意为您的项目工作的聪明人。”
Amir Shevat 强调了专业精神在创造优秀工程文化方面的重要性:“始终考虑公司的需求。这应该适用于你工作的方方面面……虽然技术很好,甚至是必要的,但培养你的商业思维真的有助于创造一种文化,在这种文化中,不仅优先考虑最技术性的解决方案,而且优先考虑有助于实现目标的解决方案对公司来说最好的结果。”
来自的表示同意:“对我来说,伟大的工程文化的关键要素是:好人。没有太多的自我。专业精神和对工艺的自豪感。这些元素建立了一个创造性的环境,没有这些成分,就很难创造一种积极、富有成效的文化。”
从更技术性的角度来看,Swyx 建议团队将重点放在文档上:“良好的文档或设计文档文化也非常重要。换句话说,在你实施某件事之前,你显然应该尝试设计它并仔细考虑这些提议并与每个人就高层问题达成一致。但良好的文化更进一步。这意味着每个人在收到文档时都会真正阅读文档。这是非常罕见的。因此,良好的文档文化意味着良好的写作和良好的阅读,这样你就可以尽早发现设计问题和不匹配的期望。”
Amir Shevat 强调了健康交付节奏的价值:“拥有健康的交付节奏对于工程文化也非常重要,因为当团队持续交付时,他们能够定期从工作中获得快乐和满足感。”
Barak Shoester 同样鼓励团队“优化迭代速度”。
Jason Bosco 说:“对我来说,一些关键因素是:减少工程师编写代码和用户使用它之间花费的时间,再加上毫不费力的回滚……”
虽然这在我们的许多采访中以某种形式出现,但来自和说得很好:“谦逊对我来说很重要,这不仅适用于工程,而且适用于一般的工作文化。团队成员应该愿意并准备好帮助他人,营造一种没有人觉得问题太愚蠢而无法提出的环境。”
我认为我可以在这里给出很多陈词滥调的答案,并且在某种程度上,我觉得有更多经验丰富的开发人员可以更好地回答这个问题。所以我要提出的最后一件事是,当一个团队以任务为导向时,并且该团队都在唱同一张赞美诗,那么惊人的事情就会发生。
用 Gil Tayar 的话来说:“对我来说,伟大的工程文化的关键要素是:好人。没有太多的自我。专业精神和对工艺的自豪感。”
显然,一个好的工程师需要具备一定的技术能力底线。但在建立和管理团队时,正是这些额外的因素将确保他们相互保持高标准、保持好奇、保持积极并不断努力改进。
这就是伟大的工程文化的全部意义所在。
喜欢你在这里看到的吗?想成为特色?查看我们的以了解其他强大功能并申请分享您自己的开发经验智慧。
也发布。