代码赌场:巧用互联网思维落地公司代码质量文化

Posted 百度敏捷教练

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码赌场:巧用互联网思维落地公司代码质量文化相关的知识,希望对你有一定的参考价值。

引子:度教授的困惑

度教授是一位开发团队负责人,最近深深感受到随着业务快速发展,团队人员更新太快,代码质量问题日益突出。新人成长慢,知识传承断档,代码质量参差不齐,成了压在度教授心头的三座大山。代码质量已经强调了无数次,代码评审也强制执行了一段时间,可每次上线还是很苦逼,而且代码评审已经完全沦为形式主义。整风运动短期效果明显,长期而言还要依赖于开发人员的落地执行。单纯的外在驱动已进入死胡同,那内驱力到底在哪里呢?

互联网正在对各行各业产生深刻的影响,从纸媒到电商和金融,无一例外的在互联网大潮之下获得了新生。互联网已经不仅仅是一种技术,一种产业,更是一种思想,一种价值观。互联网思维强调用户思维,简约思维,极致思维,迭代思维,流量思维,社会化思维,娱乐化思维,大数据思维,平台思维和跨界思维。

这之前在高管直通车活动中听某高管谈到互联网的3G盈利模式(Girl, Game, Gamble),度教授当时很受启发:公司一直在推动代码文化的落地,就代码评审而言,这项工程实践的好处,大家几乎没有争议,可在落地执行过程中成效并不明显。如何让大家更重视工程代码质量,能像玩游戏一样地投入其中?能否有一种方式让大家进行一场激动人心的RD代码狂欢呢?

201312月,度教授与一位敏捷教练参加了敏捷之旅的北京活动,听到了京东和阿里的同学在玩一种叫代码赌场的活动,度教授立即眼前一亮,这不就是我们正在一直在苦苦寻找的吗?度教授回来后,立即着手策划此事:

  • 我们CR搞了一段时间了,感觉不错,想不想拉出去练练,跟兄弟团队切磋一下?

  • 团队新同学很多吧?提高能力是不是很痛苦?有个更快一些的办法,要不要试试?

  • 喊了好久提升代码质量,一直成效不明显,有个办法,让大家可以很主动的去做,要不要试试?

  • 有个提升代码质量和团队工程能力的方法,很多团队都搞过,玩的很high,是不是感兴趣?

度教授与同学们沟通后,马上得到同学们的响应,纷纷表示愿意参战,度教授满意地笑了。

代码赌场:一切从玩家出发

提升代码质量的主体是工程师,而百度工程师是一群崇尚技术,好奇心强,自尊心强,集体荣誉感爆棚的一群人。在互联网业务讲究得用户者得天下,我们的代码质量改进也一样需要先虏获工程师的心,才能落地实施,遍地开花。代码赌场活动正是这样一种活动方式,注重营造工程师切磋代码技艺的氛围,激发起工程师关注代码质量的热情,创造引发大众积极围观体验娱乐的平台,好玩有趣、独具匠心、具有互联网的简约化,社会化,娱乐化,平台化等思维……

活动规则

比赛前

  • 确定参赛队伍:一般为彼此业务相对熟悉或类似,开发语言一致的两支队伍,每组4位队员(包含队长1名)。

  • 确定裁判:邀请3名具有一定影响力并经验丰富的其他产品线开发人员担任裁判,裁判不可投注和参与比赛。

  • 确定主持人:第三方人员,可以是敏捷教练或其他部门了解规则的人员,组织整个比赛过程和活动安排,比赛时控制场面和时间。

  • 确定代码PK重点:一般为逻辑设计,代码架构,可扩展性,模块划分,可读写等方面的内容优缺点

  • 确定比赛奖金:奖金一般比赛队伍自己筹集准备好拜师费,金额双方团队协商确定;或邀请产品经理,开发经理,测试经理等赞助提供;

  • 确定比赛代码:比赛代码在提前5天发出比赛代码(1000~2000行),双方代码一旦确认不可更改

  • 参赛材料准备:双方在5天内完成线下代码评审和比赛的PPT材料,提前1天发给裁判和主持人。

  • 外围观众投注:在比赛邀请发出后,主持人即可发起观众投注,押注金额最少5元,不设上限。除裁判以外的所有人员(包含比赛成员)均可下注,下注只能选择其中的1个团队,收到现金投注成功,一旦投注,比赛过程中不能更改,比赛开始后不可再投注。

