2016-10-13 20:47:53 +0000 2016-10-13 20:47:53 +0000
248
248

如何处理一个高级开发神器似乎不知道自己的技术已经过时的高级开发神器?

我是一个IT生产力顾问,被带到一家小型软件开发公司(二十个员工)。问题是一个由五个开发人员组成的团队中的高级开发人员,负责公司的主导产品。

几年来,创始人对员工的技术能力不满意,最近他请了一个高级开发人员,担任技术负责人和项目经理的双重角色。他是唯一一个做面试的人,也是唯一一个决定录用这个人的人。

这位高级开发人员的简历上,列出了一份令人印象深刻的简历,列出了他在IT行业二十五年的职业生涯,在小到跨国企业的公司都有很多成功的项目完成。

然而,两个月下来,团队对他的资料却变得不那么欣赏。我有机会和这个团队的五个成员中的三个人进行了交谈,他们都强调了三个问题:

–据他们说,这个人是个混蛋,对团队中的其他成员不尊重。最近他在团队成员面前和一个初级程序员谈话的一句话很能说明问题:"我在这个行业工作了二十五年,你呢?你都干了些什么?你当了三年的代码猴子。所以,你这个笨蛋,给我闭嘴吧! 当成员们不同意的时候,他们会一起讨论,然后达成一致,或者至少向不同意的成员解释一下道理。"

–高级开发人员的技能和做法似乎有点………..过时了。举几个例子:

团队成员就这三个问题向公司创始人抱怨他们的新领导。创始人的回应是,他们太过火了,根据简历和面试的情况来看,他对这个新领导的技能是绝对信任的,这也正是他当初分配给这个人做首席开发人员的原因。那么团队应该怎么做:

–要么把这个牵头人赶出团队,要么赶出公司,

–要么逼他改变对团队的态度,


评论里问了很多问题,这里补充一下

–_他上面的公司是什么结构?他的上级是谁?"

你在子弹里说的一些作为对他不利的点,其实是对他的点。我的意思是他至少有一半是对的

我真不明白这家伙为什么要在你的小公司里浪费他的时间。他可能在别的地方工作可以赚到更多的钱,因为 “这个人还知道如何维护我们25年的、无证的、业务关键的遗留系统,用一种全宇宙只有3个人还懂的编程语言编写的系统。”

-我不相信这是一个实际的问题。在我看来,这是的帖子,目的是为了挞伐。你基本上把所有可能的坏习惯结合在一起,问该怎么做

-_听起来有点奇怪,认为问题出在新的领导身上,而在他手下工作的人(比如你)身上并没有发现问题。创始人对现有团队的不满意是正确的吗?如果不对,他为什么会不高兴? _

  • _为什么会有人反对用互联网来找人帮忙解决软件问题? _

  • _有没有想过这个人的目的是为了让团队退出?但你有没有和他们进行过一次很好的圆桌对话?

答案 (9)

263
263
263
2016-10-13 20:56:39 +0000

创始人回应说,他们是想多了,根据他的简历和面试的情况来看,他对这个新的负责人的能力是绝对信任的,这也正是他当初分配给这个人做首席开发者的原因。

负责人发话了。这不是一个政府,也不是一个政党。你不能把人赶出去,也不能带头起义,

如果不愿意处理,你真的只有一个选择。你们可以联合起来,威胁要退出,除非发生什么事情。

我说的是可以,不是应该。有一个非常好的机会,这不会有好的结果。你基本上是想把自己放在老板的前面,而老板已经做出了决定,负责人不喜欢他们被挑战。

我想,告诉你的 “正确 "的做法是找到鼓励他看到你的思维方式的技巧。但我不打算这么做。我是一个30年的资深开发者,我可以告诉你,我基本上已经基本定下了自己的基本思路。不,我不是像这个人那样的笨蛋,是的,我接受建议。我拥抱新技术等等。这家伙显然在很多事情上都是错的。但是,我可以告诉你的是,当我对某件事情有了决定,而且我确信我的决定是正确的,我就会坚持下去。我不喜欢威胁,胁迫或操纵就更糟糕了。

