软件能力提升,拒绝浮躁

上周有幸参与Robert在成都的2天重构交流,他一个美国长大的中国人,时刻保持一颗振兴中国软件为己任的心,给所有同学留下了深刻的印象。我也利用周末陪小朋友培训的片刻时间,把过去10年我从PL团队到开发部,再到分部,各种软件能力提升的经验,整体做个总结,希望能够给大家在当前战时状态,提供一点思路,说的不对的地方,欢迎扔番茄。

 

先回忆下面几个场景:

1.     要做可信软件,对人的软件能力要求高了,主管要我们开发几门课程,封闭3天,全面快速提升大家的能力。“”纳里”?3天不够,那5天应该好了。“这。。。”。

2.       做完一个为期2个月的训战,每周2,4晚上进行针对性练习,领导突然问你。大家投入这么高的成本,到底能力提升了多少,对我们的业务到底有多大提升?能不能给出一个量化的指标?“这个。。。”

3.       你正在进行一个系列培训,领导突然转发邮件,告诉从没有参加过的兄弟们,赶紧去听听,提升能力。“啊。。。”?没有前后文,直接就这么去听一会,能力就提升了。。。 

 

上面3个场景,基本说明2个点:

1.       做软件能力提升的兄弟,在华为很难混的很好,因为真不好量化,不好说自己做的多好,所以都是兼职,我也是兼职。

2.       公司的各级主管们,依然把能力提升当成攻坚项目来做,集中所有专家+快速制定课程+封闭集中训练=兄弟们的能力飞速提升,哪怕1个小时感受下,好像也能够明显提升基础能力。

 

前年看完《刻意练习》这本书,我在分部做了一个尝试,把连续3次技能鉴定不通过,但是绩效又都还不错的同学,约30人,集中起来进行了为期2个月的训练。特别说明下,我的主管明确在ST会上否决我的想法,产品线也明确发文禁止组织任何形式的培训,来提升大家通过技能鉴定的通过率,我在违规操作。所以不敢发任何宣传邮件,不敢向领导说我在干啥,偷偷摸摸干了2个月。目的就一个,找出了一条快速提升在职人员编码能力的方法来,顺便提升下这帮人的编码人力。最终结果是27人通过技能鉴定,不通过的3个人中还有1位题目理解错误,不然用例也是全部通过。连续3次以上,多年不通过的人,为啥90%的人可以2个月就达到这个效果。方法如下:

1.      我们选了10名分部最强的DE,都是各个部门的软件高手,每人辅导3个人。

2.      同学们做题时,师傅就坐在学员后面,观察自己的徒弟,做题中过程中到底哪里有问题,基本编码不行?数据结构基础不行?调试太慢?或者干脆语文不行题目理解问题?亦或用例设计不全老是触发异常等等。师傅发现问题,当天晚上立刻反馈给学员,让他们后续针对性的练习,反复练习,导师持续反馈。

3.      每周2,4晚上,所有同学做一道题,一共坚持了2个多月。

训练的方式就是这么简单:科学的练习方法,高手实时反馈,学生不停纠正,持续坚持。(那次训练结束后,部门不少主管、员工问我啥时候有第二期,我只能呵呵,没有第二期,我还想在公司多混几年,我可不敢再违规了)

 

在上面3个关键点:科学的学习方法,高手持续反馈,学员坚持训练,哪一项最难做到呢?第一个不是问题,软件发展这么多年,很多本质的东西根本就没有变化,相信大家都非常清楚。第二点,比较难,高手都要投入战斗到最激烈的地方,怎么可能让我们的高手来做员工能力培养呢?第三点,持续坚持,比上天还难。我们持续在战斗状态,每天都是攻坚战,何来的时间练兵。但是我们所有人又都知道,能力上不去,人均效率提不上去,只会更多加班,何时是个头。于是考验的不只是员工能不能投入问题,更考验一名主管的魄力,你敢每周让大家花一个晚上来专门提升软件能力么?估计看文章的你(主管),你会毫不犹豫的说:“只要专家可以投入,我肯定保证兄弟们投入”。我可以负责的说,这个永远做不到,被各种问题打扰一定是常态。当前我在B部门工作,在一个20人左右的团队,我们坚持5个多月持续员工软件整体综合能力,中间被PL,LM, SE各种紧急事情干扰,不计其数。虽然我还是总工,我还是分部软件负责人,我还可以把你们这帮干扰家伙往上桶一桶。但是我更知道,你们真的也很难。所以我也只能很华为,亮晒各种数据,考勤,作业提交,作业质量等等。主管不支持,有干扰,我就到他的直接主管去吹吹风,说几句坏话,给点压力,全是下三滥的手段,不过还好,我们坚持过来了。还在继续坚持。至少第三点勉强做到了。后面还有2个月,也许还有3个月,我自己也不知道,既然是一次探索,那达到目标时就是终点。(附件是培训课程表,大家可以参考。这个表格在训练过程中修改过很多次,还在修改中,另外python和c++都没有ppt,现场写代码,对于C的讲解,大家课后拿着课堂的代码模仿练习,这好像最高效,1个多小时,大部分人python就入门了,2个多小时,c++类基本就会了,其他的就靠百度自己学习了。)

 

