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已经腐烂了一样。既然如此,那就继续前进吧。