我的观点是,他确信他是 "程序员耶稣"(这是一个可悲的不幸态度),你永远不会改变他,在他的职业生涯的这个阶段不会。他相信自己是对的,他认为他的经验支持他。不幸的是,老板也是这样想的。

说实话,这可能不值得你和你的团队承受这样的压力。**我建议你们每个人都开始找一份新的工作,找到了就离开。当一个人离开时,确保他们告诉老板为什么。就算是这样,也不能保证。

**跑*说真的,我不知道为什么会有人愿意去那里。扪心自问,你告诉我们的东西中,有什么东西不是预示着这货最终的厄运吗?我相信你一定知道这一点。我质疑创始人的基本智慧,因为这个问题。开发人员通常是非常糟糕的项目/程序经理。这是一个独立的技能集,他们需要相互平衡。这就像说 "我们不需要单独的测试人员,开发者测试很好用 "一样。这两句话都是灾难的食谱。祝你们好运。我说的是这个意思。

89
89
89
2016-10-15 16:04:29 +0000

OP对情况的描述很可能是片面的。

我是一个年老的开发者(54岁),被带到一家公司不是为了统治,而是为了提供一些经验。(IT老板其实说的是 “白发人",lol.)。他们教会了我很多东西,尤其是关于谦虚!但我们发现了他们的技术智慧的地方。但是,我们发现他们的技术奇才并没有解决问题的地方,在某些情况下,他们的技术奇才会掩盖这些问题,最终使问题变得更糟。这就是我能够真正做出贡献的地方。

你的领导听起来严重专制。听起来好像是楼主给他下了任务。楼主对开发人员不满意,所以请来了这个 "硬邦邦的,没有废话的人 "来提高交付速度。

首先,看看你的员工。你是否有弱者–那些不 "看清矩阵 "的开发人员?如果有,就在公司内部给他们找新的职位,或者给他们一个需要他们独特技能的雇主提供一个很好的参考。

他讨厌IDE

我知道有几个人讨厌IDE。这让我揉了揉眼睛,但最终我并不在意。如果人们用vi生产,那么好吧。我爱我的IDE。

他不重构代码,也不关心风格(这在他自己的代码中是不一致的)

第一部分的红旗。他是个抄袭者吗?我也很内疚不关心风格,但那是因为我用IDE让我的Python代码瞬间符合PEP8的要求。但他并没有使用IDE…..

话说回来,风格之前是通过夜建来检查的,自从新领导来了之后,风格就开始失败了。

他拒绝了夜建的想法,也拒绝了自动测试。按照他的说法,"任何专业的开发人员无论如何都会用手来测试他的代码,所以没有理由浪费时间去写自动化测试"。按照他的说法,夜间构建也是在浪费时间。

这也让人眼前一亮,但原因和你想象的不一样。在这个人被录用之前,有多少次因为夜间构建失败而被业主告知不能做X(给出演示、使用系统等)?如果楼主认为是夜建出了问题,那该怎么办?你觉得他会告诉Lead怎么做?

但我对Lead的态度有顾虑;自动化测试很神奇。就像以前一样,老板可能不了解测试的价值,但他肯定知道开发人员的工资里有Y%的钱是为测试买单的。当我来到我现在的公司时,"100%的测试覆盖率黑手党 "已经接管了开发人员,并把成本跑得很高。一个坏的苹果之后,开发人员又开始咕噜咕噜地叫了起来。

他认为版本控制大多是无用的…..

这是一个最高级别的红旗。他是尽可能的错了。他是在对楼主的钱不负责任

他夸大了代码优化的重要性

早在以前,代码优化可以起到作用。现在机器的速度太快了,这已经不那么重要了。相反,我们现在需要担心的是数据库性能和网络吞吐量。但他的 "代码优化 "习惯是很难改掉的,相信我。我必须让自己不进行预优化。至少他的行为在这种情况下,除了耗费的时间,没有破坏性。(你有他的 "他的一半时间 "的数字吗,还是说这是夸张?如果你是在批评上司,不能有任何夸张的成分。你一定是病态客观的)

他所有的SQL都是手写的,而且拒绝ORM的想法。我不理解人们对SQL的恐惧。我不理解把SQL,这是很简单的,但我不理解把SQL埋在层层的ORM下,让人看不懂。在这里帮不了你 :-D 但是,请把你所有的SQL都倾倒到一个地方–不要分布在你的代码中。这是2016年的事情了。

他拒绝使用框架和第三方库,认为从头开始写东西要容易得多。我怀疑你的公司是不是很特别,以至于你的实用程序需要在内部编写。我们有几个开发人员会接受第三方工具,直到他们做了一些开发人员不喜欢的事情。这是个借口,让他们把工具扔掉,自己写自己的工具。这只会增加开发人员的负担,进一步拖累他们。这些无用的代码在编写、测试、调试和维护上都很费钱。我们花了这么多钱,却没有得到任何好处。这些开发人员现在都走了。

他决定放弃除了jQuery之外的所有JavaScript库和框架,声称十五年前开始用JavaScript编程的时候,没有框架,生活就轻松多了。

这个就不太清楚了。原因是15年前的生活要轻松得多,原因是 生意上的要求就简单多了。这就是问题的根源所在。网络被发明为一个批处理系统(填写表格、提交表格、得到回复、重复),而现在我们试图写出像桌面应用一样的web应用,这就是问题所在。他的观察是对的,现在的事情很难。但他并没有意识到原因。工具的复杂性是在响应更复杂的业务要求。因此,他做出了糟糕的选择。

我们正在使用AngularJS,它似乎很体面。就像所有强大的工具一样,它可以用得好,也可以用得不好。

他认为移动设备(包括平板电脑)只是一种炒作,所以没有理由浪费宝贵的时间去保证网站与这些设备的兼容性,做响应式设计。产品是一个公共的网页应用,从移动设备上看,估计不会有很多人使用,

他又错了。它们并不是炒作。它们之所以会在这里停留,是因为它们很有用。BUT企业不需要它。不要开发你不需要的东西。这很贵。

响应式设计,但是,对于这个APP来说,可能会很有意思,…..

有这么有意思吗,你会亲自出钱开发吗?如果这是个好主意,你应该可以把这个想法卖给老板。否则,就不要花一毛钱了

他要求团队不要再用互联网(尤其是StackOverflow),而要靠自己的头脑,靠线下的文档(我都不知道微软还卖MSDN的光盘!)和书,

他错了。互联网在这方面是很好的。如果开发人员在不了解代码如何工作的情况下从Stackoverflow复制粘贴,那么他们也是错的。在开发计划中,有时间进行培训和个人提升吗?当你总是在枪口下的时候,很难不机械地复制粘贴。


虽然我掌握的信息有限,但这里有很多问题。听起来楼主没有像他所期望的那样迅速得到他所支付的代码。听起来他好像听到了很多关于他不关心的事情的借口;他只关注结果。如果我没猜错的话,你是自作自受,而且还不止一次地重开了。这个Lead是楼主对开发人员提出的问题的解决方案,鉴于他的信息量有限,可以理解;

我也敢打赌,你开的是一个非阿里巴巴的店,需求定义不好,随风而变。开发人员和老板之间没有一层隔阂。除了这个 Lead.

现在,你能做什么?

1)培训这个 Lead,让他知道使用自动化测试和代码管理是正确的方法。这可能需要时间来获得他的信任—-老板很可能已经告诉他员工有缺陷。看看你是否能阻止他做出诸如 "删除所有无用的测试垃圾,重新使用SVN服务器 "这样的一刀切的任务。这将给你时间来体现价值。

