paint-brush
如何成为 10 倍开发者:基本指南经过@zawistowski
15,925 讀數
15,925 讀數

如何成为 10 倍开发者:基本指南

经过 Wojciech Zawistowski14m2023/03/22
Read on Terminal Reader

太長; 讀書

通过改进您的工作方式,您只会增加团队的绩效。通过改善每个人的工作方式,您可以成倍提高团队的绩效。成为乘数会让你受到关注并得到提升。我将向您展示 16 种行之有效的方法。
featured image - 如何成为 10 倍开发者:基本指南
Wojciech Zawistowski HackerNoon profile picture
  • 软件开发是一项团队运动。你的个人表现并不像你整个团队和公司的表现那么重要。


  • 通过改进您的工作方式,您只会增加团队的绩效。通过改善每个人的工作方式,您可以成倍提高团队的绩效。


  • 与成为一个疯狂高效的个人贡献者相比,将整个团队的绩效成倍增加会让你更快地受到关注和晋升。


  • 与提高个人绩效相比,提高其他人的绩效需要不同的心态和方法。在本文中,我将向您展示 16 种行之有效的方法,可以使您的团队(甚至整个公司)的绩效倍增。

10 倍开发的常见误解

如果你用谷歌搜索“10x developer”这个词,你会得到很多与个人表现相关的结果。


查看我得到的一些最重要结果中的引述:


  • “十倍的开发人员是指比团队中的普通开发人员效率高十倍的开发人员。”


  • “这些是您想要解决问题的人;他们会用 1/10 的时间和 1/10 的代码行数来解决问题。”


  • “我习惯于在团队中与 7-8 名开发人员一起完成 60% 的工作。”


像这样的陈述让我感到畏缩。


这。是。不是。如何。我们。建造。现代的。软件。


软件开发是一个团队游戏。甚至是团队游戏。游戏的评分标准是业务成果,而不是原始输出。通过作为团队和组织有效,而不是作为个人有效


作为工程副总裁,我不是在寻找有竞争力的编码员。我不在乎你在什么时候编写了多少行代码。一个开发人员完成了团队 60% 的工作,这不是我会吹嘘的事情,而是我会优先考虑解决的功能障碍。


那么,我找谁呢?让我们考虑以下数学:

团队合作的简单数学

如果你只提高自己的产出,你就会增加团队的产出。


但是如果你提高每个团队成员的产出,你的团队的产出就会成倍增加。


乘法很快就胜过加法。


即使您真的是神话般的 10 倍开发者,无论团队规模如何,您也只会将团队的产出增加 10 个“单位”。但是,如果你将整个团队的产出提高 2 倍,那么对于一个只有 10 人的团队来说,你会增加 10 个“单位”。并由100个“单位”组成一个100人的团队。


我们谈论的是一种极端情况,你的效率是团队中其他开发人员的 10 倍。实际上,对于少于 10 人的团队来说,乘法会胜过加法。


另外,我们只讨论原始输出:你用多大的力推动,而不是你推动的方向。整个团队推进的方向至关重要。

你的团队和你的个人表现是相关的

如果摩托艇有 100 或 1000 马力的发动机,只要该发动机将船推向侧面或向后,而不是向前,这并不重要。如果你朝着错误的方向推进,你不仅会浪费自己的产出——你可能会破坏整个团队的工作。


您可以成为-10x开发人员。


而且这种关系是双向的。


即使朝着正确的方向前进,如果你的团队的其他人朝着相反的方向前进,你的神模式 10 倍生产力也会被抵消。


你需要帮助他们,他们才能帮助你。取消你团队的弱点,这样他们就不会取消你的表现。


这听起来可能违反直觉,但专注于提高整个团队的效率通常是提高个人绩效的更好方法,而不是只关注自己的产出。


这就是为什么我和其他经理不看重个人效率,而是看重对团队产生积极影响的能力。你产生的影响越大——你帮助的人越多地朝着正确的方向快速前进——你为公司创造的价值就越大。


但不要只相信我的话。

是什么让您在大多数软件公司获得晋升?

让我们来看看一些知名公司的工程职业阶梯:

圈子CI

CircleCI 使用 6 级阶梯(E1-E6):助理工程师、工程师、高级工程师、高级工程师、高级高级工程师和首席工程师。


E1-E3 级别侧重于工作的执行。任务内的 E1,史诗/项目内的 E2,团队内的 E3。


