我了解的大厂研发

毕业到现在两年多了,算上实习,在手机大厂也BAT大厂都待过,不同的公司管理风格和文化差异较大,但是又殊途同归,尤其是研发领域。

传统手机行业中,研发周期长,通常是半年左右,涉及部门众多,研发管理方式偏向传统硬件的研发管理方式,不过去掉与硬件相关的部分,软件模块的研发也还是脱离不了需求到产品到开发到测试的这种模式。相比手机行业,互联网行业的产品更加显得则小而敏捷,迭代周期更短,一个月甚至两三周就一个版本。

互联网倾向于试错,也就是互联网思维中之一的要快,小的问题可以等待产品功能上线再做修复。手机行业则非常注重产品质量,通过制定产品质量指标,严格进行研发过程中的质量控制,保证产品问题尽量最少。

从组织架构来说,研发架构主要分为三种,一种是小团队作战的形式(点),一种是扁平式的形式(线),还有一种是矩阵式的(面)。小团队的研发方式,就是每个团队负责自己的产品,从产品需求提出、交互设计、开发、测试、运营,都是自己团队在负责,不同技术模块也都是在团队内部输出,一般团队人数控制在一百人左右,这样的团队方便掌控产品的各个方面,并且部门内沟通相对较为方便。扁平式形式是分不同的产品部门,每个部门负责自己的产品,但是部门间的技术是互通的,进行共享。最后的矩阵式则是分不同的技术部门,但是每个技术部分又支持不同的业务产品,这样每个部门只需要专注自己的技术领域,同时还有支撑不同产品的交付,总来来说,这样的架构会对技术研究更深,但是产品交付压力也很大。

在我工作过的大厂中,部门间协作非常普遍,沟通成为研发中非常重要的一环。对大厂来说,多个地域的不同部门共同完成一项任务是比较常见的事情。尤其是做项目管理工作的,沟通几乎是家常便饭。沟通的目的是协调,需求需要对齐,问题需要确认,数据需要配合验证,顺利的时候能马上解决,但也有很多时候会出行意见分歧,甚至吵起来。产品经理与开发之间的恩怨纠葛已经是大家所熟知的,实际过程中确实会出现开发过程中加需求改需求,而需求也会被开发否定的情况。沟通增加了研发的成本,这种场景下,大厂都会研发自己的办公IM系统,以及电话会议系统。除了线上沟通,线下开会也是常有的事。一个好的研发团队会将会议控制到合理的时间范围内,保证足够的开发时间。当然不乏有很多人每天的工作就是开会。曾经与一些做类似工作的同事交谈过,这样长时间开会和沟通的工作大都不是他们希望的,大部分会议是为了弥补研发团队某些弱项而催生的产物。高效的沟通会对研发起到促进作用,而过度的沟通会让研发更加低效。

技术导向还是产品导向。有的大厂注重技术,管理人员都是技术出身,很多管理方式偏技术思维,技术作为奠定公司发展的基础,要时时刻刻准备投入新技术的研究,因此公司更具备工程师文化。有的大厂产品导向,产品经理的话语权很大,因此技术只是用于服务于业务,再好的技术没有业务的支撑或者无法应用到产品也,最终也不会长久。企业本质是为了盈利和壮大,技术更重要还是产品更重要,没有一个定论。

研发支撑平台很重要。大厂为了支持高效研发,都会开发不少研发支撑工具和平台,比如持续集成(CI)的平台。持续集成是保证质量的法宝。不管是大型的手机项目,还是小型的APP,都会进行持续集成。这个CI平台或许基于Gerrit,或许基于Gitlab,都是为了一个目的,尽早发现版本中的问题,在代码提交阶段就拦截出可能存在的问题,减少版本后期测试阶段的工作,从而提高版本质量。当然还有很多研发效率提升工具,这些基本都属于大厂的标配,研发自动化程度越高,一定程度体现了更高的技术实力。

规范的研发流程。大厂喜欢将研发流程规范化,这样就会出现很多标准,比如需求文档的模板、代码规范、质量达标数据等。另外研发生命周期会有严格的时间节点进行控制,抱着研发进度能够按照预期向前,不会出现大的风险。代码也会有专门的分支管理策略,以保证多人多部门协作开发能顺利进行。研发流程的规范化导致有时候会不够灵活,甚至会一定程度降低研发效率,大部分时间都在流于形式。研发流程规范化是不是真正能起到提升研发效率和质量的作用,还得看执行这些规范的人。

研发中填坑不可避免。研发过程中非常常见的现象就是填坑。填坑的一个原因,是因为历史代码腐朽,疏于维护,导致代码质量越来越差,最终出现一些莫名其妙的问题而不得已去填坑。还有就是甩锅导致的填坑,也就是部门合作开发,但是出现问题都不想担责,都不承认是自己的问题,导致最终总会有一个人去收场。还有的坑则是共同开发,代码耦合严重,导致影响了关联的模块导致。大厂内部研发涉及的人员众多,很多人参与开发时,甚至都不认识对方,或者从未见过面。代码上需要一套良好的机制去管理,才能减少此类问题的发生,当然也要提高研发人员的技术水平。

重复造轮子的现象很常见。由于技术和业务众多,大厂会有很多重复的需求,或者人为制造的重复需求。这样导致不同部门之间也会出现相同的技术,但是都是为了支撑各自的业务产品。大厂鼓励内部竞争,但是也会有因为KPI竞争出现过度造轮子现象,从而导致研发资源出现浪费的现象。有的大厂会对技术进行内部开源,甚至外部开源,这样会一定程度减少资源的浪费,降低研发成本。