2)继续在个人层面上使用代码管理。至少这样你可以从自己的错误中恢复过来。不要告诉他你在做这个,虽然也不要骗他。

3)继续在个人层面上进行自动化测试(单元测试,如果没有其他事情的话)。和以前一样,不要提,尽管不要隐瞒。

4) 和Lead合作,确定实际感知到的问题是什么。要有开放的心态;我敢打赌,员工中肯定有真正的问题。

5) 与 Lead 合作,解决问题,而不是治标不治本。

5) 与 Lead 讨论各种开发话题,比如瀑布式和敏捷的好处。两者都不是完美的。问他一些问题,比如 "在什么情况下,自动化测试是值得的"?如果他给出一个可疑的答案,就问他,像Google这样的成功公司是如何在这种情况下仍能茁壮成长的。

所以你可以看到,我的目的是让Lead参与进来,看看他的脑袋在哪里。建立信任。就问题与症状达成一致。这并不总是容易,特别是当你觉得他像哥斯拉一样,正在撕毁你的工作时。

有可能他不能妥协。他将粉碎自动化测试。代码管理是给粗心的人做的。My Way or the Highway.

然而,如果事情已经发展到这个地步,你就该离开了。在一个没有工具的车间里工作,我指的是软件和软件工程工具–不能建立你的简历。你将开始以同样的方式开始腐烂,就像Lead已经腐烂了一样。既然如此,那就继续前进吧。

