APP下载

为什么做 Java 开发的公司需要那么多程序员?总结原因有以下几点

消息来源:baojiabao.com 作者: 发布时间:2026-05-18

报价宝综合消息为什么做 Java 开发的公司需要那么多程序员?总结原因有以下几点

我们先说说做企业应用的公司

下面9点不一定在所有公司身上都存在,但肯定是大同小异。

1.相对于互联网来说,企业应用不是一个公平竞争的市场。互联网公司创业之初往往是因为有好想法好技术,企业应用公司创业之初是因为老板有人脉有关系。大部分做企业应用的公司都是靠老板的人脉关系活着,靠在某个领域的关系垄断霸占著这块业务。而且也因为老板和高层习惯于人脉和关系,公司也会形成官僚国企文化,而不是工程师文化。所以这些公司技术老旧薄弱,技术人员也从来不会被重视。很多公司虽然有个高新技术认证,但根本没有任何技术含量可言。

2.客户是甲方是老板的上帝,老板得罪不起,因为得罪了就自毁人脉和关系,就没有在这个行业立足之本。特别是行业圈子有限,客户之间都是有联络的,得罪一个就会传到别人拿去。所以甲方可以蛮横的在需求、设计、技术方案等各种环节上提出自己的修改要求。而绝大多数甲方都是自以为是,什么都不懂,仅仅是为了表明自己懂或向领导证明自己懂。在专案实施过程中,和客户对接的程序员完全处于弱势。心中几万匹草泥马奔腾著,却要点头称是,敢怒不敢言。

3.有些甲方其实根本就不懂自己的行业,或者根本不能代表终端使用者,不知道自己的需求到底是什么。往往就是一句话:你先做出来再说。所以无意义的需求变更过于频繁,甚至有可能彻底推翻重来。而且这些甲方都是恨不能XP用一辈子的人,他们见不得任何新颖的设计。比如你用了现代化的前端,他们反而不买账,就觉得老界面舒服。你用Spring Boot了,他们认为你连Tomcat都不知道,反而觉得你太Low。这就更进一步助长了公司内部一些不思进取的人,他们拿着尚方宝剑说:使用者不认可这样!

4.专案招标同质化竞争,明著互相压价、暗着陪标围标等各手段都上。一家公司提出免费维护三年,另一家就可能提出免费维护五年。反正不管将来怎么样,先要把这个专案拿下来再说。最后专案工期可能是合同上的两倍,而且还要面临着验收后好几年的维护期。维护期往往就需要搭一个人进去,没有任何利润可言。最后造成专案整体式亏本,能收支平衡就不错了。

5.不像互联网应用那样,客户是网民,没有地域限制。企业应用的客户很可能不在公司本地。客户需要人员驻场开发才放心,我花了钱了就要见到你们的人,否则我怎么控制进度,我怎么知道你们是不是用最后两个月突击完成的。所以差旅住宿成本飙升。为了能有新专案收入,就必然不惜血本继续拿新专案。然后新专案又不断压价,造成恶性循环。

6.公司成立之初,可能有几个骨干技术人员。随着公司慢慢发展,他们就成了技术副总、技术总监、技术经理什么的技术管理层。但是这些人基本不会自我提升,而是想着如何继续把公司的技术把控在自己手里,让自己永远坐在过去的功劳簿上。所以他们就禁止技术升级,禁止他们不会的任何技术出现。这样他们才有用,他们才能管理新入职的程序员。

7.公司不重视技术,也就不重视技术人员。技术人员永远是三等公民,远没有销售的地位高,也不如财务、行政等职能部门那些会拍马屁的。程序员在专案的投标、实施的整个生命周期中没有话语权。投标时,销售为了中标就胡乱承诺功能和时间进度,根本不会和实际开发的技术人员商量。往往只是给技术总监打个招呼,而技术总监不会考虑底层程序员的利益。实施中,面对客户的需求变更,销售和技术管理层不会和使用者讨论需求变更的原因和合理性,而是会配合使用者软硬兼施让程序员去实现。

8.在企业应用的公司里,除了程序员以外,所有人对软件开发的理解就是堆程式码搬砖头,人月神话在他们这里一次一次真实上演。一堆砖头,4个人6个月能搬完,6个人4个月也可以,上12个人就可以用2个月完成!所以从老板到销售到技术总监,一遇到进度问题首先想到加人。不管是需求的原因还是技术上的困难,能给你加人就是对你最大的恩赐。

9.为了降低人力成本,也为了让客户看到自己公司人多,所以就招聘低水平的研发。本来应该招聘一个两万四的,但更愿意招聘两个一万二的,最后招聘的是三个八千的。这些人谈不上架构水平、程式码质量、自测什么的,造成专案交付质量极差,往往让客户充当了测试的角色。这就进一步让客户对公司产生怀疑,认为公司没有全力投入,就要求你驻场开发。