E4-E6 级利用技能来扩展和产生影响力。他们促进、指导和指导他人。团队内的 E4 和团队的业务利益相关者,跨多个团队的 E5,以及跨组织的 E6。


资料来源: https://docs.google.com/spreadsheets/d/131XZCEb8LoXqy79WWrhCX4sBnGhCM1nAIz4feFZJsEo/edit#gid=0

宪章

Carta 使用 7 级阶梯 (L2-L8)。用他们自己的话说:


很容易阐明对调平来说最重要的一件事情:你对公司的影响。我们可以通过描述我们期望员工在进步时产生的(粗略)影响来总结整个系统:对任务(L2)、对特性(L3)、对问题(L4)、对团队(L5)、对组织(L6)、公司 (L7) 和行业 (L8)。


资料来源: https://medium.com/building-carta/engineering-levels-at-carta-d33db2a55a20

Spotify 音乐

Spotify 不太关心高级、员工或主要开发人员等外部头衔。他们对他们非常灵活,让员工选择对他们最有意义的东西。但在内部,他们使用按他们所谓的“影响范围”组织的 4 级阶梯。


他们这样描述这 4 个级别(“步骤”):


我们已经确定了您在 Spotify 职业道路上的四个步骤。每个步骤不仅以增加的责任为标志,而且还以您在技术中的影响力增加为标志:个人步骤、小队/章节步骤、部落/公会步骤、技术/公司步骤。


资料来源: https ://engineering.atspotify.com/2016/02/spotify-technology-career-steps/

投递箱

Dropbox 使用 7 级阶梯 (IC1-IC7):软件工程师 1-4、高级软件工程师、首席软件工程师和高级首席软件工程师。


这是他们描述每个级别的“影响程度”的方式:


  • IC1:在我的经理的具体指导下,我在我的团队范围内工作。


  • IC2:我主要在我的团队范围内工作,并得到我经理的高层指导。


  • IC3:我主要与我的直接团队和跨职能合作伙伴一起工作,同时为我的项目推动跨团队协作。


  • IC4:我是我团队的强有力的领导者,我的影响力开始扩展到我的团队之外。


  • IC5:我越来越多地影响其他 Dropbox 团队的路线图,以实现影响业务的目标。


  • IC6:我通常会影响团队的技术策略。


  • IC7:我通常会影响部门和公司范围内的战略,以实现影响业务的目标。


来源:https: //dropbox.github.io/dbx-career-framework/


我选择了这 4 家公司,因为他们最简洁地描述了他们的阶梯,因此几乎可以直接引用。但类似的模式在整个行业广泛重复。


那么是什么让你在所有这些公司得到晋升呢?他们最看重什么?


同样,您所产生的影响范围。


你对组织的更大块(以及更多的人)产生积极影响,你对公司的价值就越大——你得到的认可也就越多。


在这样的水平上运作可能听起来很可怕。但是,将整个团队的绩效提高 2 或 3 倍通常没有听起来那么令人生畏。比将您的个人表现提高到 10 倍更容易。


好的,那你怎么能做到呢?

如何影响整个团队或公司的绩效

很难做到面面俱到,因为有很多方法可以对他人的表现产生积极影响。但是让我们探索其中的几个,这样您就可以获得一个好的要点并建立让您自己想出更多想法的思维方式。

1. 教导、指导和分享你的知识

从小做起。与你的队友讨论事情。通过代码审查、结对编程和团队会议传播您的知识。通过您的工作和行为以身作则。


不仅要传播有关编码的知识,还要传播任何可能影响团队绩效的知识:流程、沟通和时间管理。


通过棕色包、研讨会和博客将您的影响扩大到更多人。抓住机会与其他团队合作。


最后,当您被广泛认可为专家时,负责管理全公司的学习计划或领导实践社区。

2. 将新知识带入公司

不要成为一次性的轰动。不要只依赖于你以前的经验。


不断学习。与公司以外的同事交谈。读。去参加会议。随时了解行业的最新动态。研究其他公司在做什么。尝试新技术和库。


成为创新知识的源泉,帮助您的团队更上一层楼。

3. 计划和协调项目

无论您使用什么流程,软件开发最终都是一个大大小小的项目流。它们的分析、分解、计划和执行的好坏对运行它们的团队的绩效有着巨大的影响。


自愿准备和领导项目是影响多人绩效的好方法。


首先负责流程的一部分:需求分析、实施计划或任务分解。