46
46
46
2016-10-15 17:39:24 +0000

在IT行业工作了25年,改变他的态度是不行的,抱歉。这个问题与你所描述的真正问题相比是微不足道的:

*你的创始人对一个不称职的陌生人的信任比对现有员工的信任还要多。如果在雇佣这个陌生人之前就能做到这一点,那就更容易了。现在这很难,因为任何好的工作都会被归结到新的团队领导身上,任何不好的工作都会被归结到你们所有人身上–所以你不能通过努力工作来弥补。找一个调解人。是否有多个创始人,或者类似董事会成员之类的东西

  1. 也许信任的问题是知名度的问题。在这种情况下,任何有助于知名度的东西都可以帮助你。比如说,让sprint演示足够刺激和有趣,让创始人真正参加并了解团队的状态和进展。
16
16
16
2016-10-14 13:14:51 +0000

这个答案可能会被一些人认为是不利的,也会被一些人认为是粗鲁的,但是…..


第一面红旗是For a few years, the founder was unhappy about the technical skills of the employees

员工有没有尝试过改正不愉快?


第二面红旗是two of the five developers never used SQL before

如果开发人员不熟悉核心技术,不真正了解ORM所掩盖的内容,很难打造出一个高效的系统,


很难想象I worked for twenty-five years in this industry, and you? What have you done? You've been a code monkey for three years. So shut up, you, moron! Nobody cares about your opinion, a ******.真的说出来,但我还是会信以为真,相信你。

不过,请你考虑一下我提到的第一个红旗,以及创始人多年来的 “不开心"。

对此,我补充一句:你们知道创始人的不开心已经有很多年了?!

这些信息是怎么泄露给你们的?!”


我倾向于认为,这家伙是在做***准确地说是在做他受雇来做的事情;让你们进入状态。

让你们进入状态并不是指采用新人的不良做法,而是把你们从舒适区扔出,让你们从更深层次的学习。

8
8
8
2016-10-14 14:07:43 +0000

几年来,创始人对员工的技术水平不满意,最近他请了一个高级开发人员,担任技术负责人和项目经理的双重角色。他是唯一一个做面试的人,也是唯一一个决定录用这个人的人。

听起来,创始人好像不信任你们这些小伙伴。

然而,两个月下来,团队对他的情况却变得不那么欣赏了。我有机会和这个团队的五个成员中的三个人聊了一下,他们都强调了三个问题:

–据他们说,这个人是个混蛋,对团队的其他成员不尊重。最近他在团队成员面前和一个初级程序员说话的一句话很能说明问题:"我在这个行业工作了二十五年,你呢?你都干了些什么?你当了三年的代码猴子。所以,你这个笨蛋,给我闭嘴吧! 我可以想象出一些情况,我自己可能需要打倒一个年轻的 “全知 "的人,我也有过。 我只是在这里扮演魔鬼代言人,但听起来他是被激怒了。挑衅是什么?

过去的时候,所有的队员都会做出决定。当成员们不同意的时候,他们会一起讨论,达成一致意见,或者至少向不同意的成员解释一下道理。

