0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件开发和打保龄球有什么关系呢?

5RJg_mcuworld 来源:lp 2019-04-10 15:02 次阅读

在一些互联网公司里,常常有些人拥有唬人的头衔,拿着高昂的薪水,甚至有些大权在握,但他们并不胜任他们的工作——那么,优秀的软件团队如何才能避免腐朽?

作者 |Erik Dietrich译者 |苏本如责编 | 郭芮出品 | CSDN(ID:CSDNnews)

以下为译文:

我最近发表了一篇很受欢迎的文章,叫做“如何留住最好的开发人员”。我在文章中提到了最能干的开发人员在工作中想要什么,以及为什么他们无法满足的时候,他们就会选择离开。今天,我想写一篇文章,重点关注软件开发团队,而不是单个开发人员在组织内部或组织之间的个人旅程。

在我的前一篇文章中,我提到了布鲁斯·韦伯斯特的“死海效应”这篇文章,它描述了一种趋势,即最有才华的开发人员往往是最有可能获得其他机会的人,因此当他们稍不如意时,就最有可能选择离开。另一方面,最没有才华的开发人员更可能留下来,因为他们很难说服其他公司雇用他们。这提供了一个视角让我们能够理解为什么在公司里常常有些人拥有唬人的头衔,拿着高昂的薪水,甚至有些大权在握,但他们并不胜任他们的工作。但这个视角还是把注意力关注在个体层面,这不是“死海效应”的关键,只有当一个团队不断制造出这样的“渣子”成员(或者更糟,所有有才华的成员都被赶走,最后只留下这些“渣子”成员),这才是“死海效应”的真正含义。

我相信任何一个软件团队的腐坏并导致有才华的人员流失都有一些独特的群体动力,不能完全归结为糟糕的外部决策。毫无疑问,布鲁斯·韦伯斯特的“死海效应”既是这种群体动力的催化剂,也是这种群体动力的必然结果。我相信,外部的愚蠢决策要想搞坏一个软件团队让“渣子”成员充斥,必须要有团队内部的“巫术”相配合。这篇文章中,我将描述团队中的个体如何通过选择终身平庸为自己获得回报铺平道路。

学打保龄球

在开始之前,我想请你一起回顾我打保龄球的历史。是的,我是认真的。

我是一个相当有运动天赋的人。从小到大,无论玩什么运动或者参加什么比赛,我总是至少能比2/3以上的人出色。但是我总是博而不精,没有哪一项能拔尖。这给了我一种错觉,就是我能不费吹灰之力地掌握任何一项技能,当我开始练习保龄球时就有这种错觉。

大多数打保龄球的人都会把拇指和两个手指放进球里,并小心地训练投掷方式让球先从边上开始滚动再转向中间。我没有耐心去练习这个动作,我发现我可以不把手指和拇指放进球里,但是我假装这样做,然后稍微扭动我的肘部,把球投掷到球道上。这种投掷方式虽不漂亮,但很管用。

事实上,我打保龄球的次数越多,效果就越好。当我为了玩得更开心,参加了一个业余联盟后,我的平均得分开始上升。我并不是这个联盟中最好的球员,有几个保龄球手,包括我的前经理,他们的平均得分在170到200之间,而我在联盟中玩了几个月后,我的平均得分从130到140之间迅速提高到160分左右——这个分数不算太寒酸。

但自那之后就奇怪了,我的得分不再提高了,最高分就停在了160分左右。我问我的老经理我需要做些什么才能继续提高,他对我说了一些非常有趣的话。大意如下:

如果你一直这样打保龄球,你就没有可能提高了,你已经达到了你的极限。如果你想做得更好,你就得学会正确地打保龄球。你需要一个不同的球,一种不同的投掷方式,你需要像个大男孩一样把手指放进去。最糟糕的是,在你获得改进之前,你的得分会比现在更差,而你想恢复并超过目前的平均水平,需要不少的时间。

我抵触了一段时间,不想改变,但我又对自己止步不前感到厌烦(这是我个人的一个特点:我必须要成为最顶尖的,否则我会发疯),所以我还是开始了艰难练习。我买了一个保龄球,把它按照我的手指定制钻了孔,并开始按照正确的方式练习投掷。具有讽刺意味的是,我在做了那件事之后,几乎马上就离开了那份工作,而且在那之后的几年里,我大概只打了8次保龄球,生活就是这样。但是我想,下次我去的时候,我就不再需要租保龄球鞋,也不需要在球馆里挑选适合我手指的球了。

