it外包网站源码-解密“外包”、“技术主导”、“业务驱动”公司程序员的日常生活

一、写作背景

2、各类企业环境氛围

3、各类公司开发流程规范

4、如何提升公司核心竞争力

5.一些相关建议

一、写作背景

我在大学期间进行过三次实习。 我大二时在一家外包公司工作。 我大三的时候去了一家科技公司。 现在我留在一家以业务为导向的公司。 熟悉我的读者应该知道,我曾经是一名优秀的实习生,两次提早成为正式会员。 最近,在这份工作的前半年试用期内,我经过仅仅一个月的实习就提前成为了正式会员。

写这篇文章的目的有三个:

1.纯粹分享这三个公司的工作经验。

2. 分享的同时,给现在的学生和不在这些公司工作的朋友一些参考。 虽然在真正经历之前,那只是别人所说的,也是所谓的“围攻”。

3、因为我有阶段性回顾的习惯,所以我感觉这三个阶段的工作表现还不错,针对不同类型的企业,我会分享一些提升核心竞争力的经验。

2、各类企业环境氛围

①外包

我们当时有一个10人的团队,驻扎在一家外企进行开发。 我们只被分配了一个小房间,但这个房间以前还是一个仓库,在公司的角落里。

房间上方的气氛与开发氛围“非常符合”。 只有吃饭的时候有人要水的时候才有声音,其他时间就完全没有声音。

这家国企有自己的食堂,员工都是有饭吃的,而且每人都有一张卡。 而这家公司只给了我们团队一张卡,也就是我们团队共用一张卡,所以我们在食堂里只能排队轮流刷卡。 餐后,团队每位成员需要转12元给CTO作为下午工资。 CTO收了之后,会转入公司财务,就是我们不包餐费。

轮流刷卡,不包餐的还好,虽然外包团队可以理解。 而且有时节假日食堂还会专门煮汤或者其他东西。 当他们听说我们的团队要来时,他们只是说我们没有。 有一次元宵节期间,人事部在食堂旁边发放礼盒,团队老员工想要领取。 因为人事部门的人对我们比较陌生,所以询问了基本信息。 他们一看我们是技术部的,连忙摆手说不要。

其实这个外包996每个月只发给我800的工资,而且还用支付宝汇款,但是我还是很感谢给我这样一个学习的机会。 没有“归属感”和“认同感”,它告诉我,这只是能够实践,这两类感觉自己相信外包的同学有很深的认识。

②科技为本

该公司是一家真正意义上的科技型公司。 公司产品的核心竞争力是技术,能够解决市场上其他竞品无法解决的问题。

公司创始人及管理层均为技术人员。 公司内还设有学院,设有选修课和必修课。 课后,他们要参加考试,考试成绩是年终表现指标之一。 上至HR,下至底层研发人员都要接受大数据知识的洗礼,随便各种Hadoop、Spark。 另外,公司会经常来公司与外部技术人员进行分享,公司内部也会时不时做分享。

这些技术氛围也是每个技术人员所期待的。 遇到任何困难,只能通过内部人员集思广益来解决。

这些企业中的技术人员具有核心地位,而核心部门也一定是开发部门。 但对于不同的技术,工会内部的分工更细,具体到那个模块、那个职能。

③业务驱动

在这些公司中,开发部门一般不是核心部门,但同时又是不可或缺的。 以我现在的电商公司为例,数据部门主要是给运营部门提供一些数据,以便他们更好的定价和定制活动。

企业的核心竞争力应该是产品,其次是模式,模式包括运营、销售等。 技术只是辅助构建这些模型的一部分,搭建一个平台,或者发布一些指标数据,都是为了更好的服务于业务。

市场上大多数互联网公司都是业务驱动型公司。 这些公司将把部分边际业务外包出去,专注于核心业务。 核心业务的技术不像技术型公司那么严格,他们规划的是最好的性价比。

3、各类公司开发流程规范

①外包

“无论是坏代码还是冗余代码,只要能实现功能,就是好代码。” 大多数外包公司或者几乎所有外包公司都不知道如何做codereview,只要能把功能实现交给客户就可以了。