总之,所有的这些因素都在不断恶性循环。循环的结果就是:做企业应用的公司可能会发展变大,但是不会变强。变大是因为研发和后期维护人员摊大饼式扩充套件。不会变强是因为技术常年不会有任何变化,人员层次常年不会有任何提升。没有人从提升技术水平和开发效率的方向去考虑问题,都在想如何拿更多的专案、如何跟客户玩游戏。

多说两句:

我毕业19年,一半时间在开发企业应用的公司。经历过几百上千人的国企,也经历过十几个人的小私营公司。面对的行业有-、电网、电信、民航等等。09年以前是Weblogic平台国内专家,后来主要是Spring+前端。现在还在给多家企业做技术咨询顾问,帮助他们整体技术提升。这19年,我从未见上面的恶性循环趋缓,而是还在不断恶化下去。

每一个有点理想的做企业应用的公司或老板都有一个梦,就是产品化。说白了就是能把产品刻成光碟卖(当然这是传统的做法,现在方网上下载也行)。因为只有这样才能突围出怪圈,走上由大变强之路。这需要公司有非常深厚的行业经验,了解使用者的想法,抓住使用者的痛点,从中总结和归纳出通用需求。需要有非常强的架构和设计能力,让产品可以按需裁剪、灵活定制。需要有非常强大的编码和测试水平,让产品能够稳定顺畅。

为了能够实现产品化,但又要面对现有技术水平太差的现状,很多公司就采用专案养产品的策略。就是专门成立一个产品部门或团队,从其他专案组抽调技术人员,或者新招聘几个所谓的高手,集中力量研发产品。产品研发是一个周期长、成本高、风险大的工作,而且在真正出来满意产品前是不挣钱的,只能靠专案赚的钱来输血。这种策略往往都是失败的,因为没有一个公司有实力、有耐心去长时间养著一个不挣钱的团队。所以,几乎没有公司能实现这个梦想,都会重新回到摊大饼的老路上。

这几年一线城市生活、租房等成本飙升,而且必然会传导到程序员的薪资要求上。原来社保福利能不上的不上,必须上的按最低标准上。以后社保由税务部门统一征缴(现在暂缓实施),那就逃不掉了。所以,最近几年会有大批做企业应用的公司裁员或完蛋。因为研发人力成本是公司经营成本中最大的一部分,这部分成本在加速上升。原来活的好的公司会面临巨大压力,原来活不好的公司会面临死亡。

上面说的是公司,下面咱们说说技术和技术人员

面对企业的负责人,我经常描述一个场景:有一个工地,几百号人在用铁锹铲子挖坑。我找上门去,问工头:你们知道有一种装置叫挖掘机吗?有的不知道,有的知道。有的以前在别的工地见过或开过,只是来这边以后没机会用了。如果我开一辆挖掘机来,用一天时间干的活就相当于你们这一个工人一个月的工作量,你相信吗?而更重要的是这个挖掘机是免费开源的,不用花钱买,仅仅需要学习掌握如何操作。

这几百号人的工地就是企业应用专案实施团队。而我说的挖掘机就是Spring Boot + 前端(Angular/React/Vue),当然也就是我现在推广的JHipster。

正像我上面场景里描述的那样,有很多技术负责人和普通Java程序员都知道Spring Boot和前端框架。但是对于他们来说有点遥远了,可望不可即。有的Java程序员自己在偷偷学,跃跃欲试,但是这种技术氛围的公司不可能给你实践的机会。有的技术负责人也认识到了新技术能够为公司技术带来的提升,但是苦于自己也不会,更没有能力对下属培训和指导。如果新招聘会的人,自己连面试问什么问题都不清楚,又怕招聘来个水货。总之这些所谓的“新技术”对企业应用市场造成了一定的冲击,但企业自身却有各种困难无法把新技术转换成真正的生产力。

我会给一家企业介绍讲解现在主流技术栈,并且给他们的员工培训。还会让他们自己找一个典型的业务模组让我用新技术去重新实现,然后把新技术实现和他们以前老技术实现作对比讲解。这些过程完成以后,他们都会认同铁锹铲子和挖掘机之间的差距。这时他们就会在内心深处面对另一个难题:破梦。

什么是破梦?就是打破程序员的梦,把他们从舒适区赶出来。之前说过,每一个有理想的企业软件公司都有一个梦,就是产品化。而公司里的Java程序员也有一个梦,就是手头会的东西能用一辈子。自己永远待在思想的舒适区里,不想动脑子,不想转换思想,只想日复一日做重复的工作。有一句话是叫:没有公主命却有公主病,这里应该是:不是铁饭碗的命,却做着铁饭碗的梦。