技术提升与产品迭代节奏的矛盾。大厂鼓励员工提升自我技术能力,但是持续快节奏的版本交付会导致很多人无法及时沉淀现有的技术知识,而疲于应付一个又一个的新需求。做的好的公司,会给员工一些分享总结的机会,并且给予相应地奖励,这样的公司无疑是适合技术人员发展的公司。大厂一般会给员工提供内部技术文章分享的平台,也会有提供相应地课程进行能力提升和展示的机会,总的来说,需要研发人员自己协调自己的工作时间,及时对现阶段进行总结,也要对新的技术抽出时间来学习。

代码重构。大厂参与研发的人员多,产出的代码也多,一年少则几百万行代码,多则几千万行代码。这么多代码,如何保证代码的质量?很多时候,大厂的代码并不一定很好,但是不乏有很多牛人写出很优秀的样本代码。更多的时候,需要我们及时对老的代码进行重构,以满足日益增长的功能和日益变化的需求。代码太多会导致潜在的问题增多,系统的稳定性降低,一堆无章可循的代码对于后来维护的人和新人来说都是很重的负担。因此,为了提升后期研发效率,维护产品质量,造福广大同事,同时也提升自我技术能力,及时重构代码在大厂中是很有必要的。当然,相比重构代码,也要保证代码设计之初就考虑到各个方面的问题。大厂的代码给很多开发人员提供了良好的学习和提升的机会。

研发投入。研发的投入包括硬件的投入和软件的投入。这里的硬件指的是硬件设施以及研发工具,软件指的是研发环境以及各种福利。大厂一般不会吝惜研发的投入,尤其是好的科技公司,都会视员工为非常重要的资产,优秀的员工会投入更多的资源去培养。更多的研发投入,会让研发人员更加高效,更加高产。

专利的保护。大厂一般会对专利非常看重,尤其是鼓励员工创新。一般内部都会举办各种各样的竞赛或者活动,来收集一些好的创意或者技术。专利已经成为科技公司能可持续发展非常关键的一部分。掌握核心技术,才有谈判的筹码,这样大厂才能在复杂的商业环境中生存。

关于加班。国内大厂的研发加班还是比较多的,不过如果加班能够得到应得的酬劳,这样的公司还是比较良心的。好的公司也会关心员工。在大厂工作,每个人都是一个螺丝钉,没有谁不是不可替代的,所以还是要爱惜自己的身体健康。事业固然重要,身体和家庭也不能忽略。

我在大厂待的时间说长也不长,以上这些都是从我的角度看到的研发各方面。大厂能发展成大厂,有很多值得思考和学习的地方。以后有机会也去小厂体验一番。

原文发布于微信公众号 - Android虚拟机(androidvm)

原文发表时间:2018-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

程序员如何在职场中实现“跨越式”成长?

程序员如何在职场中实现“跨越式”成长? 最近我开始计划系统的梳理目前的产品:看系统后台数据;对核心用户做访谈;细分用户类别;梳理、分析业务场景;给出后续对产品的...

26850
来自专栏镁客网

不管怎样,完美的“Android VR”应该是这样的……

13230
来自专栏数据科学与人工智能

【数据】数据质量和数据治理为什么重新引起关注?

数据治理和数据质量已经存在了相当长的时间,但这些重要的数据管理实践近来又重新引起关注。Dataversity最近采访了Syncsort产品管理总监哈拉尔德·史密...

28820
来自专栏织云平台团队的专栏

【活动】腾讯运维总监带你探索 AIOps

52980
来自专栏架构师之路

架构师到底该不该写代码

周末InfoQ-StuQ直播,主持和听众提问的简版实录,快消时代,精简到1分钟可以读完(原文有10000字)。 提问:沈老师是从什么时候开始写文章的? 我从大学...

37880
来自专栏大数据文摘

业界 | 数据技能从哪学起?看看这张矩阵分析图

数据科学相关的技能和工具有各种各样的,想要转型数据的公司往往觉得无从下手,自己的团队到底该加强哪方面的技能储备才能有最大商业回报呢?撒网式招聘对于很多初创公司过...

8020
来自专栏云社区体验反馈

关于腾讯云+社区的体验

云社区我不常逛,但对各种垂直领域的社区很感兴趣,经朋友推荐,便来此处简单的体验了一回,做了以下书面输出。

325140
来自专栏腾讯研究院的专栏

张小龙:微信公众平台的八大法则

12月11日消息,微信官方公开课年度收官之作——“微信公开课 Pro 版”今日在北京举行,本次活动的主题为“微信·思维·智慧”。腾讯公司高级执行副总裁张小龙在...

38670
来自专栏WeTest质量开放平台团队的专栏

《2018腾讯移动游戏技术评审标准与实践案例》开放下载

? 进入2018年,中国移动游戏市场增速放缓,竞争愈发激烈;同时现象级手游层出不穷,手游精品化趋势更加明显,对移动游戏研发质量也提出了更高的要求。 在此背景下...

10240
来自专栏无原型不设计

优秀交互设计师成长指南

近几年来,随着互联网行业的兴起,设计师这一职业迅速成为热门。欣欣向荣的职业趋势吸引着更多的人加入到这一行业中来,优秀的设计师更是抢手。按岗位需求,设计师也分为...

32140

扫码关注云+社区

领取腾讯云代金券