技术leader升维之路(一)

请点击上面的“方正柱”,关注我哦???? 

前些日子,一个老朋友给我发个消息:“点个题目,技术和产品的工匠精神”,我应允了下来。正好和技术leader的工程师思维,有一些交集,便以此为开篇,启动技术leader的升维之路。

 

01.  

工匠和工程师

工匠思维,和工程师思维,有什么区别与联系呢?作为IT行业的工程师、技术leader,我们应该具备何种精神呢?

 

提到工匠,我们能立刻联想到木匠、瓦匠、铁匠等等。这些“匠”有个共同的特征,那就是工作的对象,只要是身体健全的人,基本都能够做,但是想要做好,却要日复一日、年复一年的不断精致打磨,方能做出精品,方能熟能生巧;代表人物有庖丁,也有卖油翁。

 

提到工程师,我们能立刻联想到桥梁工程师、建筑工程师、飞机设计工程师、火箭工程师、无线电工程师等等。这些“师”也有个共同特点,那就是工作的对象,是要在一个领域内具备比较完备的理论;面对的对象是一个系统,具有复杂性和关联性。

 

因此工匠和工程师,有一个很本质的一致性:两者都在创造现实世界的“产品”。但是工程师是工匠的一个巨大升级,工程师需要具备厚重的知识基础,去解决系统、复杂、多变的问题。工程师需要具备工匠的精神,同时有自己的升华。

 

02.  

理解工匠思维(精神)

瑞士的钟表匠非常好的诠释了工匠精神;很多工匠终其一生,都从事手表制作工作。从10几岁进入职业技术学校,到70多岁退休,一生从事钟表制作,精雕细琢每一个作品。在计时的关键技术上,瑞士高端手表和一个几十元的机械表,可能没有什么差异;但是因为制作工艺差别,两者在计时精度和高级感方面,不在一个级别;一个高级的瑞士表可以卖到几十万,而一个普及的手表只有几十块,价值相差千倍。

工匠精神起源于手工业,想把一个手艺做的精湛、做的有竞争力,不是在知识上掌握的比其他同行更多(至少这里产生不了级差),而是在对应的领域内,同样的方法,做的更熟练、更精巧;这锤炼了工匠精神的核心:精益求精。

工匠的工作内容,一生可能都不会有变化,唯一的变化是从学徒逐渐成为老师傅,从战战兢兢的打造到随心所欲的发挥。这种日复一日的重复性,对人这类具备强烈好奇心的物种,是挺难持续的。因为其工作内容持久的不变性,所以很重视“干一行爱一行”,需要具有长时间的耐心和坚持的素质。

让一个工匠更具有竞争力,需要他比别人做的更快、做的质量更高。比较有效的提升路径,是多做多练,做到手比大脑快;因为具备了工作内容持久不变的特征,这样的训练是有价值的,不会浪费。因此勤奋也是一个好的工匠必须具备的素质。

03.  

理解工程师思维

詹天佑建设张北铁路的故事,应该是家喻户晓,也是我们语文教科书上的内容。对于这段难度很大的铁路建设,其创新性的提出了“人”字形线路,用双火车头解决高难度爬坡问题。最终实现通车后,给中国带来了巨大的民族自信和国家利益。

铁路建设需要坚实的建筑知识,詹天佑也是一个学富五车的人。他是首批中国留学生,获得耶鲁大学土木工科学士学位,选为英国土木工程师学会和美国工程师学会会员,清廷授予工科进士第一名。

从詹天佑的身上,我们可以看出工程师的工作,要以雄厚的知识为基础,工作方法要根据实际情况进行差别分析、灵活应用,谓之“创造性”的应用知识;工程师的核心基础能力,首选是掌握的知识的多少、深浅。没有掌握好知识,是不具备成为一个好的工程师的基础的。

工程师应该具有创造性,让知识在实际场景中的灵活应用;詹天佑为了设计张北铁路,要进行大量的实地勘探工作。即使他有以前很多的设计经验,也看过其他铁路设计的方案。但是要做好这一条铁路,需要去重新勘探,“哪里要开山,哪里要架桥,哪里要把陡坡铲平,哪里要把弯度改小,都要经过勘测,进行周密计算。”工程师们面对不同项目,基本原理具有共通性,但是知识的实际应用上差异很大,需要对实际场景进行细致的调查分析,灵活的应用知识,来解决实际问题。

 

工程师应当异常重视质量;由于工程的规模一般比较大,投入的人力物力庞大,如果质量有问题,导致交付失败、或者运营故障带来重大损失,是难以承受的。在这点上,我们软件工程师相对比较欠缺质量意识。由于软件有低成本修复bug的能力,不像铁路、芯片之类,一旦出错就有难以估量的损失,很多人在思想上,不够重视。常常有早起快干速干、后期慢慢修正bug、提高质量的想法。作为业务需求方,也往往没有把软件开发当作工程,而当作一个“需求”的实现,不重视工程的必要方法,一味的要速度,最后给业务反而带来灾难。

 

工程师们需要深度的高质量协作;工程师的工作,对象复杂,工程量一般比较浩大,超过单兵作战的能力范围。高质量的协作,也是工程师必备的素质。把自己的知识,和别人的知识相衔接,自己的经验、设计和别人的经验、设计相衔接,共同完成“工程”设计、制造。这在软件开发行业里,是比较常见的,也是从业者最能直接感受、接受的一点。贝壳的价值观有一条“合作共赢”,也反应了这个工程师的重要素质。

 