德莱弗斯模型:快速回报,发展受阻

20世纪80年代,一对姓德莱弗斯的兄弟提出了一个技能获取模型,对学习、过程和实践的讨论产生了相当大的影响。后来,他们出版了一本基于这个模型的书,在那本书中,他们将把模型改进成现在维基百科中看到的形式。

该模型列出了技能获取的五个阶段:新手、高级新手、胜任者、精通者和专家。显然,这本书有很多内容,因为它需要一整本书来描述,但其要点是技能获取者从“生搬硬套和缺乏大局”向“直观超越规则和全面理解大局”的方向转变。

通常情况下,人们会假设在各个阶段所取得的进步都是自然的和线性的,就像空手道腰带的获取或者企业界金钱的赚取。但在实际情况下,它会因为人的悟性和态度而不同。当一个人开始学习一项技能的时候,他是完全不胜任的,这会导致最初的一段挫折期,这时候他会陷入困境,只能等待有人(比如指导老师)来向他填鸭式地灌输需要的知识(或者,像德莱弗斯们所说,他们“像个婴儿,通过模仿和挣扎捡起东西”)。然而,在一个相对较短的完全的启动阶段之后,这个人就到达了这样的阶段,通过一些练习就能掌握技能。并且如果选择“低挂果实”的话,一个充满活力的学习者就能获得相当快地提高。然而,一旦所有“低挂果实”被摘下,这种不可持续的快速进步的速度会有所下降。从那以后,进一步的熟练就变得相对困难了。

我画了一个图表来描述这个过程(实际上花了我很长时间,因为我乱七八糟地画了带一个自变量的logistic 1/(1 + e^-x)回归函数,而不是像普通人一样在Paint中画一条线)。

事实上,我的保龄球技能的获取正是遵循这样的路线,从完全不会,到具备某种程度的技能,再到迅速地提高到胜任的程度,然后就停滞不前了。在我的例子中,技能的提高达到了局部的最高点,然后就不再提高了,因为太忙,所以我无法继续按既定路线提高,也无法将我的调整进行到底。在这篇文章中,我把这种情况称之为“发展受阻”。这个词是一个心理学术语,但是为了本文的目的,请忘记这个心理学的定义。

从技能获取的观点来看,一个人到达“发展受阻”阶段,技能水平就不再提高,是因为以下两个原因之一:一是天资受限,二是没有意愿去作有意义的改进。

在本篇文章中,我们不讨论第一种原因(因为大多数专业的程序员都不会天资低下到不能获取最基本的技能的程度),我们讨论第二个原因的一个有趣的具体实例:即自愿停止改进,因为相信自己的技能已经达到了专家水平,所以进一步改进不太可能了 。这种不确定的平庸状态是进入技能获取的快速阶段的入口,我将它称之为“专家新手”。

当你考虑德莱弗斯模型时,你会注意到随着时间的推移,技能获取者有一种从“严格的规则导向和对大局不甚了解“到“非常直观和完全把握大局”转化的趋势。高级新手阶段是技能获取者对大局不甚了解的最后一个阶段,因此,这是技能获取者可能把自己误以为是专家的最后一个阶段。一个称职的人把握大局的能力很强,所以不会把自己与专家混淆:他知道自己缺失什么技能。而这是高级新手不具备的,因为高级新手正处于邓宁-克鲁格效应的“非熟练”阶段,并且倾向于认为“如果我不理解一件事,那它一定很容易。”

因此,高级新手可以用下面两种方式之一获得进步:第一种是了解自己的位置,学会把握大局,并向称职者转化;第二种是通过假设他们已经毕业成为专家而“毕业”成为专家新手。这并不像听起来那么荒谬。

让我们回到我以前的保龄球生涯,想象一下如果我是球场上唯一的或最好的保龄球手,会发生什么。我应该会一开始打得很不好,然后很快就摘下技能获取的“低挂果实”,迅速提高我的保龄球技术。根据邓宁·克鲁格效应,我可以合理地认为:我对打保龄球很有天赋,因为我的技术水平提高得很快。我也可以得出一些理性的(而不是傲慢的)结论,我的保龄球技术不能再提高了,因为我已经达到了技术顶峰。毕竟周围已经没有比我技术更好的人,而且一定有人掌握了某种程度的技术,所以我想我应该就到了专家新手这个阶段。

