欢迎光临全网营销网站

[译]软件组是如何腐烂的:专家入门者的遗产

作者:jcmp      发布时间:2021-04-10      浏览量:0
类别: 程序员的生活 标签:

类别: 程序员的生活 标签: 专家初学者 , 软件的隐喻 , 软件管理 。

在我的 上一篇文章 中,我介绍了 "专家初学者 "这个词,用来描述那些在学习上已经达到某种局部最大值,坚信局部就是全局的人。专家初学者是指那些对全局了解不够的开发者,他们其实并不是专家。我的意思是说,他们的视野足够狭窄,认为他们所接触到的任何东西都是最好的,也是唯一的方法;例子包括一个C#开发者,他没有尝试过Java就对其大加赞赏,或者一个MySQL DBA,他把NoSQL运动当作是一时的流行。这并不是说不喜欢某项技术或者没有使用过某项技术就能让人成为专家初学者,而是说 "如果它不在我的工具箱里,或者是我有过经验的东西,那就不值得去做 "这种隐隐约约的独断论心态。

然而,专家型初学者的另一个特点是,他们在软件群体中具有一定的相对权威或影响力的地位。在上一篇文章中,我提出了Expert Beginner这个词,但没有解释其中的道理,打算在这里讨论一下。高级入门者是指处于初级阶段的人,而专家入门者的描述词既有字面意思,也有故意讽刺的意思;字面意思是指有那么多实践经验的初学者可以说是专家,而讽刺的意思是指 "专家 "这个称号一般都是自己认真应用的,否则就是不懂的管理者或同行应用的。

标志性的例子可能是一家非技术性小公司的 "技术人员"。他 "懂电脑",所以随着公司的发展,发展到有一些轻微的IT需求时,他出于需要,就成了一个编程二传手。在从一个用电大户变成一个开发人员的过程中,他的技术超出了他的预期,所以他对自己有限的、没有经过训练的能力充满了信心。在没有其他同行的情况下,在那里评价他技术的只有他自己和非技术用户,他们提出了 "似乎可以用,有点,我想 "这样的高论。他是盲人谷中的独眼人,在非常真实而不幸的意义上,他是当地的专家。这是标志性的例子,因为它对专家入门主义的障碍最少--成功简单,标准低,实际的专家不存在,竞争不存在,外部互动也不存在。

一、单点腐坏...

到目前为止,我已经谈了很多关于专家初学者的事情--他的出现,他的构成,他的心态,以及对他的观点的伪理性,或者至少是可理解性的相对同情的解释。但这如何转化为支持我的原论,即专家初学者会造成软件群体的职业毒性和堕落?为了解释这个问题,我将回到我的保龄球比喻,如果这个比喻有些紧张,请大家谅解。对于没有读过第一篇文章的人来说,你可能要读一下其中的第二部分,因为这里要复述的内容很多。

比方说,保龄球馆是靠保龄球手打球的好坏来赚钱的,而我住在一个小镇上,有一家小小的,初创的保龄球馆。由于找不到任何软件开发人员的工作,我就在当地的小巷子里试打保龄球。我真的不知道自己在做什么,他们也不知道,但我们都看到我在那里开始打保龄球时进步很快,尽管我的风格很傻。我的平均分上升了,保龄球馆赚了钱,生活也很好--利润和成功是没有争议的!

大约在我的成绩突破150分,天空似乎已经到了极限的时候,保龄球馆决定是时候扩大规模,聘请几个入门级的保龄球手在我的指导下工作。他们来的那天,我就教他们如何像我拿球一样拿球,如何像我一样走路。当他们问起拇指孔和手指孔是干什么用的,我回答说:"不用担心这些--我们这里不用"。他们急于讨好我,听我的话,看到他们的平均成绩像我的一样增加,甚至我的平均成绩开始达到160左右的顶峰。

随着时间的推移,他们中的大多数人都满足于按我的方式做事。但有几个人野心勃勃,开始在业余时间练习。他们看书,看有关保龄球技术的节目。有一天,这些雄心勃勃的保龄球手进来说:"电视上的人把手指放进球里,他们的平均成绩非常高--超过200杆!" 他们希望我和他们一样对进步的前景感兴趣,当我回答说:"不,我们这里不是这样做的。"他们感到很沮丧。我打保龄球的时间比你活着的时间还长,我知道自己在做什么......另外,你不能相信你在电视上看到的一切。"

因此,我迅速而果断地压制了这群人的创新,提醒他们,我比他们在保龄球馆呆的时间长,所以我才是负责人。这是一个被广泛接受却又完全不够的非议,停止讨论却不满意。这时,一半雄心勃勃的开发者放弃了 "手指头进球 "的方法,而另一半人则在另一个保龄球馆打完保龄球后相聚,半秘密地一起练习。一段时间后,他们的平均成绩达到并超过了我的平均成绩,他们以为这种开发--客观地证明了他们方法的优越性--会导致事情的改变。当它的结果反而是愤怒和教训,并声称分数是侥幸的,而我也曾经打出205的那一次,他们就会蒸发,留下残局。他们离开了我那死气沉沉、落后的保龄球馆,去了一个人们不会因为固执而偏爱明显低劣的方法的地方。

保龄球馆失去了平均水平最高的保龄球手,不是输给了另一条巷子,而是输给了一个专家初学者。