04.  

实际工作应用

通过上面两节,我们分析了工匠思维和工程师思维,能够看出来他们的差异。总结一下,工匠的思维特征如下:

  • 精益求精

  • 长时间的耐心和坚持

  • 勤奋

工程师的思维特征如下:

  • 尊重知识,勤奋好学;具备专业理论知识基础

  • 具备创造性,灵活的应用知识,解决实际问题

  • 工程质量意识

  • 高质量协作

 

作为软件工程师要获得发展和成就,需要高度的重视知识的学习和积累,之所以为“师”不为“匠”,核心在于此。在这一点上,我认为是现在很多工程师需要关注和提醒自己。很多高级语言工程师,对CPU计算的方法、缓存机制和内存的组织,可能都不太了解了;对于多进程、多线程的切换方法,可能也不再有深入的去研究;对于文件系统的组织,也可能不太了解,而这些正是我们专业里基础的、必要的知识。【注:笔者曾经基于Tiny C,扩展了一套编程语言;看完了Tiny C的代码,跟踪了虚拟机执行的过程。对语言的词法分析、语法分析、语法树生成、伪代码生成、伪代码在虚拟机的执行,曾经比较了解,虽如今不太记得细节了,但是储备的知识还在】。

 

目前我们行业里大量使用中间件在进行项目实施,这有效的提高了项目开发效率,降低了开发难度。使用行业的成果,不代表我们可以放低对计算机知识的要求。我们是计算机的科班毕业,如果不能知道计算机的核心软硬件、操作系统怎么工作的,仅仅在高级语言层面进行项目开发,那么我们还不如不要读大学了,直接进培训学校学一年,可能都能达到现在的效果(这也是客观存在的现象,现在很多培训学校出来的工程师,开发工作干的也不错)。我们应当面向应用,但是扎根于基础知识。专业知识深度不够,将限制我们在这个行业发展的空间、解决实际问题的方法和能力。

 

在工程质量这方面,目前大部分行业的软件质量都不够高;这需要辩证的来看,高质量系统开发是很贵的,成本代价很高。软件行业在质量控制方面,具有完整的理论和实践;通过测试方法、流程管理和制度管理,是可以把质量控制的比较好的(100%是做不到的)。但是实际工程中,软件的质量往往让我们大大失望。我认为这要从两个角度来看,一是公司的整体目标到产出的过程管理产生的质量问题;二是工程师自己的质量意识导致的质量问题。

 

我发现一个现象,公司的软件做进度慢或质量不高,经常会归罪于研发不够敬业、研发水平不高或研发不够负责任,这大部分是一个错误的臆测。我和部分出现这样场景的公司聊过,发现他们的业务没有那么复杂,即使所招聘的工程师,不是行业佼佼者,但是对于做好公司目前的业务系统,却也不具备技术上的真正困难;和工程师直接沟通,发现他们也有很强的愿望、付出很大的努力,去做自己的工作。反思后发现,真正造成系统进度慢、质量低的原因,是业务上走的过快,但是不匹配对应产能的产研,导致产品设计过程、软件开发过程,被拉的支离破碎,很多项目成为半吊子工程,要么性能不足、要么可维护性差、要么质量差,后续又投入极大的成本,去维护这套濒临崩溃的系统,甚至不得不投入巨资去重构。一个公司的业务目标,和现在具备的产研资源能力,是应该相匹配的,如果这两者是脱钩的,不出问题才怪。业务部门经常质询研发的,是做不完你们加班啊;只可惜加班已经是中国软件业的常态,加班已经不从从根本上提高研发的产能了。管理层需要反过来思考一下,节奏放慢点,会怎么样?在如今的产业互联网时代,步子迈的慢一点,脑子迈的快一点,减少试错成本,会更符合公司的中长期利益。均衡短期和中长期的利益,是每个管理者需要思考和决策的。

 

过去移动互联网的黄金十年,造就了“互联网速度”,软件的迭代是以周为单位。在那个黄金时代无可厚非,火力侦察式的产品迭代、试错,是保障了竞争的需要。在这个阶段,项目经理和测试工程师被边缘化,他们的职责,很大一部分是保障软件体系的稳健输出和质量控制。在互联网速度的推动下,无所约束的开发工程师,只要PM、业务方验收了,自己的系统就可以上线了。这给在这个阶段成长起来的工程师,潜移默化的灌输了一个思想:快、快、快!速度的重要性超过了质量。但是在今天的B端时代、产业互联网时代,这个思路是有严重的副作用的;因为在产业互联网时代,交付给B端客户、产业角色的产品,必须是高质量的,试错成本太高了;除非是垄断市场,否则用户接受不了自己的工作受影响。

 

作为现代的软件工程师,我认为核心是要重视知识的积累和迭代,去理解计算机的基本原理、软件开发的基本理论,同时也跟上行业中间件、框架发展的变化;其次,高质量意识非常重要,这将是我们的“品牌”。再次,是具备工匠思维,精益求精,长期有耐心、勤奋的做好自己的工作;最后,具备创造性,灵活应用知识,和伙伴进行高质量的合作。

本文以笔者工作经历为素材,进行思考、总结,肯定有不足、不对之处,欢迎各位读者斧正,请加我的微信(windows2000d)或关注公众号,共同学习、提高。

[历史推荐]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值