通过拥有端到端的流程,监督整个项目的执行来调高它。


为了获得最大的影响,负责协调大型跨团队项目。

4. 取得部分代码库或产品的所有权

在复杂的软件系统中,有很多“活动部件”需要长期维护:模块、库、子系统、产品、服务、API、工具、文档、管道等等。没有明确的所有权,要维护好它们并不容易。


它们的维护程度对使用它们的每个人的表现都有巨大影响——对于某些基石模块,这甚至可能意味着整个公司的每个人。


通过拥有公司代码库、产品或子系统的一部分并保持良好状态,您可以产生不容忽视的影响。


在较小的范围内,您可以维护团队内部的一些东西,例如,一个小代码模块或 Web 服务。


在更大的范围内,您可以维护整个产品和公司的基础,例如中央设计系统或面向客户的 API。

5.改进工具

高效的工具对团队的速度有很大的影响。我们的工作中有很多东西可以优化、自动化或以更巧妙的方式使用。


可靠的 CI/CD 管道。代码格式化和 linting。快速测试套件。自动代码和测试数据生成。更高效的代码导航。充分利用 IDE 的强大功能。更好的本地、测试和暂存环境。完善的项目管理系统。


用于调试、监控和日志记录的强大工具。更好地发现组件和共享库。自动化和连接您的工作流程(Github、Slack、Trello 等)。这个清单可以继续下去。


通过改进工具、自动化重复性任务,甚至只是传播如何更好地使用现有工具的知识,您都可以极大地影响团队和整个公司的绩效。

6. 改进代码库和架构

设身处地为那些将在您之后访问该项目的同事着想。易于理解的代码和架构可以成就或破坏整个团队的绩效。使它们更干净、更简单、更易于导航和调试,并且不易出错。


即使对一个组件或模块进行相对较小的改进,也可以显着提高团队的绩效。而更全球化的改进——例如,对产品范围的代码约定——甚至可以影响整个公司。

7. 帮助你的团队朝着正确的方向前进

将人们团结起来朝着一个正确的方向努力是提高整个团队绩效的最有效方法之一。你可以比你想象的更多地影响它。


首先,自己要认清正确的方向。努力了解贵公司的目标、业务和客户。这将使您了解需要解决哪些问题,并针对这些问题提出更好的解决方案。


其次,帮助你的团队朝着正确的方向前进。分享并记录你学到的东西。帮助您的团队跟踪相关指标、收集反馈并以更迭代、更敏捷的方式工作。成为您的产品经理值得信赖的顾问。


第三,帮助协调其他团队和利益相关者,使整个公司朝着一个方向前进。

8. 支持非开发者

软件不仅仅由软件开发人员构建。这是开发人员、设计人员、测试人员、产品经理、分析师、数据科学家、用户研究人员和各种业务利益相关者(客户支持、营销、销售、财务)的共同努力。


支持他们。紧密合作。努力让他们的生活更轻松,帮助他们快速前进,并协调你的努力,以便整个跨职能团队顺利合作。


这将使您能够在比仅工程团队更广泛的范围内影响您的组织。

9.改进方法和流程

您的团队和组织的工作方式对绩效有着根本性的影响。它不仅适用于经理和 scrum master。作为开发人员,您也可以对公司流程产生很大影响。


首先,教育自己。了解经验主义、迭代开发、产品发现和敏捷的原则。了解现代技术方法,如 CI/CD 或基于特征标志的开发。了解现代跨职能团队的运作方式。


第二,用批判的眼光观察,主动寻找改进的机会,主动塑造过程。在团队内外保持活跃。参与流程相关的讨论。支持实施新想法。


您将能够成倍地提高许多人和团队的绩效。

10. 领导技术计划

许多技术改进需要整个团队在较长时间内的共同努力:陆续用新框架替换旧框架,迁移到一套新的编码约定,并逐步重构代码库的关键部分。


如果他们没有得到一致的管理和推动,这些举措通常很快就会失败。他们的结果充其量是平庸的。


自愿领导此类倡议。如果你很好地计划和管理它们,如果你让其他人更容易做出贡献,如果你协调他们周围的努力并看到它们完成,你可以对你的团队和组织的未来绩效产生重大影响。

11.改善沟通和透明度

清晰、透明的沟通对于有效的团队合作至关重要。它决定了人们的协调程度、彼此的信任程度、做出的决策的正确程度以及他们对目标的理解程度。


