离开通信业入职互联网圈的一些感悟

去年年末,我离开了就任了近十年的通信行业,加入了淘宝(中国)软件有限公司从事淘宝浏览器的软件开发工做,至今已有好几个月了。在过去的这些日子体会着互联网行业的不一样,也让我逐渐地理解加入该行业前的一些疑问。下面,我就本身的一些感悟作一点分享,因为我的经历有限,因此局限性不免。

首先,理解两个行业软件产品的运营特色具备很是重要的意义。通信企业(指通信产品制造商,后同)的产品是卖给象中国移动这样的运营商的,由运营商经过使用它来为用户提供服务(好比提供手机业务)。若是通信企业的产品存在问题,将直接致使运营商的经济损失。运营商为了下降这种损失,会制定各类规则将之转嫁给通信企业。好比,我在UTStarcom工做期间得知,那时公司为了解决产品问题而进入运营商的机房将以每次百万美圆的费用支付给日本的某运营商(具体数目我记不清,但当时公司为此遭受了巨额损失)。显然,这种转嫁是带有必定的惩罚性的,其额度也谈不上是否合理,个中不合理性也反映了通信行业是买方市场。

在这种背景下,对于通信企业来讲,产品缺陷的严重性和数量与所带来的损失是显式正相关的,于是企业对软件缺陷有着更为严格的控制。我在多家通信企业工做的最大感觉是,她们对于软件开发的规范性要求很高,其中以Motorola最甚。我认为Motorola的质量管理虽低效,但却有效 —— 她能作到在项目初期计划好的时间内发布产品。

反观互联网行业,其产品大多由企业自身所运营(例如,直接经过CDN发布)。当产品出现缺陷时,开发团队可当即进行线上修复。这种模式的特色是,产品缺陷所带来的损失更有可能降到最低,且因为无人统计缺陷的真实损失、也不存在象通信行业那样的惩罚性费用,而使损失成为隐性的,进而容易让人忽视而忘记采起甚至是必要的缺陷预防措施。

两个行业的产品运营特色能很好地解释为何通信行业大多采用较“重”的流程,也能理解为何通信行业对于软件测试的要求在总体上更重视。

其次,咱们亦可从两个行业的发展水平去发现区别。相比互联网行业,通信行业更成熟,其成熟体现于运营商经过强制各厂商的通信产品遵照象3GPP、ITU 和IETF这些标准化组织所制定的规范,以保证它们间能实现互联互通。值得强调的是,标准化组织所制定的规范左右着产品的业务逻辑是通信行业很突出的一个特色。因为通信行业有着几十年的发展历程,于是其规范的规模很是庞大,这就形成掌握相关规范须要花费很大的努力,这也解释了为何通信行业必定须要有系统架构师和开发架构师的存在。

反观互联网行业,其并不存在象通信行业中的3GPP这样对业务流程进行规范化的组织(W3C是很重要的组织,但她仍没有规范象电子商务的业务逻辑这些内容),这在某种程度上减少了软件开发的前期投入成本,也从另外一个侧面反映了目前互联网行业的开放性(经过相互开放API的方式解决了不一样公司产品间的互联互通问题)。另外,也因为互联网行业不存在象通信行业那样庞大的规范体系,于是对软件架构师的做用在认识上也会相对弱。

再次,咱们能够从各自产品开发方式的差别找到两个行业的不一样。互联网行业是开放精神的体现,存在大量的开源(基础)软件,也使得不少终端产品有机会基于之上去构建。然而,通信企业的软件系统几乎自成一体,不少软件(基站软件最为典型)彻底是根据标准化组织的规范自主从无到有开发的,于是对企业层面的软件开发水平(架构师水平、项目管理水平)从总体上提出了更高的要求。对比互联网行业,企业(或开源组织)的开发水平具备明显的两极分化。处于开源软件阵营的每每具备很高的开发水平,由于这些项目能吸引业内的优秀人才,且这些人才当中不乏对软件的复杂性本质有着深入认识之士;处于另外一方的企业阵营,其软件开发的特色更多地体现于集成(开源软件)、定制与调优,开发水平则逊色很多(但技术水平可能很高)。就所接触的Chrome浏览器开源项目来看,我认为该项目团队的开发水平高于我所就任过的、包括UTStarcom、Motorola、NSN在内的通信企业。对于这样的结果,若是咱们知道大型开源项目大多运做得比企业项目好就一点都不感到奇怪了。

这里提到通信企业的软件开发水平在总体上要求更高,很容易让人简单地觉得是通信行业的软件规模更大所至,但根本缘由并不是如此简单与直观。身处通信行业的同仁可能会认为3GPP那么复杂,要实现它其难度能够想象;而互联网行业的同窗也能够举出象Chrome这样的项目,其压缩后的项目代码超过2G,其中包含WebKit、V8引擎等,复杂度更不用说。说实在的,要认真、严肃地比对两个行业的规模并不是易事,甚至很难拿出让人信服的结论,或许咱们能够从另外的角度去考虑。通信行业最大的复杂度在于基站子系统,能够说一个通信系统的开发中,大部分的人力被投放到了基站、网关这些质量要求很高的嵌入式设备的开发上。互联网行业中虽有象Chrome这样恐龙级的项目,但投放到这类项目的人员与整个互联网行业相比并不是大头,大部分人实际上是对其进行定制、优化或集成,或实现互联网产品的业务逻辑。

浏览器

最后,从产品的特色一样能够发现两个行业的差别。互联网行业产品最大的焦点在于用户体验和数据吞吐率:前者的工做内容表现为UI的设计与软件的配合实现,这类软件很难实施软件行业广为认同的单元测试等质量保证手段;后者的工做内容则表现为软件系统的集成和调优,因为受制于所采用开源软件的现有实现,一样难以实施相应的质量保证措施。通信行业的产品在高可用性、互操做性和安全性上的要求更为突出,因为关键设备是一个独立的嵌入式系统且软件实现更加自成一体,于是就有可能采用象单元测试这样的质量保证手段。相信读者从两个行业产品的特色上能解释很多行业间使人困惑的现象。安全

相关文章
相关标签/搜索