真正让人尴尬的是,一些不完全理性的推理使我产生了一种错误的成就感,导致我放弃进一步的改进。随着我保龄球生涯的继续,我从乐观的自我评估变成了逻辑上的谬论:“我知道我的打法很对。因为我是专家,所以我做的每件事都正确。”(对于逻辑谬论爱好者来说,这是循环论证,即用未经证明的假定来论证)。查看上面的图形会注意到它描述了德雷福斯模型的状态机,正如你所期望的那样。在每一个阶段,你要么前进到下一个阶段,要么停留在当前阶段(除了新手或高级新手,我觉得他们不能真正停留在那个阶段而继续从事某个工作)。不同的是,我已经将专家新手添加到了图表中。

专家新手知道他们想继续进步的话,需要付出很多努力,而且没有现成的路径可走。你会注意到,专家新手介于高级新手和胜任者之间。这是因为他没有足够的能力去把握大局,认识到自己处境的尴尬,但他比高级新手略胜一筹,主要是因为他作为一个新手进行了大量的练习。如果你听过“十年的经验不等于一年的经验用十年”这句格言,那么“专家新手”就是后者的缩影。专家新手通过一周又一周地重复练习来完善保龄球技术,而不会偏离常规打法或尝试新的打法,以确保获得总分300分中的160分。依据他们所获得的得分,他们相信160分是他们的最好分数。

软件开发中的专家新手

毫无疑问,软件开发不像打保龄球。保龄球运动的反馈周期是以分钟为单位的,而软件开发的反馈周期则往往是以月或年为单位的。这里所指的软件开发不是指编译、运行或单元测试这些环节,它们的反馈周期是以分钟或秒来计的。这里我所说的软件开发是指整个项目周期。在项目的整个生命周期中,开发人员经历了编写代码、源代码控制、修改代码、测试代码以及在维护阶段遵循以前的架构和设计这些过程,并从中获取了相应的经验。

开发人员如果运气好的话,可以在6个月的时间内将我上面所说的过程都尝试一遍。这就意味着,当他在从事软件开发工作5年后,他可能经历10次这样的过程。(这是平均值——有些人会一直停留在某一个单一的过程上,而另一些人可能会经历几十次这样的过程。)

这意味着软件开发人员的快速获取技能阶段(高级新手阶段)将持续数年而不是数周。在这数年里,软件开发人员会跳槽并获得晋升,尤其是在现在这样的市场环境里。当他们轻而易举地获取技能后,他们也就轻而易举地获得诸如“一级软件工程师”和“二级软件工程师”这样的头衔,然后可能升级到“助理工程师”和“高级工程师”,最后可能是“主管工程师”,“架构师”和“首席工程师”。因此,处在邓宁·克鲁格效应困境中的高级新手们,会被授予专家头衔,并被招聘人员恭维为“摇滚明星”或“忍者”等等。这种情形在当今的经济形势下尤其严重。唯一让高级新手们认识到他们没有进入专家新手阶段的是同行评审和与整个开发社区的交流。

但是,当高级新手不太关心与更广泛的社区进行互动,并且无论出于何种原因与同行没有太多互动时,会发生什么?The Daily WTF网站上这样的例子随处可见。他们会失败,但是他们相信他们的失败是其他人的错。因为游戏的本质是这样的:责备他人很容易,也很容易缓解任何认知失调。他们认为他们很快就成为专家并且没有提升的空间了。他们已经正式成为专业新手,而且已经准备好在公司里巩固自己的地位并享受高昂的薪水。他们周围的所有人,包括他们自己,都没有意识到他们可以做得更好。

译者注:邓宁-克鲁格效应(Dunning-Kruger effect)。它是一种认知偏差现象,指的是能力欠缺的人在自己欠考虑的决定的基础上得出错误结论,但是无法正确认识到自身的不足,辨别错误行为。这些能力欠缺者们沉浸在自我营造的虚幻的优势之中,常常高估自己的能力水平,却无法客观评价他人的能力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件开发
    +关注

    关注

    0

    文章

    611

    浏览量

    27352
  • 源代码
    +关注

    关注

    96

    文章

    2945

    浏览量

    66725