显然,过去的做法并没有产生创始人想要的结果。这些决定是不能被质疑或讨论的,即使五个团队成员都发现某个决定没有意义。

又一次,这听起来像是创始人的不信任投票。他请来这种人是有原因的。

1.他讨厌IDE、自动完成、自动完成以及旨在帮助程序员更快地写代码的功能,并声称团队应该使用Notepad++来提高工作效率。虽然这在不同的情况下是有道理的,但很难想象C#开发人员会突然放弃Visual Studio而使用Notepad++,如果你是一个快速的程序员,

IDE会让你的速度变慢。Notepadd ++对于快速编码来说,Notepadd ++比一些快速编码更有优势。意思是你写好代码,然后丢到IDE中进行快速修正,而不是不断的中断。

1.他不重构代码,也不关心风格(这在他自己的代码中是不一致的),理由是 "他只关心实际的东西"。说句题外话,风格之前是通过夜建来检查的,自从新的主角来了之后,风格就开始失效了。

店铺标准是需要和创始人讨论的,尤其是你在夜建里跑的时候,就更需要讨论。但同样,从字里行间读来,创始人似乎并不信任你。

1.他拒绝了夜间构建的想法,也拒绝了自动化测试。按照他的说法,"反正任何一个专业的开发者都会用手来测试他的代码,所以没有理由浪费时间去写自动化测试"。夜间构建也是在浪费时间,按照他的说法,

他说的没错,自动化测试并不能说明一些傻瓜做一些从未想过的事情的天才。我亲手破解过几个经过自动化测试的程序

1、他认为版本控制大多是无用的,似乎对如何使用版本控制有误解。这就导致了他一个人开发一个功能三五天,最后提交修改的时候,确实是 "拿我的 "所有的冲突都是 "拿我的 "的情况。如果其他团队成员抱怨说自己的代码被抹掉了,他就请他们重写。有几次,其他成员也是这样做的,删除了主开发人员的代码。他一脸惊讶的样子(看来他不知道如何使用svn log或diffs),又做了一次他的修改,抱怨说 "莫名其妙的丢失了",并指责SVN搞砸了。

这里大家都有错。难道没有人备份吗?如果他在版本控制上出了问题,那是团队的责任,是团队的责任,而不是一味的为难他。

1.他夸大了代码优化的重要性。他的做法是正确的,即运行剖析器,判断出瓶颈并修复;问题是没有对性能的非功能要求,也没有说明用户可能认为应用速度慢的元素(而且托管在低等级的开发VM上,应用的响应速度很慢)。而他呢,几乎花了一半的时间来优化代码,

代码优化的重要性怎么说都不为过。代码优化的目的不是为了确保它能正常运行,今天的目的是为了优化它,以便于

1.你不是在修复一些三年后的问题,而这些问题本来是可以通过代码优化来避免的。

如果你今天只关心用户是否满意,明天就会有用户来敲你的门。

1.他把所有的SQL都是手写的,拒绝了ORM的想法。需要注意的是,目前的产品是基于微软的ORM实体框架,5个开发人员中,有两个人从来没有用过SQL,

2.那么5个开发人员中的两个人应该被炒掉。如果你依赖ORM,那你永远都不可能进入引擎盖下手动修复的东西。我开始明白了,为什么他在沮丧中骂人是'代码猴子'了。ORM很好很好,但如果你要想超越ORM的限制,你需要了解SQL。

1.他拒绝框架和第三方库,认为从头开始写东西要容易得多。他决定放弃除了jQuery之外的所有JavaScript库和框架,声称十五年前他开始用JavaScript编程时,没有框架,生活就轻松多了。

他说的没错。框架和第三方库都是有局限性的,如果你不够了解,自己进去修,那就是不懂代码。两种说法都可以成立。但是,如果团队中没有人不使用框架就不会写代码,那么你的团队就很弱。

