因为对于软件开发的好奇和兴趣,通过自学我于1999年进入了软件开发这个领域。2003年进入了通信行业(UTStarcom、Motorola、Nokia Siemens Networks),2012年则离开了通信行业进入了互联网行业并工作至今(Alibaba)。
第一次工作出国是在2007年,目的地是Motorola公司的总部美国芝加哥。那次经历让我发现国外工程师的工作与生活状况与我在国内所习以为常的全然不同,最直观的感受是他们能很好地平衡工作与生活,且工作质量和效率比国内高。另一个观察是,每一个工程师似乎都具备做架构师的能力,而非像国内那样这种人凤毛麟角。中外的工作感受反差给我带来了刻骨铭心的震撼,不仅在之后持续地影响了我对提高自身工作质量和效率的重视,也让我会特别重视观察公司层面如何用机制去保证工作质量与效率。
2011年底我出版了《专业嵌入式软件开发——全面走向高质高效编程》一书,将自己高质效工作的方法和经验做了总结。基本上随后的每一年,我都会以该书的内容给企业做内部培训或应邀到全国不同的城市开设公开课,所接触的企业包含西门子、OPPO、福昕软件和多个研究所等,人员则来自全国不同行业的嵌入式软件开发工程师。这种“走出去”让我有更多的机会观察和了解当下工程师的工程能力而间接地感受到中国软件在嵌入式领域的发展水平。
2012年加入阿里巴巴后的前四年,我所从事的是桌面浏览器的开发工作。当初选择加入阿里巴巴的技术原因,是因为将要从事的桌面浏览器开发工作是基于Google开源的Chromium项目(Chrome浏览器的开源版本),而该项目具有相当高的技术难度和复杂度。后来我有机会负责阿里集团服务网格(Service Mesh)技术的落地,所基于的解决方案同样来自开源,分别是Google的Istio项目和Lyft的Envoy项目。可以这么说,近十年的阿里工作经历,也是实践和观察Google这样的公司和多个开源项目如何运作大型软件项目的过程。
从1999年进入软件行业至今,一直有幸见证着中国软件的进步与发展。在中国软件蓬勃发展的今天,是时候讨论进入文明时代了。
国内不乏像福昕软件这样的小而美的企业。2014年我给这家企业做内部培训时,除了知道她是Foxit PDF Reader的开发商外,意外地得知那时Chrome浏览器所用的PDF渲染引擎也是福昕的。如今这家公司已服务全球6.5亿用户。
国内也不乏大约二十年前大学毕业生趋之若鹜的全球知名通信设备制造公司。这些公司向来低调地闷声发大财。低调并非因为技术门槛低;相反,技术门槛相当高。
这些公司因为人员规模、行业发展成熟等原因,似乎无以代表当下中国软件的繁荣。在中国社会数字化转型的大潮之下,在全球欢呼元宇宙的时代背景之下,无疑互联网行业能很好地代表当下中国软件的繁荣。前有BAT指代百度、阿里和腾讯,后有TMD代表头条、美团和滴滴。从大学毕业生很想进入这些公司就能看出她们确实代表着当下繁荣的中国软件行业。
等一下,“繁荣”究竟是指什么?我以为:第一,从业人员钱拿得多;第二,人才需求量大;第三,价值创造迎合当下时代所需;第四,行业内的企业蓬勃发展(营收、解决就业的人数规模等)。估计用这些表面能看到的事实去诠释“繁荣”读者不大会反对。
然而,基于我的观察,过去十年中国软件的工程能力并没有质的提高,即便在开源软件发展得欣欣向荣的大背景下,国内工程师和软件企业很少关注工程能力背后所需的职业素养的培养和沉淀。这导致中国没有能力创造性地做出Chromium、Fuchsia、Android这样超大规模的软件项目。甚至基于这些超大规模软件项目做二次开发,也很难依葫芦画瓢地确保开发质量与效率。
工程能力是一种非常综合的核心竞争力,包含软件设计、架构平滑演进、质量保证有效性和效率、软件交付速度、流程、工具和工程文化等在内,围绕美(含易用性)、质量和效率三个关键字(词)展开。理论上,繁荣发展的中国软件应当让中国的工程能力水涨船高地积累起来才对,但事实并非如此。
其实,中国软件繁荣背后的本质是中国的人口红利,而非其他技术因素。因为人口多,所以软件用户的基数大而面临规模性技术问题,为互联网公司带去了技术优化的场景。但积累的方式需要提升整体的工程能力,而不是采用重人力和高时间成本投入的“野蛮”方式。
一方面,企业的管理者因为对工程能力内在价值的无感、对软件价值创造链中那些常识的无知,过于采用唯显性结果导向的管理方式,甚至不顾及员工个人家庭责任而放任用无效的加班去缓解自己的焦虑。另一方面,工程师忽视承担起提升自己职业素养的责任,以受害者的心态被动做事,俨然将脑力工作变成了体力工作,用一年掌握的技能干上五年甚至十年,以及放弃一直就有的平衡工作与生活的选择权。
对于互联网行业的从业者来说,请不要被时下各大公司所宣传的“黑科技”所蛊惑,以为自己身在其中而有什么光环。中国的人口规模决定了技术规模问题是一个常态,不足以强相关地证明技术深度和工程能力。相比之下,讲特定规格的单台计算机所支撑的业务能力和每笔业务的人力投入才更合理,但国内做得并不好而很少有企业做这样的宣传。
作为职场人士,我们必须清楚地知道,无论何时、何地、何境,持续提升自己的职业素养才是王道。无论所在公司的业务发展得多好,那只是当年多几个月的年终奖、多拿一些股票的事,并不能弥补自己职业素养积累的不足,而那种不足将来早晚会暴露。显然,越晚暴露所带来的生存压力越大。
在人口红利充盈的情况下,企业容易采用野蛮生长的做事方式“先跑马圈地”,或忽视或没有耐心给到工程师时间和空间,以提升工程能力的方式同时解决企业业务发展和个人职业发展问题。当业务蒸蒸日上时,“野蛮”做事方式所带来的巨大副作用并不会成为企业组织发展的主要矛盾,直到人口红利消失时这一矛盾才会凸显,甚至因为这一矛盾而加速企业的衰败。
在中美技术角力显性化,在疫情对各行各业都带来深远影响的情况下,是时候关注软件行业从繁荣走向文明了。
第一,文明体现在企业责任上。对于那些头部软件企业来说,不能只满足于承担社会责任(解决就业、创造社会价值等),还得承担国家责任通过提升整体工程能力帮助中国软件在全球取得竞争优势。
在中国社会的物质文明相当丰富的今天,是时候更多关注各行各业的精神文明了。在我看来,技术情怀和人文关怀是软件企业需要重点关注的精神文明内容。技术情怀体现于对软件设计之美、工程质量和效率的持续追求,是工匠精神的理想表达。企业没有技术情怀是无法创造环境培养出具有工匠精神的工程师的。
人文关怀着力于看见人和视人为人,给到个体安全感的同时,用同理心将组织与个体、个体和个体联结起来共同应对挑战和发挥创造力。人文关怀不只是关注员工个体,还得看到个体背后的家庭,企业应设定合适的业务发展速度给员工平衡工作与生活创造条件。活是永远干不完的,长期无法平衡工作与生活的人一定是身心疲惫的,那并不利于个体高效开展工作,也不利于个体的未来健康。当个体没有足够的时间投入家庭时,亲密关系、亲子关系很可能都欠佳,个体无法从家庭获得力量反哺工作的同时,反被这些关系困扰而分心。
企业实施“工程师队伍年轻化”是非常不明智的做法。一,通过制造“年龄焦虑”而用行动否定了人文关怀。二,说明企业根本没有想清楚要什么,体现的是对软件行业常识性的无知。企业要的不是一支年轻的工程师队伍,而是一支具有强大工程能力的工程师队伍,后者与是否年轻没有任何关系。为此,企业要盯的不是员工的年龄,而是他的职业素养有没有持续提高。与员工的年龄企业无力改变相比,帮助员工持续提升职业素养能很好地体现企业对员工的人文关怀,以及体现企业更有质量地承担了社会责任。
第二,文明还体现于个体责任上。首先是个体承担起发展自己职业素养的责任。职业素养的基本要求是高质高效地工作,对自己在工作中影响质量和效率的因素保持敏感并持续改善。更高的职业素养,是对工作中的美有追求并付诸行动。职业素养的提高离不开持续学习与实践,只有这样才能深刻理解和掌握软件行业的通识性常识,当你走上管理岗位时就更不容易采取违背常识的管理方法。就软件开发工程师来说,实施单元测试和持续重构应是你的标配工作方法才正常。
个体对承担起发展自己职业素养的责任要保持定力。不要因为企业不重视、他人不在意而随波逐流,也不要将自己设立为无辜的受害者。要知道,企业之所以不重视,正是因为那些技术管理者上位之前没有很好地发展自己的职业素养,或者没有顶住“赶时间”的压力所致。
其次是个体承担起家庭责任。平衡好工作与生活应是持续提高职业素养的永恒驱动力。工作与生活从来就不是矛盾体。相反,生活好了工作效率更高,工作效率高了又有更多的时间投入生活,两者周而复始地形成正循环。在是否平衡工作与生活这个问题上,每个人一直都有选择权,选择不去努力平衡其实是不愿意承担责任。
每个人除了应重视职业发展,还得重视自我发展。前者更多的是解决物质文明的内容(生存),后者则是精神文明的内容(心灵)。过去,我们因为物质文明不够发达,导致主要焦点放在了职业发展上,通过职业发展去“顺便”发展自我,这样的方式太慢、也太不充分。职场环境与家庭环境有很大的不同,需要我们在这两个环境都投入等量的时间去帮助个体更好地发展自我。
从家庭层面来说,构建良好的家庭关系(同时包含夫妻关系和亲子关系,而非只包含其中之一)是自我发展的关键内容。家庭关系的融洽程度直接反映了个体的幸福水平,是每个人一生都值得为之奋斗的事,背后的本质正是考验个体是否完成充分的自我发展。值得一提,高质量的陪伴是构建良好亲子关系的不二法宝,除此之外没有其他方法可以替代。我在《∞关系改善模型:彼此同频自我改变才是出路》一文中分享了过去一年我对关系发展的领悟。
个体在职场中能构建融洽的同事关系,并不代表他能处理好家庭关系。相反,能处理好家庭关系的人,我相信更能处理好同事关系,背后的逻辑在于融洽的家庭关系需要个体有更高的自我发展水平。家庭关系中的个体更能“看见”真实的自己,而客观地认识自己是自我发展取得突破的起点。
良好的自我发展一定包含个体对情绪和意识的及时觉察能力。这种觉察能力如同构建了一个上帝之眼,可以让自己抽离出来去观察自己当下的情绪,通过自己与自己的对话去调整自己的行为。
当知道了职业发展与自我发展的同等重要性后,读者就可以很好地理解,为何有些教授级的人物会在媒体上发表与之专业身份不匹配的言论、那些在企业中能管理好成百上千的人却无法“管理好”亲子关系,以及一些很有钱的人的家庭生活却一塌糊涂。这些根因都在于当事人的自我发展处于低水平。
在自我发展的道路上,我认为绝大部分人都受困于原生家庭,不这么认为是因为你还没有意识到。之所以这么武断,是因为即便是今天,整个中国育儿的大环境仍谈不上科学,更不用说目前已长大成人的父母辈的育儿水平了。给家庭关系带去困扰的最大主因极有可能就来自成人原生家庭的养育环境。
如果认可自我发展水平的重要性,你还会选择放弃承担家庭责任吗?
最后,我相信中国软件只有进入文明状态充分发展后,才能迎来在全球处于竞争优势的局面。
我们共勉!