我大二的时候,我们团队好像驻扎在一家外企,但真正做公司项目的只有我一个人,其他人都在做不同的项目。 那时的我,既骄傲又忐忑。 我自豪地告诉朋友,我正在一个人做一个外企的项目。 我感叹公司真是心大啊,把一个外企项目委托给了我的一位实习生。

那时我不知道什么是好代码,都是为了实现功能,各种丢包,复制粘贴,如果不是经常写“死亡三角”,没有人批评我说代码丑,没有人让我封装,都是夸我功能实现快,但是bug比较多。

产品总监经常来找我,告诉我哪些功能该加,哪些功能不该做。 业务逻辑都是freestyle,逻辑图都是现场画的。 我一开始听不懂,就认真听产品总监讲,然后在小本子上做笔记。 后来领导告诉我:“别听产品总监的,不懂就问我。” 后来央企运营部门也来找我询问需求。 真是人人都是产品总监啊!

团队里没有专门的测试学员,上线当天都是一起加班。 央企运营部门的人会帮忙测试。 我们的开发将实时解决上门测量的问题。 如果顺利的话,当天就会发布。 加班,今天继续。

这个项目经过我手后,字又大又烂。 现在我再也受不了代码了。 这个项目在我离开之后也已经下线了。

在这个公司,我什么都干了,从和乙方博弈,到和产品总监骂,再到后端数据库服务器。 不得不说,这也是一次难得的学习机会,在接下来的公司里我也尝到了这家公司给我带来的艰辛。

②科技公司

一年后,我来到了这家公司。 这家公司是数字仓库行业的典范。 产品是ToB。 客户是各个领域的KOL。 也是国内第一个Apache顶级开源项目。 领先不宜过多。

看看我们的开发流程和规格:

1.PRD/发行

如果是新功能,而且规模比较大,产品总监需要画原型图并详细解释; 如果是bug或者比较小的功能,需要在github的issue上解释清楚。 口头的言语永远不会有效。 如果产品总监口头告诉我们一些事情,我们会让他给个文件,发个短信,或者在issue里解释清楚,同时也保留证据,避免互相指责。

2. 本地重现

在本地重现该错误。 就是当出现bug的时候,我们的开发需要在本地复现,只有复现才能从根本上解决问题。 这一步是最难、也是最长的一步。 如果连bug的本地复现都无法复现,后续工作基本无从谈起。

3. 找到根本原因

对于Bug,首先要找到根本原因,这最考验综合能力。 我的导师给我的座右铭是:“大胆假设,小心验证”。 把所有的可能性都列出来,一一否定。 找到根本原因后,您就可以开始编写代码了。

4. 设计评审

这是对代码结构设计的审查,通过与导师或领导联系确认,并在代码编译之前完成,以防止设计失败并被彻底推翻。 这篇文章也应该写在github的issue里。 一方面,它会给后代留下痕迹,以便可以维护或迭代审查。 但高层经常看问题,如果设计评审没做好,也会强调要及时发现问题。

5. 编码(阿里巴巴指南、UT、IT)

写出好的代码是菜鸟的基本要求,不要写出低质量的代码。 那边要求按照effectjava和阿里巴巴代码指南进行约束,每次写代码都要经过UT或者IT覆盖。

6. 测试计划

当你写完代码之后,你需要制定一个测试计划,也就是测试用例,来解决之前在相同操作下会出现的bug或者验证你的新功能。

7. 测试证据

也就是说,Testplan制定好之后,就会去执行,并且验证成功的截图会被保存并发布到Issue中,作为你完成功能的证据。

8.CI

ContinuousIntegration-持续集成服务,它会自己运行构建和测试,反馈过程中是否有bug或者其他问题,看看是否与我们预期的结果一致。 我们在詹金斯身上做到了。 当你的代码发生一点变化时,你需要运行CI以避免影响系统的其他模块。

9. 代码审查

当你写完代码并通过测试后,先以PR的形式给导师审阅,导师审阅后再提交给领导。 对于一些重要的模块,leader读完代码后,还要进一步提交给CTO。 看完这篇,你还敢提交烂代码吗? 更不用说糟糕的代码了,如果一个变量名没有定义好,它也会被回调。

