欲抑先扬,外包当然有一定的优点:
- 首先保密性很强,员工能遵守必须的规章制度,反过来说员工服从性很强,创造力和执行力偏弱;
- 背靠大厂,一般都是华为、阿里、腾讯的外包,所以能了解一些大厂的工作模式、福利待遇等等。
- 能接触到更多的产品,以及产品的完整发布上线流程;
- 按时交付,更规范的交付流程,更完善的审查机制。
- 离职流程快,流程线上办理,当天办当天走
比如一个app的上线,面向更庞大的用户量,上线前要做性能测试、冒烟用例测试、模拟用户线上测试、多型号机测试,然后每轮迭代重复上面的测试步骤。虽然说大部分都是测试同学做,但是为了少一点bug,功能自测是开发一定要做的。
抛开业务功能,常见的多语言(支持至少六种语言)、暗黑模式、屏幕适配(平板、各厂家各型号手机)、大字体适配、安卓苹果机型调试、无障碍模式、业务埋点、日志、异常捕获及上报、广告位...... 这些对一个开发来说能学到的东西非常多,如果你做完一个项目,后续只是重复这样的项目,没有站到更高的角色,比如SE或者项目负责人,那这个公司对你的提升也就止步于此了。
再来说说外包的缺点:
- 加班!我知道不是每个外包公司都像我遇到的那个项目那么狠,反正9106是有的,这也是我离开的原因;我只希望能生活与工作平衡,没有太大的野心,毕竟工作是为了更好的生活。
- 没加班费 加班换来的是调休,周内加班不算,调休有时间限制(后来调整到半年)超过半年调休作废,但实际上很难调休的。就是工期赶才加的班
- 没有归属感 我入职的前半个月,开始发的是临时证明,凭短信换临时证明入园,每天出来交还,第二天重新领。最后半个月又搬到新的工作地点,也就是说工作地点是不固定的。
- 身心俱疲 人员流动大,我入职的几个月,一个团队同事来了又走,换了好几波人,到最后我竟然成了老人。团队一直是缺人的情况。项目一旦开始,前期招人难,那么你进来就要拼命的赶进度,大家一边磨合一边赶进度,每两周就有一次发版,发版前后都是加班加点。大的节点更是不允许出错。一边做需求一边改bug是开发日常面对的常态,但是bug量远远大于想象,业务功能的bug并不多,大部分是上面说的那些非业务的适配功能带来的bug。
- 不专业! 因为人员流动大,开发甚至项目经理也都有可能变动,新来的人要花时间了解项目了解需求,能给他的熟悉时间有多少呢?1天!恨不得你当天马上开发,一周时间考察如果没有产出就会想办法把你开掉。开发的不专业可以理解,但是如果管理层不专业,那完了,上面的所有缺点恶性循环。
- 没有赔偿 大部分外包出去的很难拿到赔偿,如果想让你离开,就签协议保持基本薪资(3K左右),不签的话薪资也是基本薪资,而且你得每天正常打卡,不能出去找工作。简历投到简历池中,让其他项目组、外包团队去联系你重新安排面试,面试成功后你的工龄重新开始。
我和其他同事聊了下,并不是所有的外包公司、外包项目都是这样,主要看项目排期和领导能力,是否能够顶住上层压力做出正确的决定,以及调兵遣将让手底下的开发做该做的事。
不管什么时候,信息透明都是最高效的,对开发来讲,需要的信息是知道什么时候发版、什么时候上线、每天要做什么事,这周要完成什么,OKR比KPI在开发团队尤其外包更管用,以事情的完成结果为导向。而不是员工活干完了还PUA让他加班。
说了这么多,一来是自省自己过去做过的项目,再一个也是回应别人问我为什么不建议去外包公司。
另外,不要埋怨找工作背八股文,如果每次都要背,每次都忘 说明很多东西并没有理解透彻,并不是这次找工作要求背完后理解透彻,而是要一遍一遍的加深理解。再在工作中遇到问题时及时抽象出来,反复论证加深印象以形成肌肉记忆。就是后面别人问你这些八股文,你能以自己的项目经验和想法回答出来,所以一定认真的学习关于框架 关于js的一些原理和应用。重在应用,宏观层面抽象出算法,设计模式后再深入其中想想是如何实现的。