本文来自华为人。如转载请注明作者及出处。

2007年高考报考志愿。在别人还在纠结犹豫的时候,我已经在志愿书里填好了“通信工程”这个词。那时候智能手机还不普及。我摆弄着旧诺基亚,总是好奇地想:手机是怎么打通的?为什么那一头的人能听到我的声音?中间发生了什么?在满脑子问号的驱使下,我迫不及待地想进入交流的世界。

现在,我已经成为通信行业的一员,可以像电影里的黑客一样打代码,甚至还背负着“首席软件工程师”的光环,但脑海里的问号并没有减少:如何解决传输负载珠光宝气的问题?2G如何与3G、4G共享频谱?如何大海捞针,快速定位现有网络问题?

问题越来越难,越来越尖锐,我只能强迫自己站得更高,钻得更深,探索未知。

一天八小时,半年写一年的代码

本人2014年毕业,一入职就参与了控制器软件平台相关特性的开发。控制器是GSM和UMTS无线网络的“总控制台”,而软件平台是控制器的“腰”,对稳定客户网络起着关键作用。

当时公司的控制器软件平台还在上海,我们13个新的R&D员工被派去承接业务,每个人独立负责一个模块。而其他人都在重复着“阅读文档-修改数据问题单-修改简单问题”的无限循环,我主动向版本经理推荐自己:能不能给我试试版本特性的开发?可能没想到新员工这么“虎”。PL版愣了一下,无畏地看着我,同意了这个“不合理”的要求。

我主要负责控制器IP网络传输路径的负载均衡模块,这是控制器访问流量时最常调用的功能点。“负载均衡”只有四个字,但是极其复杂。控制器连接很多网元,每条路径都有负载瓶颈。过载会导致丢包,导致语音失真、掉话、网速慢等现象,引起运营商投诉。

怎样才能保证每个环节的负荷均匀不超载,同时所有环节都能达到最大的使用效率?这个看似困难的问题的关键点在于均衡算法。比如装水的水桶有大有小,容量不同。按照之前的算法,100L桶装50L水,50L桶也装50L水,10L桶也装50L水,导致一些桶没有发挥出最大的潜力,同时出现大量的桶溢出,超载。只有改进算法,100L桶装80L水,50L桶装40L水,10L桶装8L水,每个容器的承重率为80%,才能达到鱼熊掌兼得的目的。

刚开始的时候,导师在那指导我,一切都很顺利,我充满了信心。但是很快我的导师休假了,留下我一个人。没有依靠的武器,我只能在恐惧中开始战斗。SE、测试和维护一起形成一个“铁三角”,分析我们的目标场景是什么,判断现有算法是否能满足要求,并根据这些目标场景对方案进行对齐。最终功能开发最终满足了流量负载均衡的商业需求,现有开启该功能的网络站从未听到过负载不均的抱怨。

这个阶段我每天12个小时处理8个小时的代码,要么写代码,要么读代码,要么验证代码。半年写出来的代码量,一年就赶上了别人。当然,光有数量是没用的,只有以质量过硬为荣。代码写好之后,还要去库继续集成。任何一个代码链接出了问题,都会导致持续的集成失败,导致掉话、断网等严重后果,所以我一直对代码保持敬畏。有些开发者可能会吐槽自己是代码农民,但如果我们心中有教堂,我们就不是代码农民,每一行代码都会转化为最有价值的存在。

让两条小河流入同一片土地

随着代码技能的提高,我遇到的挑战难度增加到了n次方,一个人把握全场的机会越来越多。

频谱不仅是通信运营商赖以生存的“土地”,也是最重要的财富,尤其是日照好、灌溉方便、土壤肥沃的土地。随着MBB移动互联网时代的到来,“如何让2G用户顺利退网”“如何让GU黄金频谱的频谱效率最大化”成为了全球很多运营商不得不面对的问题。2016年,Wireless提出了GU@5M解决方案,假设在900M等黄金沃土上共享5MHz频谱资源,同时种植2G高粱和3G小麦。

作为一个控制器软件平台,我们的任务是打通整个语音消息合并通道,换句话说就是让两条小河一起流入种植高粱和大麦的农田,这样庄稼越长越好。

当时只有我一个人负责平台方案的设计,但现实是连语音通道都不知道怎么打通,更别说合并两个通道了。但我总是积极思考。把大象放进冰箱需要几个步骤?首先,打开冰箱;第二,把大象放进去;第三,关闭冰箱。然后,要让两条小河流入农田,可以分三步走:第一步,购买摊铺原材料,第二步,制作施工图纸,第三步,施工队伍进场施工。也就是说,首先要考虑分配语音信道所需的传输资源;其次,制定资源分配算法,实现资源的均衡利用;最后,将资源应用于语音信道建立,实现合并语音流的传输。

为了确保解决方案能够工作,我们需要在由手机、基站和机房组成的仿真系统中验证解决方案。我还记得截止日期前的晚上11点多。在成都软件大厦的实验室里,我们七八个人聚精会神地看着电脑,仔细观察着每一个信号的方向。每个细胞都很紧张。当我们看到两个信号的对接参数一个个出来,而且都是一致的时候,不禁兴奋起来。

我立刻拿起2G终端打电话,电话那头“喂喂”的声音听起来很清晰。“成功!”我们兴奋地叫了起来,一直冷静坐着的版本经理突然在桌子上跳了起来:“太好了!”大家拥抱,欢笑,跳舞,开心得像个孩子。

小系统达到验证目标后,成功支持后续上行COMP、GU联合调度等关键技术路径的开发,最终促成了整体方案的商业化。GU@5M方案成功商业化,使2G和3G河流流入同一块麦田成为现实,节约了频谱带宽资源,保护了GSM网络投资,并成功应用于全球所有子网,成为最有价值的无线解决方案之一。