比赛进行

主持人进行控制,一般分为以下几个过程:

开场:介绍比赛队伍,裁判,比赛规则,比赛奖金,押注人员和押注奖金池等,5分钟

比赛

比赛分为4个回合,100分钟左右,每个环节25分钟(两队各自阐述6分钟,观众互动各3分钟,裁判打分点评5分钟(每个裁判1分钟左右),四个环节的最高得分和时间安排可以根据情况做适当调整:

  • 自惭:最高2

  • 互捧:最高5

  • 自夸:最高2

  • 互踩:最高5

裁判打分时需考虑的几个点:

  • 评审问题数目(逻辑设计,扩展性、模块划分、可读性等方面)

  • 评审问题深度,能否帮助提供更好的解决思路或建设性的参考方案

  • 参赛态度:双方是否就事论事,互相学习,礼貌表达等

结尾:主持人宣布比赛结果,宣布投押赢者的收益率;给裁判颁发礼物,感谢并宣布活动结束。

比赛后

拜师费分配:

  • 获胜方需要在规定的时间内将发现的代码问题修改掉,才可以获得奖金;

  • 如果获胜方没有按时修改完,而获败方按时修改完,获败方获得奖金;

  • 如果双方都没有按时修复完成,奖金归还提供方或留着下次使用。

观众投注奖金分红:

  • 按投注比例将下注总奖金分配给押赢者,押输者下注金清0

  • 若平局,押注基金归还所有参与人员。

活动回顾:

  • 比赛后可邀请参赛队伍和裁判对本次活动的进行回顾总结,大家分享对此次活动的感受心得,评估本次活动的效果,对下次活动安排提供优化建议等。

活动特点分析

代码赌场活动,在营造良好的代码文化,有效提升团队整体工程能力并建立积极学习氛围方面都表现出了不同以往的良好效果,其四大特色护持下的成功也说明了赌场活动这种形式获得了大家的普遍认可:

创新、个性的活动组织形式

代码赌场活动,创新性地应用了赌场的概念,这种独具匠心又富有个性的组织形式不仅趣味十足而且一针见血地刺中现在年轻人的兴趣点,所以,一经宣布便迅速勾起大家的好奇心,从而赢得了广泛的关注,为后续工作的开展打下了夯实的基础。

新颖、有趣的活动规则

代码赌场规则取消了单纯的奖励排名,而加入了拜师费的概念,即输的队要支付获胜队一定金额的拜师费。拜师费的命名就从心理上调动了参赛队的积极性,从而激发了他们不服输的昂扬斗志。而且,在外围赌徒投注环节则有如下规定:大家每次投注设置下限,不设上限,且只能押宝一队,每轮结束后投获胜方的赌徒们,按投注比例,瓜分获败方投注。这样,在每个环节下都会有一轮胜负,一个小高潮,使整场活动中,参与者都高度集中,关注比赛,投身比赛,现场起伏跌宕,高潮迭起,这也为活动的成功提供了保障。

广泛、丰富的活动内容

代码赌场活动不仅在形式上大胆创新,在内容上也全力开拓。首先,比赛环节一环扣一环,参赛队依次通过自残、互捧、自夸、互踩四个环节来完成比赛。丰富的活动内容,增加了参赛选手的互动性。另外,与以往活动中观众只是单纯听讲或观看不同,此次活动同样增加的外围赌徒投注环节,让每个成员都参与到了活动中,这就从根本上打破了过去普通宣讲模式下员工被动接收的局面,大大提高了大家的积极性与参与度。

高效、突出的活动效果

代码赌场活动旨在营造良好的代码文化,有效提升团队整体工程能力并建立积极学习氛围,也是对新形势下活动创新的一次大胆尝试。大家不仅于紧张刺激中体验了一把像玩游戏一样工作的惬意,而且通过代码赌场挑出来的问题远超出以前单纯自我宣讲式的代码量,通过这个活动不仅使代码中的问题得到了快速修整,而且更大意义上改变了开发人员的编码态度,引导大家对代码文化的认知,养成对代码精益求精的探索与追求精神。

逐步优化,平台为王

百度一直将工程师文化、代码文化建设作为工作重点之一。然而要想不断提升大家的工程代码质量意识,将提升代码质量的工程活动践行到位并不是一蹴而就的。就代码评审而言,一些团队在开发中忙于编码,虽然也有代码评审阶段,但大都浮于表面,流于形式,效果不佳。我们一直在探索如何让大家更重视工程代码质量,如何像玩游戏一样将代码评审活动落到实处?或者像玩游戏一样让大家沉浸其中?代码赌场就是我们的一项探索性试验。

从实践中来,到实践中去。随着代码赌场活动的逐步推广,我们一边总结经验一边学习教训,使用迭代思维逐步提高完善。一边搭台一边唱戏,希望代码赌场成为百度工程师交流学习的一个平台,既可以互相切磋,又可以互相学习。通过台上的活动逐步影响工程师日常的开发习惯,将质量意识逐步深入人心。

附:活动组织小贴士

  • 会前提前和团队明确规则(包括主要关注哪些方面的问题,不同类型的问题如何界定严重等级、评委打分规则等),实施过程中不能改变规则。

  • 除了比赛的队员,其他参加的人员如感兴趣也可以拿到PPT和代码,否则评审会上两队人员讲的太快,其他人员可能会跟不上、不能提出有价值的问题。

  • 裁判人数要在3人以上,由资历较深的技术专家担任。每轮比赛结束后,裁判先匿名投票,然后再给出相应的深度点评,过程中避免评委间互相干扰。

  • 确保问题挖掘的深度,不能太偏重于代码风格(如空格、注释、初始化)。每个程序员在把自己的代码提交团队Review的时候,代码就应该是符合规范的,不应该交由团队来完成,否则只会浪费大家的时间。主持人在会上应该引导团队重点关注如何写清晰的代码,代码的设计如何做的更好,比如同步和异步的问题,代码如何复用,关注点分离等。

  • 对一个团队的代码,另一个团队在评价时,在点出问题之后,也可以说明如果他们写的话,会怎样写,给出一些参考方案,促进大家在过程中的相互交流。

  • 每次会议前,提前为各个环节设定限时,会议中主持人提醒大家控制好时间,提高会议效率。有些话题如果受限于会议时间,无法深度PK的话,主持人应该记录下这些问题,会后部分人员再深入讨论

  • 审核的代码量要适当,现场审核200-400行代码即可,提前准备的话可以适当增加到1000~2000行。

  • 会议结束后,明确代码修复的时间并确认缺陷最终得到了修复。

--------------------------------------------------------------

微信公众账号:百度敏捷教练

分享和发布百度内部精益实践,敏捷改进,研发效率,项目管理,工程文化等相关案例和实践经验。

以上是关于代码赌场:巧用互联网思维落地公司代码质量文化的主要内容,如果未能解决你的问题,请参考以下文章

关于shopee的文化冲突

关于shopee的文化冲突

从业者生存质量报告之,教育行业里的IT男

DevOps落地之五大基础保障体系建设

NFT商业落地中的思考:区块链

实践总结:云原生技术与大数据技术在企业的体系性落地