这适用于所有级别:团队内部、团队之间、不同角色和部门之间以及员工和管理层之间。沟通质量会阻碍或释放整个组织的绩效。


你可以做很多事情来改进它。


与其他团队分享您的状态。保持团队和公司的文档、路线图和 wiki 处于良好状态。主动从其他团队获取信息,帮助您的团队随时了解情况。


请管理层阐明您团队的目标,并向他们更新您的进展情况。提议改进公司范围内的通信标准和渠道(Slack 等)。必要时召开跨团队协调会议。

12. 示范和弘扬文化

没有单一的正确文化。不同的公司以不同的方式行事,但取得了相似的成功。但如果同一家公司的不同人员、团队和部门在文化上发生冲突,就会扼杀生产力。


了解贵公司的文化。加以示范和推广。注意您的行为和沟通方式。


它对公司业绩的影响超出您的想象。

13.激励他人

有时,达到更高的绩效只是一个动力问题。愿意更加努力。感觉更加渴望成功。有正确的态度。


您不必成为经理就可以影响团队的士气。以身作则。传播良好的氛围。表现出热情、乐观和毅力。让工作充满乐趣。在危机中保持冷静和沉着。召集您的团队,每天多努力一点。


这种行为是病毒式的,而且通常比试图从高层“授权”人们更有效。而且它们很容易传播到你的团队之外,这会让你产生广泛的影响。

14.帮助招聘和入职

提高组织绩效的另一种方法是通过招聘。


如果可以,请参与招聘过程。参加面试。帮助准备招聘挑战。审查简历。


即使您不能参与招聘过程本身,您仍然可以做很多事情来帮助招聘新人才。推荐你的同事。通过博客、讨论论坛、在会议上发言和建立网络来宣传您的公司。在 Glassdoor 上留下正面评价。


负责入职和指导新员工。

15. 解决复杂问题(然后传播知识)

如果你能解决别人无法解决的问题,从而为你的公司带来竞争优势,你就能创造大量价值。


这听起来像是一个孤独的 10 倍天才的任务,但它仍然与团队有关。如果您不传播关于您出色的解决方案的知识,如果您不设计它以便其他人可以轻松重用,那么您将成为瓶颈和潜在的单点故障,而不是乘数。


你会让你的公司面临风险,而不是带来价值。


但是,如果您能够以一种每个人都能理解您的解决方案并能够在此基础上进行构建的方式解决复杂问题,那么您就可以成为游戏规则的改变者。

16.提供技术指导和建议

您的公司通常需要应对具有巨大、持久影响的决策。选择技术栈。选择云供应商。做出构建与购买决策。


更常见的是,会弹出更小的问题:项目的大致规模是多少?技术上可行吗?这个问题有哪些可能的解决方案?


成为您的团队和整个企业的首选顾问。深入了解行业格局。随时了解最新的发展和趋势。善于研究。它会让你为你的公司带来很多价值。

“但作为开发人员,我真的可以做所有这些吗?”

您真的可以拥有子系统、领导项目或做出构建还是购买决策?这不是架构师、经理和技术负责人的责任吗?


是的你可以!在任何经营良好的公司中,您的经理或技术负责人都会很乐意将尽可能多的事情委托给您。这实际上是他们的工作。它可以帮助您成长并让您的团队表现得更好,这是经理最重要的职责。


一些影响更大的东西可能确实需要更多的经验——没有人会让一个刚从编码训练营出来的初级人员拥有公司所有团队使用的关键任务子系统。但是我们讨论的所有影响都是渐进的。


从您团队中较小的计划开始,逐步扩大您的影响范围。与您的领导或经理一起寻找更多成长机会。你自己、你的团队和整个公司都要不断地寻找这样的机会。获得关注并建立声誉。


这将使您走上快车道,从而引起越来越大的轰动。不仅要成为 10 倍甚至 100 倍的开发人员。并且——如果这是你的抱负——最终自己成为一名技术主管。

底线

是的,您需要成为一名可靠的开发人员。自己做蹩脚的工作,很难成为别人的事半功倍。但是,如果您真的是 10 倍、5 倍,或者只是稳固的 1 倍,请不要着急。将您的思维方式从个人效率转变为整个团队和公司的效率。


当您这样做时,只有天空(以及您公司的规模)才是极限。您不仅可以成为 10 倍的开发者,甚至可以成为 100 倍甚至更多。