原文标题:软件开发团队中,凭什么新手当道?

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Labview上位机软件开发

    现我公司个项目需要Labview上位机软件开发,应用为数据采集,硬件为厂家采集卡。具体软件需求电联或+V: 15228164111。
    发表于 11-18 16:24

    北京软件开发公司那些?做软件的公司哪些?

    北京作为中国的科技创新中心之一,拥有众多提供软件开发服务的公司。以下是一些在北京地区较为知名的软件开发公司: 华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构
    的头像 发表于 10-28 15:02 374次阅读

    ECU电控软件开发及测试介绍

    本文重点介绍符合AutoSar架构的应用软件开发、MBD开发模式下的软件质量评估与优化方案、复杂场景下的ECU性能压力测试方案。
    的头像 发表于 09-26 14:25 3312次阅读
    ECU电控<b class='flag-5'>软件开发</b>及测试介绍

    对于差分输入电路,差分输入信号的地和给运放供电的电源地什么关系,是必须共地还是不需要共地

    一个问题我不明白,对于差分输入电路,差分输入信号的地和给运放供电的电源地什么关系,是必须共地还是不需要共地?请大家解答一下啊~~
    发表于 09-25 06:07

    【《软件开发珠玑》阅读体验】+ 心得

    【《软件开发珠玑》阅读体验】+ 心得 感谢电子发烧友论坛提供的读书机会。读这本书使我在编程方面多了位资深老师。 在软件项目开发领域的时,我阅读了《软件开发珠玑》这本书。它以独特的视角和
    发表于 06-23 17:56

    上位机软件开发用什么语言

    上位机软件开发是指开发用于与下位机(如PLC、单片机等)进行通信、控制和数据处理的计算机软件。上位机软件在工业自动化、物联网、智能家居等领域有着广泛的应用。选择合适的编程语言对于
    的头像 发表于 06-06 10:44 1716次阅读

    费米气体和超导是什么关系?费米子的代码让电阻消失了?

    金属里面自由电子构成的特殊气体,叫做“费米气体”。那么,费米气体和超导是什么关系
    的头像 发表于 04-26 10:41 592次阅读
    费米气体和超导是<b class='flag-5'>什么关系</b><b class='flag-5'>呢</b>?费米子的代码让电阻消失了?

    什么是元宇宙,AR/VR和它又是什么关系

    最近苹果公司的Vision pro上市预售掀起了一波潮流,元宇宙的概念又火了。那么什么是元宇宙,AR/VR和它又是什么关系
    的头像 发表于 04-22 15:14 1630次阅读

    广告电商+超级云APP结合 # 软件开发# 模式开发# 小程序开发# App开发

    软件开发APP
    jf_01576396
    发布于 :2024年04月09日 17:42:13

    电势和电压什么关系

    电势和电压是电学中常用的两个概念,它们之间有着密切的关系。本文将从不同角度对电势和电压进行分析。 首先,我们来对电势和电压这两个概念进行定义和解释。电势(Electric Potential)是描述
    的头像 发表于 02-26 14:07 8473次阅读

    请问运放输出的最大值与它的电源电压什么关系

    运放输出的最大值与它的电源电压什么关系
    发表于 02-22 08:24

    什么是频域分析?频域和时域什么关系

    什么是频域分析?频域和时域什么关系? 频域分析是一种用于分析信号的方法,它将信号从时域(时钟)转换为频域(频率)。频域分析允许我们观察信号中包含的不同频率成分,并确定它们的振幅、相位和其它特性
    的头像 发表于 02-03 17:19 3873次阅读

    keil arm软件开发指南

    电子发烧友网站提供《keil arm软件开发指南.pdf》资料免费下载
    发表于 01-26 15:51 7次下载

    石英晶振的频率高低与晶片存在什么关系

    石英晶振的频率高低与晶片存在什么关系? 石英晶振是一种利用石英晶体的机械振动产生稳定高精度时钟信号的元件。它在现代电子设备中应用广泛,包括计算机、手机、电视等各种电子产品。石英晶体的频率高低与晶片
    的头像 发表于 01-26 14:07 639次阅读

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发嵌入在硬件设备中的软件,而
    的头像 发表于 01-22 15:27 2262次阅读