这个梦比公司的梦更容易实现,不用花一分钱,不用开一次会议。有适当的土壤和水分,种子就会发芽,而做企业应用的公司就满足这些条件。可怕的是,这个梦是集体的梦,而不是一个人的梦。如果只是一个人的梦,这个人会被淘汰。如果成为集体的梦就会开始逆淘汰,那些不断提高自己不断学习接受新技术的人会被“淘汰”。

在我见过的多家公司,这个梦已经实现了。

加班?不愿意啊... 但可以接受!

出差?不愿意啊... 但可以接受!

薪资没有互联网公司高?不愿意啊... 但可以接受!

学习现在的主流技术栈,提升开发效率?不愿意啊... 不但不能接受,还有很多理直气壮的理(谎)由(言)拒绝你!下面三个谎言比较常见:

1,这个技术不适合企业应用!

说这句话的人,大部分认为某项技术只适用于互联网。他们简单的认为互联网和企业应用在开发上有很多不同,而很多技术天生就被打上了不同的标签。但实际情况不是。没有专为互联网应用开发的Spring Boot,也没有专为企业应用开发的SSM/SSH。没有专为互联网应用开发的React,也没有专为企业应用开发的Angular。

没有一家互联网公司只有为普通使用者开发的界面。滴滴不可能只有给乘客和司机用的两个App。阿里巴巴集团,上到马云下到普通员工,不可能成天顶着天猫和淘宝界面浏览。他们都有自己的中后台系统。蚂蚁金服的内部,也不是天天只访问支付宝界面。

就蚂蚁金服的中后台系统复杂的就不亚于一个国有商业银行,腾通的中后台系统绝对不会比电信的简单。

最近在给多家企业推广Ant Design。当然们看到Ant Design文件中这段话时,深表认同:蚂蚁的企业级产品是一个庞大且复杂的体系。这类产品不仅量级巨大且功能复杂,而且变动和并发频繁,常常需要设计与开发能够快速的做出响应。

从 2015 年 4 月起,Ant Design 在蚂蚁金服中后台产品线迅速推广,对接多条业务线,覆盖系统 800 个以上。有做企业应用的公司有800个系统吗?蚂蚁金服的中后台产品线有,而且还仅仅是已经推广了Ant Design的。2,这个技术不成熟!

事实是他根本没有去深入了解这个技术。往往当他说完这话之后就不会再和你继续讨论了,他说这句话的同时就算是给你最盖棺定论了。

不成熟的技术,当然不在公司乱用,万一影响到专案进度和质量,谁能付得起责任?

不愿意花时间去深入了解一项技术,不勇于“试错”,有怎么知道这项技术不成熟呢?

不了解的就是不成熟的,不成熟的就是不能用的,不去用就永远不了解。这个死循环永远打破不了。3,这个东西太难用!

有些技术,因为他们听的太多了,耳朵都磨起茧子了。或者是别人强迫他们去学习了解的。当他们遇到一点点困难就甩出这句话,然后就没有然后了。

思想最难的就是转变。一个新技术或新框架,往往是因为旧技术或框架无法支撑其新的思想才出现的。或者说,新技术就是代表了新思想。技术的进步就是思想的进步。

可是有些人学习一个新东西,就是要往自己已经会的东西上套。套不上就是难用!可是完全套上了又和之前的东西有什么差别呢?

我们在参加工作前,做了十几年“学生”,难道不就是学习“生”疏的东西吗?学习就是转变思想的过程。学习一个新技术新框架,就是跟著作者的思想在想问题。想明白想通了,处处顺风顺水。想不通,觉得别扭,开发也束手束脚。

回到前面我们说的铁锹铲子和挖掘机的话题上来。当企业负责人意识到挖掘机对自己生产力会有变革性的提升时,他们就会在内心深处面对这样一个难题:公司内程序员的梦怎么破?那些理直气壮的谎言怎么才能揭穿?

最后还是要推荐下小编的Java学习群:641121948,也可以加我微信:Zhanlaoshi51 不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2019最新的java精讲视讯入门教程,欢迎初学和进阶中的小伙伴。

每天晚上20:00不固定会开直播给大家分享入门学习java的知识和路线方法,群里会不定期更新最新的教程送2019java学习教程),大家都是学习技术的,或是兴趣,或是大学生,还有工作中想提升自己能力的朋友,如果你是正在学习java的小伙伴可以加入学习。最后祝所有爱好者都能够走上人生巅峰,让程式码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。

2020-01-04 04:52:00

相关文章