某国企的七宗罪

169 阅读12分钟

在国企当外包1年多,人都废了,对代码的追求直插谷底了,离开之后,还是被它深深的影响,不吐不快。在这里吐槽一波重拾心态。
原本有几个项目组,每个组负责的产品其实定位都有点类似。后来都合到同一个项目组,人员瞬间多了很多。 像我这种后面并入进去的成员跟私生子一样,估计不太受领导待见吧。这个组各种问题,下面来逐一细数。
提前说明一下,我负责的项目都是中间插进去的,外包仔,懂的都懂,所以项目原本是多垃圾的都不关我事,我只能在屎山上继续迭代了,这也导致我越来越屎了。

第一宗罪:产品定位模糊

合并之后,有多款产品了,领导直接拍板将这些产品都合在一个系统内,但是,这里至少有3个产品都是低代码平台,一个是生产只有报表的,一个是数据大屏的(不就是报表的黑色版吗?在我看来都是同种用途的东西),一个是生产类似官网那些门户网站的低代码。老实说,这些东西定位重复度也太高了吧,除了这几个产品还有其他乱七八糟的,估计是打算搞一个生态出来吧。

这种都是平白浪费人力资源,而且本来那些产品都没搞好的,都是能用,但是不好用的状态,还有合进去,甚至技术框架都不一样的,vue2、vue3、react都有。还不如主打一款产品,然后其他产品能生产出一些配套的模块供给主打产品,他们那种就是啥都想留着,跟个70岁收破烂的老太婆一样。

第二宗罪:技术选型糟糕

上面提到,新项目就是把旧有的产品都合在一个平台上面,其实这种把原有的产品都放到一个平台这种做法,不就是微前端吗,直接参考微前端的做法就好了。你们知道他们的技术方案是什么样吗,旧平台是react写的,因为跑起来慢,说改成vue3会更好,提出这个提案的人我也想K一顿就是了。6~ ~ ~6,然后其他产品,技术框架不一样的,让各自负责的人搞个sdk出来,嵌套到平台里面。

厉害吧,这方案,也就是说要把旧项目的核心部分,解耦出来,再连同各自的框架打包出一个sdk给平台用,天才想法,虽然我还是把这个方案给做成了。但是一堆东西要改,什么样式污染啊,全局变量啊,项目的耦合过高的,还要跟外层通讯,同时产品里面还要改一版UI操作,连业务逻辑都要跟着改一遍。直接选个微前端框架就没那么多事搞啦。

第三宗罪:领导技术糟糕

上面提到的罪状,也能侧面反应出他们技术奇葩。有个领导曾经对着我们负责的那款产品指手画脚的要怎么改怎么改,我在旁边心里就一直想吐槽,大哥,你也是做技术的,拜托你至少大概看一下代码,看一下项目架构再说吧,你说的东西都跟重新做一个差不多了。

这时候出了第一版合并方案,大致就是旧产品项目打包一个静态页,部署到他们的服务器,通过跳转外链的方式来跳转,旧产品项目前端不用大改,后端把原本的接口都搬过去就好了。这时候领导又不乐意了,又说系统间不好做通讯,又说怎么怎么样,其实就是这领导是后端,不想后端来做接口,让前端来做一个参数的转化来对接旧有的接口,这就诞生出打包出sdk的这种方案了。哦,还美名其曰要做到elementUI那样,我心想,element也会分vue2、vue3两个版本了,大哥,* 吹。

最最最搞笑的是,等我做出来了这个sdk,另外一个领导却说,应该要让后端去改接口,而不是让前端来做接口转换的,然后我就对着他说,第一版的就是这样啊,然后他说不是这样的,Excuse me,那到底是咋样啊,说又说不清楚,还在那里否认,啥都给不出来,这些东西不是前端去改就是后端去改的啦,就二选一,完全不知道他想要啥,还说是做技术出身的,还是回去陪老板跑步吧。

第四宗罪:代码管理糟糕

技术不行,管理来凑,才是领导的正确做法,连管理都不行,那什么行呢?值得思考。

拜托,都202N年了,你都用react了,前后端的代码还要放在同一个仓库,每次合代码还得你们去合,每次都还合错。每次更新一个新功能,产品就会跑过来问,为什么不对的了,我只想说,问领导去吧,又不是我合的。

接口前后端分离了,但是代码管理没有分离,每次合代码又是由后端来合,wtf,大哥,你搞个子仓库都可以啊,由前端自己找个负责人管理自己的仓库。每次代码都搞得乱七八糟的,然后产品又找我们前端的麻烦,

甚至连产品的大佬都帮你找了个代码管理的方案了,我看过,很正常的、很优秀的方案,居然还不听,到最后还是我们几个前端合力强力要求分开管理,说起来,他的想法,放在同一个仓库方便打包,6,一个脚本的事。

除了代码放在一起管理之外,连该有的环境都没有,每次都是按月来发版,连测试分支是哪个都说不清楚,所以才不让我们合代码是吧。到现在我还没想明白那些分支究竟是为了什么,感觉每个都是正式版一样,连个测试分支都没有。

这些都不正规,就别说codereview这些高级玩意了(虽然我觉得这个不是什么高大上的东西,但是还是很多公司没有做到)。

第五宗罪:人员管理糟糕

嘛~,外包人员占大部分的国企嘛,人员管理自然而然的差。经常这个需求做到一半,就把人安排到其他项目组支援,去到其他组,然后发现啥都不齐,还得等一段时间才能开始做,那做什么,浪费时间,这样也搞到我挺精分的。
一个项目组好几个领导,不知道听谁的,一个说这个方案,另外一个反对。强,做完了,又说不是这样的,这种情况比比皆是。