刚开始工作的时候,我觉得这种操作很烦人。 改一行代码就得写一堆issue,还要跑几个小时的CI。 后来吃了几次,真的很好吃。 不要只看代码编译,还要看很多其他的操作。 其他的操作也是为了你更好的编译代码,帮助你梳理整个开发流程,在不知不觉中提高你工作的严谨性。 所以直到现在,我来公司解决的第一个bug,我还是知道Rootcause等细节的。 其他人也知道,因为我把它发布在问题前面。

因为我在第一阶段的工作中养成了很多不好的习惯,比如写代码又快又烂,胡乱调试各种日志,为了实现功能而破坏设计模式等等。 所以我在工作经历的第二部分就被骂得血淋淋的。 春节7天看了4本代码设计的书并做了总结,深入阅读了项目源码,学习了一些设计模式等等。

在第二连,虽然被人讨厌很多it外包网站源码,也收获很多,但是你可以看到我在第三连的表现。

③业务驱动

业务驱动型公司介于外包公司和技术型公司之间。 他们既注重功能的实现,又注重后期的维护。 他们对规范保持中立,不挖坑,不做作。

因为离开第二公司后,我对代码有了一定的干净度,所以一有时间就去第三公司搭建项目代码。 领导也很认同我的行为,经常和我谈论代码设计和规范。 我还主动申请补充部门的开发流程规范,数据库的数组规范it外包网站源码,完成项目代码的UT、IT等。 这也是我能够早日成为正式会员的原因之一。

4、不同类型企业如何提升核心竞争力

在外包公司,发展不能局限于一点。 外包公司需要的是全能型人才,他们可以弥补不足。 在外包公司,你不需要熟练,但要求你借助现成的资源以最快的速度完成项目开发。 你了解的方面越多,公司就越需要你,你得到的也就越多。

在一家以技术为基础的公司里,你不需要知道自己的业务范围有多大。 您只需要深入了解公司产品的某一点,并不断优化。 这一点就是你的核心竞争力。 然后从这个点切入相关模块,技术深度才是王道。

在业务驱动的公司中,你不能只了解技术。 当其他开发人员只能和老板谈技术时,你却可以将具体的技术实现到业务中,并且可以从业务层面推演到技术实现。 老板会不喜欢吗? 但也要记住,技术是生存之道,不要忽视技术而耍花招。

技术人员的核心竞争力归根结底是技术,但技术也分为广度、深度、以及与业务结合的能力。 在不同的环境下,你应该学会做出选择。

5.一些相关建议

1、外包公司可以去吗?

在没有更好的选择的情况下,能走总比什么都不走强。 并非所有外包公司都是一样的。 也许你的领导很好,服务又好又丰富的乙方,食物好吃,饮料好喝,热情好客。 但大部分外包还是不好,看看那里的背景就知道了。

2.哪里可以找到技术公司?

所有开源项目背后的公司都是科技公司。 比如Kyligence开源了Kylin,Dubbo开源了,阿里巴巴开源了RocketMQ,微软开源了Flutter等等。在阿里、腾讯这样的大公司里,每个BU都是一种小公司,有的是负责技术的,有的负责业务,有的外包。

3、应届毕业生有什么选择?

建议去技术型公司或者核心技术部门。 从我的案例可以看出,科技型公司对我的整体重塑是最有帮助的,可能会开展我的职业生涯。 当你长期习惯了低标准时,就很难对高标准产生兴趣。

4. 我对这三个公司有何看法?

对于外包公司来说,我认为会缺乏“归属感”和“认同感”。 他们虽然不自己做产品,但要到客户现场驻扎,对于外包技术也不是很看好。

对于技术型的公司来说,对于个人的成长肯定是有帮助的,但是在这些公司里,因为你身边都是比你水平高的人,而且要解决的问题也比较困难,所以会有压力,但又无形中产生恐惧。 。

对于以业务为主的公司,最好选择自己擅长但有相关工作经验的业务。 我的第一份实习是电商项目,所以现在正在找电商工作。 虽然业务逻辑是一样的,但即使以后换工作,我也会选择电商行业。 虽然不仅仅是技术,行业知识也是竞争的力量之一。

选择哪种类型的公司见仁见智,可以根据自己的兴趣和专业领域进行选择。

- - 结尾 - -

如果您觉得文章不错,请点击阅读并转发,长按右侧图片关注公众号程序员乔格利,观看更多精彩。

明天的问题:你倾向于选择哪种类型的公司? 欢迎留言!

比赛签到规则欢迎点击: