“我会搞定的”开发者心态
没错,我们都在撒谎。你可能也在撒谎。让我来证明给你看😉
哦,我现在脑子里有很多文章选题,都是些非常令人兴奋的选题。不过这周真是忙得不可开交😅 我终于完成了JSNation演讲的准备工作,与此同时,又出现了两个绝佳的机会——一个是职业上的,另一个感觉就像儿时的梦想成真☺️ 但我现在还不想说得太早,以免不吉利。
为了避免听起来好像我的所有事情都一帆风顺——我最近也收到过几份拒稿通知。都是我真正想投的!但说实话,这就是游戏规则的一部分。一个会议可能今年拒绝你的演讲,明年却欣然接受你的另一个演讲。
所以,是的,真正的大话题还得再等等🙂 但这并不意味着这个话题就无关紧要。
现在到处都在谈论人工智能,好像它能解决我们所有的问题似的。但正如我们已经看到的,没有人类就没有人工智能,每一个“智能”模型背后仍然有人类的参与——至少目前是这样😉
这或许可以解释为什么,实际上,编码代理确实能加快开发速度……但远没有许多人预期的那么快。一些研究甚至表明,它们反而会降低开发人员的效率。
因为真正的问题往往不在于代码本身,而在于编写或生成代码的人。
不幸的是,我们每个人都会以某种方式说谎。有时是对别人说谎,有时是对自己说谎。
有些开发者谎称自己知道自己在做什么
我认识的最优秀的开发人员之一曾经向我坦白过一件事。
这家伙真是个天才,公司争相招揽的那种工程师。他目前负责优化LLM的驱动程序,一路晋升,即便是在如今这个“科技危机”时期,当他考虑换工作时,仍然有很多工作机会可供选择。
然而,每次他加入一个新项目时,他都觉得自己像个十足的白痴。
其他人似乎都很有效率。大家都在处理工单,编写代码,自信地推进项目。而他却坐在那里,盯着代码库,疑惑地想着:
这里到底发生了什么?
我们到底在构建什么?
为什么会这样运作?
为什么我们要用这种方式实现,而不是用其他方式?
然后他开始问问题。
通常情况下,结果证明没有人真正知道自己在做什么,为什么要这样做,甚至不知道自己一开始是否就解决了正确的问题。
这让我想起一个老笑话,讲的是伐木工人砍伐森林。最后,领队爬上最高的树,环顾四周,然后大喊:
“伙计们!我们砍错林子了!”
下面的工人们也大声回应:
“谁在乎呢?我们取得了巨大进展!”
说实话,再多的法学硕士学位也救不了我们。尤其是在我们连正确的问题都没问出来的情况下。
有些人谎称自己会做某事。
这基本上是前一个问题的延伸。
经验不足的开发人员接手一项任务,自信地说:
“是的,我知道怎么做。”
可惜的是,他们通常的意思是:
“我希望我能想办法解决这个问题。”😅
实际上,他们可能不知道如何解决这个问题,该使用哪些工具,哪种架构比较合理……甚至不知道该写什么提示才能从编码代理那里获得有用的帮助。
但他们不敢问。
因为他们在团队面前会显得如何?经理会怎么想?技术主管又会怎么想?
最好的情况是:他们最终会提出问题……只是为时已晚。
最糟糕的情况:他们根本不问,直接送来完全错误的东西。而且这种情况往往根本没被发现,因为……
有人在撒谎说自己有时间
现在我们进入高层和领导层领域了😅
动机各不相同。有些人将自我价值建立在“可靠”这一角色之上。另一些人则害怕失去地位、影响力,甚至工作。
所以他们不断承担更多:
- 最困难的任务
- 无休止的会议,
- 改进,
- 估算值,
- 与支持者进行讨论,
- 与企业进行讨论,
- 代码审查
- 建筑设计决策,
- 文档。
说实话,总有东西会坏掉。
人不是钢铁做的。没有人能永远保持百分之百的状态。
结果会怎样?
人们在通话时开始心不在焉。代码审查变得匆忙。文档悄无声息地被束之高阁。
但他们仍然拒绝承认——无论是对别人还是对自己——他们只是工作量过大了。
有些开发商会在项目所需时间上撒谎。
我经常在水平更高的初级和中级球员身上看到这种情况。
他们自信满满地抛出一些极其乐观的预测,简直令人啼笑皆非。
当然——如果他们能连续工作八小时不间断,应用程序不包含任何遗留代码,不存在任何极端情况,而且没有其他人与系统交互……那么这个估算或许真的会是正确的😄
然后到了迭代评审会议,突然间,所有人都震惊地发现团队并没有交付所有东西。
但这并非估算的唯一问题。
我曾经和一位特别幽默的高级开发人员共事。
他把估算奉为圭臬。在计划会议上,他会极力捍卫自己的数字,坚持认为这项具体任务绝对极其复杂。团队其他成员通常都觉得没那么糟糕,但最终为了结束讨论,我们还是会妥协。
然后——至少有三次——他亲自接手了他之前严重高估的任务……并在大约一个小时内完成了它。
这基本上意味着,估算讨论本身花费的时间比实现功能的时间还要长😅
这次经历改变了他的行为吗?
绝对不是。
有些人谎称自己什么都懂。
这些可能是最危险的。
我会避开那些说类似这样话的人:
“只能使用这项技术,其他一切都是垃圾。”
请在此处插入您最喜欢的技术之争:
Angular vs React、Java vs Python、Rust vs 其他任何技术 😄
我本人从来不那样写作。即使我发表的文章标题是“我爱Tailwind,我一点也不后悔”,我仍然会谈到它的缺点,并解释它哪些地方完全不合理。
如果有一天我开始声称某种技术在所有情况下都完美无缺,请留言说:
“西尔维娅,立刻去摸摸草地。”😅
说实话,我一直很想知道这种绝对的确定感是从哪里来的。
因为这些人并非全是付费网红。有些人似乎真的对技术界的争论投入了真情实感。还有一些人可能只精通某一方面技术,所以对其他技术一窍不通就觉得“不好”。
虽然这种行为在科技界有影响力的人中非常普遍,但在公司内部也绝对能看到。
问题在于,这种盲目自信会严重损害项目。人们不再质疑决策,其他开发人员也不敢发表意见。利益相关者会想当然地认为“自信的人”一定是正确的,仅仅因为他们听起来很有把握。
最好的情况:你最终会得到一个令人讨厌的开发人员,他对框架的了解远胜于对实际业务领域的了解。
最糟糕的情况:你最终会得到一个糟糕的技术栈选择和一团乱麻般的架构,而这一切都靠着自负勉强维系。
人就是……人
当然,我也不是无辜的。
我过去也用过很多类似的谎言。也许我现在年纪大了,也许更明智了一些,又或许我只是更容易识破这些伎俩。
但我肯定还在某个地方撒谎。也许对别人来说不是——也许对我自己来说是。
因为我们在软件开发中遇到的很多问题根本就不是技术问题,而是根深蒂固的人为问题:
- 自我,
- 缺乏安全感
- 害怕显得愚蠢
- 害怕承认错误
- 害怕说“我不知道”。
说实话,我也没有什么灵丹妙药。我们不可能要求每个开发人员都接受三年的心理治疗才能参加迭代计划会议😄
但我注意到一件事。
很多时候,承认自己不知道某些事情,在计划过程中公开讨论不确定性,或者简单地说:
“抱歉,我还是不太明白。您能再解释一遍吗?”
这并不会让别人觉得你是个水平更差的开发者。
很多时候,情况恰恰相反。
团队内部的沟通突然改善了。其他人也开始提问。对话变得更加坦诚。问题也更容易被发现。
说真的,至少试一次吧,你可能会感到惊喜🙂
那么……在你的团队中,你最常看到开发人员撒哪些类型的谎?
X记录空间