1.他认为移动设备(包括平板电脑)只是一个炒作,所以没有理由浪费宝贵的时间去保证网站与这些设备的兼容性,做响应式设计。因为产品是一个公共网络应用,从移动设备上看,估计不会有很多人使用。不过,响应式设计对于这个应用来说,可能是非常有意义的,因为即使是在台式机上,它也会在19英寸的显示器以及大尺寸的高分辨率显示器上显示。

从你所说的一切来看,听起来他好像是被人拿来打扫卫生的。如果移动设备不是应用()的主力,花太多的时间是一种浪费。虽然在桌面上可能是个 "好东西",但 "好东西 "并不是推出的必要条件。

1.他要求团队不要再使用互联网(尤其是StackOverflow),而要依靠他们的大脑,离线文档(我都不知道微软还卖MSDN光盘!)和书。

好在他的态度很好。看来他是想知道谁会做自己的功课,谁在作弊

团队成员就这三个问题向公司创始人抱怨他们的新领导。创始人回应说,他们太过火了,根据简历和面试的情况来看,他对这个新牵头人的能力是绝对信任的,这也正是他当初分配给这个人做首席开发人员的原因。

团队应该怎么做:

–要么把这个牵头人赶出团队或者公司,

–要么逼他改变对团队的态度? 你最好还是听从这个人的建议,这样做才有意义。我们文物人有一点经验,知道书本上的东西永远教不了你什么。然而,你的团队却没有把这看作是一个学习和成长的机会,而是大发雷霆。

6
6
6
2016-10-14 10:49:19 +0000

所以我不知道你的团队成员向你的老板抱怨了多少关于主设计师的事情。但你有没有和他们进行过一次很好的圆桌对话?向你的老板解释一下你和主导研发人员之间的问题,让他说出他的看法。

1
1
1
2019-04-29 19:48:11 +0000

老板需要聘请一个人事经理

其他答案已经暗示了这一点,但问题的大象是,老板(可以理解)似乎很难成功地履行人事职能,如招聘、培训、解雇等。例子是:老板雇佣了一个表现不佳的团队,忍受他们多年,然后雇佣一个25年的老将来解决事情,然后当这个25年的老将无法解决事情时,又雇佣了一个顾问。老板似乎不知道如何经营人事方面的事情。没关系,有的人是靠这个吃饭的,这也是大多数企业都有人事经理的原因。老板需要聘请一个统计师。这样一来,楼主就可以腾出手来专注于企业的战略层面,一举两得

或许OP可以帮忙面试(毕竟楼主在这方面似乎需要帮助)?

1
1
1
2016-10-15 19:21:53 +0000

这里有一个 “皱纹",我还没有看到。对于有很多经验的人来说,没有跟上当前的发展速度是很常见的。我以前也经常遇到过这样的情况,有人说VB6和.Net有多可怕,当时那些人只是在重复他们听说过的关于VB6的事情,并不了解它。但这并不代表都像你说的那样,都是有道理的。也许25年的先生可以打开思路,把自己的做法和现状的优点综合起来,但如果怕不尽人意,怕不尽人意,怕被人否定,那就不行了。在我看来,这才是这里的实际问题。可能还有其他的问题(比如说对自己缺乏专业知识的防守),但这似乎才是这里的根本问题。

如果每个人都聚在一起,以开放和坦诚的方式解决自己的恐惧,那么他们应该开始向着更积极的方向发展。我不能说这听起来概率很高,但这是需要做的事情。

-6
-6
-6
2016-10-14 12:44:45 +0000
  1. 整个团队有没有和这个开发者一起讨论过,并试图解释像版本控制和IDE这样的事情的好处?开诚布公的讨论可能会有帮助

  2. 我同意侮辱其他开发者是不专业的,应该强行向他解释。问他,如果别人采取同样的语气,他是否高兴

  3. 问他是否在国内有什么压力,或者是有什么健康问题,比如糖尿病等,导致他的脾气暴躁

  4. 4.问他是否很高兴自己变得很老,是个脾气暴躁的老家伙,头脑萎缩,因为他没有学到什么新的东西。

5.如果其他方面都不行,就说他所有的错误都会被记录下来,以保存自己的皮囊,和他的对话可能会被记录下来。