投标任务,只有最困难的工作

我还没来得及庆祝,新的任务命令又发出了。2016年11月初,我们部门20多人挤在一个会议室里,准备投标。

“下一个任务是GL普通谱,200人/天工作量,谁想抢?”

版本经理话音一落,我就举起了手中的竞价牌:“我要抢!保证150人/天完成任务!”

显然,没有其他人会去张贴海报。我暗暗喜欢:“看来这次没有对手了。”

版本经理嗫嚅道:“你小子敢这么干!”

自2015年我部实施FSD系统以来,每一个版本的这种场景都会上演。以前我们要开发什么模块,承担多少工作,都是由版本经理根据业务需要和每个人的能力来分配,很主观,不能调动大家的积极性。一些开发人员可能没有做他们真正想做的事情。但是全栈工程师系统却把这种情况从“派工”变成了“抢工”。在每个版本开始之前,版本管理器将发布任务需求和工作负载。任何人都可以通过投标接受这份工作。如果有两个人同时竞争,目标最高的一个会赢。

我总是喜欢抓住最难的特征。这些任务可能直接决定了企业的KPI,有些人可能会从困难中退缩。但是,我认为机会和风险是“双胞胎”。如果你不敢抓住它们,就意味着自动放弃机会。

这一次我早就关注到了GSM和LTE频谱的并发特性,可以实现GL频谱的动态共享,比之前的任务更难。2G和4G共享同一个频谱,最大的问题是相互干扰。这就需要2G用户告诉4G用户路径已经被占用,这样就可以绕道了。我的任务是搭建一个接口,让2G和4G通道可以互通,避免相互干扰。

在这个过程中有一个特别困难的阶段。任务涉及软件平台和硬件平台。我知道软件平台的实现,但不知道硬件平台的约束。第一个方案出来后,硬件部门初步评估可行后,我没有在硬件平台上验证,所以直到迭代的时候才发现底层硬件平台根本无法支持现有的方案。

还有一周时间迭代,一切都要重新发明?各种压力都在身边,有很多声音要求我做质量回溯:当初设置的时候为什么没有把方案评估清楚?我压力很大。在最后一周,我几乎把时间都挤爆了。经常熬夜到凌晨一两点,早上六七点才回来。我是一个大男人,但我并不觉得破碎。我只是心里有一大堆能量:一哭就要完成工作!

部门给了我很多资源,几个专家和我并肩作战帮助我。让我们想想还有哪些解决方案,有多难,需要多少代码,需要多长时间。然后,在白板上写字画画,想法碰撞……一周后,我们想出了第二个解决方案,解决了硬件平台适配的问题,把代码开发量降到了最低。

没想到,这个方案在不影响既定计划的情况下,赶上了迭代节奏,顺利完成了任务,堪称“越努力越幸运”的奇迹。

24小时紧急电话查询

2017年,我躁动的心又准备动了。经过几年的发展和能力建设,我开始觉得自己太安逸了,就想折腾。想一想,我们部门最难、最核心的业务在哪里?我想到了事故处理小组。

这是我们部门专门处理线上问题的虚拟组织。它24小时待命,不考虑节假日,处理从GTAC转移过来的难题。不仅要快速定位和处理紧急问题,还要划定和恢复事故级问题,尽快改善闭环在线问题。

在有些人眼里,轮到我纯粹是自私自利,但我不这么认为。很多在线问题并不局限于软件平台。我们在这里可以看到更大的商业链,是个人提升的最佳训练场。

压力无处不在,随时随地,比如时间的压迫。事故级在线问题,从报告到恢复,30分钟内解决。但是30分钟其实很难。控制器是一个庞大的系统。怎么才能只通过有限的现象知道哪个代码是问题?这就像大海捞针。即使判断出问题,控制器与基站和核心网相连,需要与其他网元一起操作验证,很难保证问题能在第一时间解决。

以及24小时内杀死CALL的压力。想问一个维护人员,你最怕什么?十有八九,答案是午夜钟声。记得有一次,凌晨三点多,有个电话打进来,通知A国某版本出现了2G单板重置问题,导致一个地区的人无法打电话。前一秒我还很迷茫,下一秒我惊出一身冷汗,放下电话,下意识的去了公司。

回到公司,我马上开始查日志,定位问题,一遍又一遍的查。早上7点,终于抓住了问题的源头——不是平台问题,是2G业务问题。联系相关业务人员修复问题,很快中断的业务恢复。已经是周末早上完成攻关了。本来想躺着休息一下,却发现脑子里还在放着攻关的图片,兴奋得睡不着觉。

这种场景每天都在重复。不久前,我们刚刚实现了全球网络控制器在线安全1000天的目标,这可以算是我们晚上头发越来越少,黑眼圈越来越漂亮的最大安慰了。

我即将步入30岁。我没有那么锋芒毕露,但还是敢想,敢做,怕输。每一年,我都会为自己设定超越的目标,努力成为每一个阶段我想成为的人,感受一点点内心的成长。

无论职称是总工程师还是研发兵,为了初步探索通信世界的简单理想,我都会躺在软件上做的精细、深入、透彻。我相信,只要你肯为自己想办法,世界就会为你亮起一盏灯。

这篇文章是从网上转让的,版权归原作者所有。如果觉得不好请联系我们删除!

技术来自积累,成功来自坚持

1.《江洪 华为软件王”杨江洪:4年从应届生到“软件总工程师”,他说秘诀是……》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《江洪 华为软件王”杨江洪:4年从应届生到“软件总工程师”,他说秘诀是……》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/1695170.html