而且,项目初期还没有产品经理来管理,任由程序员自己想怎么做就怎么做,最后有产品经理来对接的时候,又得返工。老实说,程序员自己想的功能,实际上真的很难满足用户需求,程序员思维嘛,大部分到最后肯定都会这样想,傻* 用户,这都不会用。最难顶的是,一开始开发那里,写的是一坨,耦合度超高,每改一点都牵一发而动全身,通常改一个小小的地方,要同时改5、6个文件。

系统首页,对接了N个产品,每个产品页基本都是类似的列表,正常来说,这些东西交给一个人来维护就好了,让他自己想一下怎么写组件。但是,这里不正常,是让每个子系统的负责人来负责自己列表,md,同样的工作分给了所有人,然后第一个人没写组件,后面的人都不写组件,全都直接copy。到最后,几个列表页的代码量奇高,我就想不懂了。

第六宗罪:产品能力糟糕

产品领导实际怎么样不清楚,至少他还能找个合理的代码管理方案出来(题外话,这个真的好奇怪啊,笑死了,居然要个产品经理来提我们要怎么管理代码),其他小的实际上真的很一般,甚至连合格线都没有。

需求极其不清晰,甚至连项目原本是什么样的都不清楚,因为我们整个系统是由多个产品合起来构成的,有些东西是属于父系统,有些东西是应该属于子系统,功能放到那里是要说清楚的,连这个都说不清楚,还要开个会讨论,浪费半天时间,明明就是个二选一的选择题,给我说是或者不是就行了,搞得这么麻烦。

还有个,只能说想太多了,哦,这可能是国内大部分产品策划的常态,就是别人有什么,我也要有什么,人家阿里的怎么样,我们的也要怎么样。需求一箩箩,还问我能不能做,那肯定能做啊,人家都做出来了,照着抄就是了,时间问题而已。不过里面有很多需求,其实在我刚接手的时候就提出过的了,例如操作不人性化,在低代码平台里面还要写代码,那为什么不直接写代码。再例如有个阿里那个低代码里面的蓝图系统,那个我也提出过,其实这个就是参考UE引擎来做的嘛,一个好系统。说实在的,他们提的需求,有一大半我之前就提过了,不过没人理,外包仔,正常。

产品不懂技术,还对原BI平台功能一问三不知,她们只看界面样式,然后她们很喜欢照搬照抄大厂优秀的产品,很喜欢想一套是一套,宗旨就是往复杂的方向一去不复返,恨不得每个功能组件都定制化一个个手动开发,还特别喜欢那种一层嵌一层没完没了的鸡肋操作,不考虑复用性,不考虑我们这边开发的实际情况,也没有想过逻辑通不通的问题,如果要按着这样开发就要耗费大量时间!

不过我觉得这样想没毛病,产品就是要基于用户的角度去想需求,唯一的毛病就是项目烂了,改不动了,屎山代码。我推荐过直接重做,不过那个项目的原班人马还在,当然不愿意啦,这样就等于否定他人的成果了,跟直接当面说他写得烂没什么区别了。

说个搞笑的事,其中一个产品跟我面同一家公司,他连简历都不过,就被人刷下去了,不过我面试也没过就是了,悲伤,还面了我3次,面了我两个岗位,也不算浪费时间,趁机复习了很多知识。

第七宗罪:所有都很糟糕

包括我也变糟糕了,各方面都不行,上班摸鱼,就想着什么时候被裁,因为前面就裁了一个,我就想着什么时候到我,来个N+1。

曾经公司内部有个技术分享会,在说某个项目的ts代码,那时候我说了一句那些类型都是any,那跟js有什么区别,然后领导就来了一句,能跑就行。

后来我也变成这样了,产品来咨询需求能不能做,我就发出了消极的言论,肯定都能做,但后面还是不是我做就不好说了,是吧,人跟代码有一个能跑就行。

领导要求加班我不加班,不过这个也不是我的问题了,明明都做完了,还想让我加班,就过分了,这可能也是大部分公司的现状了,硬性要求加班,没事做也要加班,反正就不能比领导早走。

每次周会都等于罚站,周会每次都没重点,两个领导,一个刚问完手下,另外一个又问那个手下上周做了啥,你但凡有认真听一下,都不会重复问啦,人家刚刚才说完。不过我觉得在周会上说这些挺奇怪的,我们不是没有写日报,不是没有任务记录,你们但凡有看一下,就不至于连项目进度都不知道。

能力不行,关系来凑。我是多多少少有点看不起这类人的,所以我有时候看他们会有点那种,你们懂的,看傻* 的眼神,估计他们也感觉得到。我估计他们,可能没去过一些大项目待过吧,反正很多都不是很正规。
后来,他们还问我对他们有什么意见,呵,我就把上面的点说了一部分,他们有没有听进去我不知道了,反正过几天就被调到其他组了,再之后就是N+1了。

他们的项目有不少都是为了做而做,然后往上面申请费用,产品又不用拿出去市场验证,总有人会兜底,无论做得多烂都有人用。

后语

从业了这好几年,小公司大公司都待过,各自都有自己的少少槽点,但唯独就这国企,只有满满的槽点。浪费了我不少时间,也把我的水平搞退步了。这里唯一的优点,估计是比较养老,项目压力比较小,像外面那些通宵加班的情况基本没出现过,别说通宵加班了,刚开始到8点钟就会关灯了。

我自己也不是什么特别优秀的程序员,自我评价就是个啥都刚刚及格的那种,样样会样样松,在这样的环境里,就更容易变得更松了。只能说还好及时跳出来,再晚一点的话,不知道会不会更变得更没有竞争力。

奉劝各位,有能力的,还是选一下项目组,选一下公司,被猪领导着,容易也变成猪。