6年前我调到现在岗位,先后做了:

l  雏鹰训练营,针对新员工的基础编码能力,2.5个月,已经坚持到第6年。

l  小虎队,针对MDE的软件设计培训,2个月;

l  AM团队,针对DE的架构培训,一年,主要是自学习。

新员工和优秀MDE,DE这三个训练营都有明显成果,但是部门的MDE软件设计能力,搞了这么多年,收效甚微。写CleanCode代码咋就这么难呢,6年前就在推CleanCode,咋现在还在天天念,到底咋回事,我不甘心,所以主动承担了B部门的软件能力提升工作,有了B部门5个多月的坚持,也是一次尝试,我们还在路途中,期待可以探索出一条路来。

 

软件开发是一门手艺,是一个需要永远都不断学习技术活。靠突击,靠专家,靠流程,靠规范,都不太可能速批量培养出来高手。我们需要尊重客观事实,给大家时间,加上自我驱动,外加高手不断反馈,长期检查,我相信没有人会拒绝成长。

 

 

-------------------------------------------------------------------这是一条美丽的分割线-------------------------------------------------------------------

小面几个问题,是我这6年来无数次被挑战的问题:

1.      软件能力提升了,我们的软件就肯定非常好了么?

答:不完全能,但肯定比现在好。代码功能都要实现,能够写好,不代表会花更多时间,反而会节约很多时间,所以肯定比现在好。但是我不认为绝对好,因为软件总是会变差,需要不断重构,重构需要额外时间,这是个管理问题。

 

2.      分部过去把很多软件高手投入到员工能力提升,无论培训还是实战指导,如果培养对象是新员工,或者DE这种高手,还值得,如果是普通员工,这种投入真的值得么?

答:我认为非常值得,只要他在公司写代码,提升他的能力,效率就提升了,质量也会提升,就是对公司最大的贡献,就是为中国的软件行业做贡献。(这句“为国家多培养一个软件人才”,不是我说的,是我的曾经一位领导说的,我非常敬佩他的格局)

 

3.      员工能力是员工自己的事情,组织层面就不应该过度花成本,偶尔请几个业界大牛过来开开天窗,吸收点宇宙的力量就足够了。

答:我同意员工能力是员工自己的事情,但是现状是大家提升速度太慢,或者部分人就是原地踏步,更有部分群体还在倒退,当前的状态阻碍了高效,高质量交付。如果我们依然把这个问题抛给员工自己,现状得不到改变,那就只能改变我们的思路,无论白猫还是黑猫,只要能够让大家提升能力,提升代码质量,就是好猫,一切以最后的投入收效比来看。

 

4.   员工能力应该通过实战中提升,工作时间久了,能力自然就会提升,不应该有专门的培训。

答:我非常同意员工能力实战中提升能力,但我更同意“一个赛车手只训练一年,肯定远比一个开了10年车的普通人,开车技术强N多倍”,专门的训练,可以让我们发现我们的不足,快速调整,训练材料当然最好来自自己的业务,我完全同意,最好直接用当前项目,直接训战,这是我认为最好的方式,但是千万别全部都押宝真实项目,因为真实项目,有交付时间,交付质量要求。在交付面前,一切都得让道,同学们将很难优化出真正卓越的代码。

 

5.   软件高手就应该全力交付产品,培训组织学习让一个15级员工搞定就行了,别浪费了公司最宝贵的资源。

答:软件高手交付产品作为第一重要的事情,我完全同意。组织活动,让15级来搞,我也完全同意,但是培训的讲师,材料的准备,请让软件高手来做,让最专业的人来培养专业的人,让最专业的人来给大家反馈他们的问题。其实,我还有自己的一个想法,如果我一年下来可以带出5,6个“真正优秀的软件4级5级”,我相信我对公司的贡献应该比重构几万行代码价值要大很多。

可信软件的基础,是人的能力先达标,我们可以选拔更优秀的人进来,但在他们还没有进来前,我们只能快速提前现有员工的整体软件能力,来达到我们的目标。

软件能力提升,拒绝浮躁,欢迎大家讨论拍砖!

posted @ 2021-11-30 17:20  易先讯  阅读(182)  评论(0编辑  收藏  举报