作者:邹溪源,长沙资深互联网从业者,架构师社区特邀嘉宾!
起因
这是我无意中在筛选简历时,看到一位朋友发布的求职说明中,明确指出,外包勿扰,并给出了他做出这个决定的理由:
过去若干年间,他一直在中软国际从事.NET方向的软件研发,虽然工作了很多年,但是做的项目类型特别多,总感觉没什么积累,而且工作很累,经常要加班,压力很大。不仅如此,由于外包类型的项目,往往需要驻场开发,一旦在客户现场进行开发,其实都会成为封闭式开发,每天投入工作的工时往往会超过十几个小时。而且在客户现场的开发时,有时候就是低等公民,得承受来自各方的压力。
前不久也刚刚看到一位来自西安软通动力的资深Java工程师,由于长时间加班后引发身体疾病,并最终猝死,还得不到工伤补偿的新闻也触动了我们的心。
这边的互联网公司从业人员还可以吐槽每天996,让自己成为被公司圈养的小绵羊,更是让自己的家庭生活都受到了无穷影响;那边的外包公司从业人员们显然没有互联网公司这么多的露脸机会,哪里有时间运营自己的公众号啊,每天都被客户压榨得死死的,还得跪下来对客户说:爸爸,再爱我一次!
当然,坦率而言,现在国内的IT行业现状其实压力都很大,无论是外包公司、还是互联网公司,如果是几年前大环境还好的时候,或许大家压力大点,至少不会饿肚子,现在冬天来了,不仅压力大,而且还吃不饱穿不暖,一旦遇到公司困境,还得面临被裁员的后果。
好吧,在这篇文章中,我还是不输出焦虑了,只单纯的讨论一下这个问题。
在外包公司做增删改查有前途么?
有没有感觉,这是一个通用的句式:干xxx有前途么?
例如,在百度里面输入,“干程序”,首先会自动提示的就是“干程序员有没有前景”?好吧,有没有前途我也说不准,我就单纯的探讨一个问题,什么叫做有前途;在外包公司有前途么;做增删改查有前途么?
什么叫做有前途?
嗯,大家都认为钱=前途。有前途等于发财。这个问题就这样吧。
在外包公司有前途么?
外包公司的主要盈利点,其实是软件研发过程管理或者软件项目管理能力,一套优秀的软件项目管理流程体系,往往能够实现软件开发过程中的生产力最大化,进而为企业的发展带来巨大的利润。
在外包公司,主要的收入其实是来源于项目参与人员的人工费用,一般会采用“工料合同”的形式。这种合同又称为单价合同,一般会根据产品在研发过程中的实际投入或服务来计算合同总价。
当然,其实许多外包公司会采用这种方式来进行工作量的评估,然后再用总价合同的形式来签订合同,毕竟“工料合同”其实浮动空间很大,容易造成甲方的成本超支严重,而使用总价合同就可以将风险转嫁给乙方,对于甲方来说自然而然就实现了利益最大化了。
而总价合同的特点是应该明确设定需求、对功能的工作量评估都应该尽可能的科学,问题是,客户明白他想要什么么?大概率客户并不懂他想要什么,或者他以为他懂他想要什么,而且你以为你也懂他想要什么。于是陷入双方需求的拉锯战,软件的风险急剧提高,让苦逼的乙方程序员们成为砧板上的肉,被迫每天牺牲自己的时间,拿有限的生命投入到无穷无尽的需求大坑中。
而且有时候由于行业不同,还会陷入需求陷阱中,各行如隔山,客户想要的,往往与你能提供的,存在很大的差异。例如,连微软都会被武汉上诉,要求赔偿其在智慧城市项目中造成的大几千万损失,一般般的外包公司就更不用说了。
如果遇到这种情况,请勇敢的选择拒绝,或者使自己成为更专业的人。努力花更多的时间学习行业知识,然后用数据或阶段性成果让客户尽可能的无话可说吧。
当然并非所有的外包公司都是这种情况,例如像SAP或者Thoughtworks,其实也可以被世俗的理解为外包公司,他们也是为客户提供外包服务,但是由于他们是行业内的领先者,能够为客户需求提供更加专业的建议,所以他们有资格找客户签署“工料合同”。
例如一个SAP的服务工程师,从上飞机起就开始计算工时费用,每天动辄万元的服务费,服务工程师的工资自然而然也低不到哪里去了。我一位同事他哥哥就是从事SAP的外包服务,他说他哥哥每年只上半年班,工资超过3万一个月。。。嗯,好吧,这种外包就等同于有前途。
依然有许多公司会走在签署总价合同的外包公司的道路上,毕竟企业生存是第一要务,万一哪天接到一个合适的项目,让公司能够顺利的摆脱外包公司的这块皮,进入细分市场,获得进一步的生机呢?
不过大部分外包公司或许其实并没有那么好的命,而且还会由于内卷化(指优秀员工逐渐流失,而新人难以加入,最后被中庸的老员工主宰企业的命运)最终越来越丧失竞争力,并最终只能凉凉。而且缺乏核心主业的外包公司确实很难获得技能上的积累,这需要开发者能够提高自己的技术学习能力,努力使自己成为最专业的工程师。
做增删改查有前途么?
许多开发者都吐槽,每天的工作都是CRUD,也有许多开发者经常吐槽身边的那些开发者没前途,只会增删改查。
怎么觉得这个问题为啥这么魔性呢?难道你和他们不是同一拨人么?
有时候还会看到有人吐槽,说每天都在做CRUD的业务开发,感觉自己人都要玩废了。还问我怎么想。
我个人认为CRUD才是公司业务的常态,只有能够把CRUD玩得非常好,公司业务才能获得更快的发展。从表面上看,CRUD工程师的主要职责就是建表、封装接口、然后让接口输出数据符合客户端需求。实际上这里面依然牵涉到许多充满技术含量的东西。
例如,该如何建表呢?从海量的用户需求中,分析出与系统息息相关的核心部分,并分析出符合用户需求的核心领域,这种业务分析与设计能力是一位软件工程师非常重要的核心技能。
例如,以前都是撸sql,现在都用orm了,是不是觉得很香?增删改查一样也充满了期待啊。
该怎么建表,也并非想象中那么简单。例如主键是用自增序列,还是用UUID,该怎么设计索引,如何设计缓存,如何运用分表分库策略?这些看起来很简单的东西,往往并不简单。
除此之外,代码的质量本身,也是一件值得深入钻研的方面,例如《代码整洁之道》和《重构改善既有代码的艺术》这两本书就专门介绍了如何写代码和如何把代码写好。这也是一件看起来简单,却并不简单的事情。
除此之外,沟通技能、架构能力、风险意识,也都会在这些CRUD的开发过程中得以体现。
为什么总是会认为CRUD毫无挑战呢。如果你已经成为软件开发领域的大牛,请收下我的膝盖,否则大概率是因为你已经走在了云程序员的路上,把一切问题都想象得太简单了吧。
突然想起之前看的的一张段子,说火箭其实没什么技术含量,因为中国古时候早就有了。还有之前看的郭德纲嗯段子,他说:如果我跟一位火箭工程师讨论火箭的燃料不应该用氢氧,应该烧煤,对方正眼看了我一眼,那就是我输。
嗯,云程序员们,咱们离专业开发者还有不少差距啊!
总结
回到主题:在外包公司做增删改查有前途么?
在外包公司也好,非外包公司也好,努力使自己成为专业的人,都会有前途。
不管在哪家公司,如果你觉得不开心可以离去;但是如果留下来了,请珍惜每一段时光,上帝既会给你关门,也往往会给你开一扇窗户,只要用心去发现,你总会有所收获。
其实认真干好每一件事情,都会充满前途。如果过于敏感,总觉得干这个没前途,干那个没前途,那大概你应该去选择创业。那里你可以找到属于你的好归宿。
IT的职场的时光说漫长也漫长,说短暂也短暂。干得好就是四十年,干得不好,就是五年。
或许每个人都有机会花五年时间成为技术总监,但是却只有少数人,能够成为真正合格的工程师。
如有收获,点个在看,诚挚感谢