最好的工程师,就是这样被你“逼”走的

作者 | Podge O’Brien 编译 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

基于我多年来所经历的离职面谈,下面我将总结出几点最可能会“逼”走优秀工程师的原因及解决办法。虽然表面上来看,这都是些不太严重的问题,但随着时间的推移,它们会逐渐将人们压得喘不过气,直至绝望离开。

不会构建软件的领导

要问什么最让工程师感到悲伤?那必然是高高在上的领导(工程经理、主管、副总裁)不了解他们每天在面临什么问题,也不了解从头构建一些功能和软件的难点。

解决方法:让公司的工程经理、主管或副总裁起码每个季度用大概一周的时间,学会构建和交付功能。他们要学的不能是像更改一行文本这样简单的功能,而要是积压中的客户功能,整个流程应控制在三天左右,并且这些领导应该以团队合作的方式工作。

招聘太多且不同层级的领导

一旦你的管理层人太多,势必将决策推向更高层,也就必须开会决定,可讨论越多,团队层面的对接指导就会越少。举个例子,当一个上级经理想要完成某件事时,他可能会跟下一个经理沟通不畅,而低效的沟通将导致团队不知道他们应该做什么。

解决方法:扁平化你的组织,尽可能减少管理层人数。

无穷无尽地“开会”

一旦有人不知道需要做什么,不确定软件是如何制作的,并且团队之间存在许多支持关系,就召开会议,制作甘特图让员工遵守时间表。随后,就要召开更多的会来审查是否根据甘特图推进。期间如果又有什么悬而未决的问题,就又要开会“碰一碰”解决。

解决方法:在设计你的组织时,尽量减少团队之间的协作,同时确保团队内部要有高度协作。

让定义软件的过程变得痛苦

如果工程师必须承担起找出需要构建的工作,并独自构建功能以完成工作,这必将导致逆反心理。软件开发应该是一个团队共同努力的工作,如果团队中没有产品人员和其他重要职能来帮助协调工作,团队内部成员就会产生不满情绪。

解决方法:找到一种分担工程师负担的方法,例如在创建工单时,至少需要 3 个人花 10 分钟讨论工单,确保所有相关细节都囊括其中,包括描述变化是什么、将如何测试等。在我看来,这 3 个人最好是工程师、测试人员和产品人员,即产品人员应该领导并提供需要构建的环境,开发人员询问其中的具体功能,而测试人员则提问该如何测试。如果对需要做什么没有达成共识,工程师就不会开始构建软件,但查找信息不应仅由工程师负责。

让交付软件变得痛苦

写完工单并不代表就万事大吉,现实中仍有许多“意外”。如果开发环境不兼容,工程师就不能在本地开发,或者很难在开发环境中测试更改。如果测试不稳定,或者软件经常无缘无故停止工作,这对工程师来说无疑是一种挑战。

解决方法:根据你的制作之路有多艰难,有以下几种方法可以解决。

1、啥也不做,放任摆烂。不过我不建议这个方法,因为这可能会对你的工作构成生存威胁。

2、开始花时间解决这些问题,大概从 20% 的时候开始,分析问题所在并制定计划解决问题。

3、对工单进行优化,尤其是在维护现有代码的情况下。

让工程师计划他们的工作

让他们提前一个月完成工作计划,一个月后如果他们没有按时完成,就责怪他们不善于预测未来的事情。

解决方法:别让他们计划了。我分析了我参与过的每一个使用这个方法的团队,其中 99% 都是没用的。所以从我的经验来看,这行不通。如果你需要日期,我会推荐一种更现代的方法,例如预测。

过于小的团队

有些公司中,存在一些仅由三名应用工程师组成的团队,采用专门负责制作功能的模式,其他运营和 QA 工作都是在团队之外完成的,平时来看似乎没什么问题。可直到有一天其中有人请假了,另一个也请病假了,仅剩的那个工程师就要独自背负高效的重担和巨大的压力。长此以往,这个人就会崩溃离开。

解决方法:确保团队至少要有六个人。

向其他团队借人

如果你是一名工程师,当公司需要完成一些工作时,你被调到其他团队,这可能会令人感到低落和沮丧,因为这说明你没有多少时间来发展成为一名专业工程师。

解决方法:要让团队长久存在,有一个使命,那就是不要到处调动人员。

结语

以上就是一些在我看来很常见的工程团队存在的弊病,同时我也给出了相应的解决方法。虽然有一些方法看起来很简单,但真正实施起来很难——因为你生活在一个系统中,而改变系统,特别是基于人类的系统,是非常复杂的。

所以最后,有句话我想送给你:如果你不能“改变”你的公司,那就“改变”你的公司。

原文地址:https://blog.hulacorn.com/2021/09/08/how-to-drive-away-your-best-engineers/

《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造!

原文地址:https://www.toutiao.com/article/7126716876796887567/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340