二、...这就毒害了整个

不离开的保龄球手们从中学到了两个有趣的教训。第一课他们学到的是,如果他们等着轮到自己的时候,他们就可以不计功劳地挥舞着不容置疑的权威。第二课他们学到的是,在这个巷子里,平平淡淡是可以的,甚至是首选。所以,当新的保龄球员被录用时,为了配合公司的工作,等待轮到自己的时候,他们就会以同样的方式参与向新手灌输不良做法。期待新手通过他的行动和榜样,创造了更多的专家新手,事实上也创造了一种专家新手主义的文化。

另一个有趣的发展结果是在获得过程中产生的。作为专家初学者的总负责人,我学到了一个尖锐的教训。由于我不喜欢被雄心勃勃的年轻新秀们看上,所以我开始改变我的招聘程序,寻找那些平庸的 "团队成员",他们不会用他们天马行空的 "手指头 "想法威胁到我的地位。现在,我知道你在想什么--这样的认识水平难道不相信专家初学者不识大体的前提吗?答案是否定的。这个招聘决定与其说是公开的,不如说是潜意识的、合理化的。不是说,"我不会雇佣比我优秀的人",而是说,"那些人就是不适合这里,不适合我'跳出框框'和'专家'的做事方式"。甚至可能是我太沉迷于专家初学者主义,以至于我把胜任/专家级的工作和不胜任的工作混为一谈,因为我不知道更好的办法。(保龄球的比喻在这里有点崩溃,但这可能和 "保龄球面试 "一样,我只看受访者投球的形式而不看结果,并得出结论:220保龄球手的形式不好,因为它和我自己的形式不同)。而且,在做这些事情的时候,我也在强化大家的文化,包括我的新专家初级副手们。

现在,保龄球馆正在失去所有潜在的高平均水平的保龄球手,因为有一帮专家初学者。同时注意到,布鲁斯-韦伯斯特的 "死海效应 "在此时已经完全成熟和实现。

三、回到现实世界

对于保龄球和保龄球馆来说,这一切都很好,但这怎么能与真正的软件开发实践相提并论呢?嗯,这比较简单。也许是缺乏自动化测试。巨大的方法/类。大量的复制和粘贴编码。使用过时的或糟糕的工具。流程。这可能是任何数量的事情,但共同的线索是,你有一个人或处于权威地位的人,他们有文化上的致命组合,即不知道多少;不知道他们不知道的东西;并假设,由于他们自己的专业知识,任何他们不知道的东西都不值得知道。这是一种有毒的职业文化,因为它将迫使有才华或有抱负的人要么离开,要么顺应平庸。

你可能会认为这主要是个人性格的问题,各部门因为有傲慢或咄咄逼人的无能者负责而变成这样,但我认为这比这更微妙。这些专家初学者可能根本就没有这样的人格缺陷。我认为这是孤立的环境、低期望值以及对平庸和/或不可量化的表现的持续奖励的自然结论。想想我们这个行业的性质。你在多少家外包公司工作过,在那里有某种发布派对,甚至(或特别是)当发布超出预算、错误和落后于计划的时候?你曾在多少家公司工作过,他们放弃了维护一些不守规矩的应用程序,而选择了彻底重写,但后来又重复这种循环?而参与其中的人却获得了荣誉和晋升,这就好比晋升火箭制造商,因为他们制造的火箭看起来很实用,但只是在几百英尺之后就停了下来,掉回了地球。"好吧,虽然没有成功,琼斯,但是你从中学到了很多东西,所以我们要提拔你为首席火箭制造师,让你来领导第二版,你这个摇滚明星,你!" 难怪琼斯开始把自己当成迈达斯王了?

四、创造一种获取文化而不是停滞不前的文化

在确定了一种可以最有效地描述为一种狂妄的组(脱)建态度之后,我想提出一些相对简单的步骤来限制或防止这种弊端。

首先,为了防止自己落入期望初学者的陷阱,最重要的是不要相信自己的炒作。适当为自己的成就感到骄傲,但无论你的头衔、年限、奖项和成就,或者其他任何不是理性论证或证据的东西,都不要认为你的教育已经完成,也不要认为你的观点高于质疑。保持健康的谦逊度,不断努力提高,重视客观指标高于主观考虑,这将大大防止自己成为专家初学者。

在防止这种现象败坏一个软件组方面,以下是一些可以帮助的事情。

这个清单更多的是针对团队的管理者和领导者,但作为一个简单的团队成员,也可以影响这些变化。唯一不同的是,你可能要向管理层寻求帮助,或者是劝说而不是强制执行。如果可能的话,要以身作则。如果这一切都不可能,而且看起来像一个失败的事业,我会说去寻找更绿色的牧场。总的来说,如果你想避免 "专家级初学者 "引发的团队腐败,那么创造或拥有一种文化是很重要的,在这种文化中,"我不知道 "是一个可以接受的答案,即使是对团队中最资深、任期最长的领导者来说也是如此。毕竟,认真的 "我不知道 "是专家级初学者从来不会说的,这也是一个正在学习技能的人和一个认为自己已经知道的人之间的根本区别。如果你的小组没有进步,那就是烂尾了。

系列文章在此继续: "停滞不前是如何被证明的: "专家初学者的语言"

通过 www.DeepL.com/Translator (免费版)翻译。