找回密码
 注册
关于网站域名变更的通知
查看: 347|回复: 1
打印 上一主题 下一主题

技术规范思考

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-9-15 17:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
在公司里面,一般都会推出各种『技术规范』,包括且不限于『git管理规范』、『开发流程规范』、『设计文档规范』、『代码规范』、『上线规范』、『异常处理规范』、『技术组件使用规范』。规范太多,不厌其繁,真正执行耗费大量的管理成本,甚至会导致开发效率降低,导致很多规范制定了之后,从来都没有人遵守过。
抽出时间思考了一下『技术规范』这个东西,以下总结:
技术规范的目的
1.工程质量
作为团队的leader,需要对整个团队的质量负责。从RD个人的角度来看,出了一次case,绩效会差一点,自己已经为这个问题付出了代价,下次小心一点,事情就结束了。但是从leader的角度来看,代码不是自己写,但是出了问题,需要他来扛。他需要有一些策略,从制度上保证整个团队的工程质量,使出case的概率降低。
2.沟通和维护成本
首先,约定了同一套规范,沟通的时候,就会有统一的背景标准,会降低对于各种问题的无必要的争论。
其次,基于同一套技术规范开发出来的代码,使用同一套基础组件,技术栈类似,RD互相维护对方的服务会容易很多
最后,可以基于同一套流程和规范,进行工具的开发和支持,从而优化流程,减少重复性工作,提升效率
3.技术氛围
各种技术规范也是开发过程中最佳实践的组合。规范本身需要一定的普适性,需要抽象问题。对抽象的规范梳理、讨论、学习、执行的过程,也是团队内部积累沉淀的过程。这个过程会提升大家对技术问题本质的思考和认知。
技术规范的原则
1.规范必须是共识. W, p% r- S- j0 t, ]& X' N2 I
规范必须是大家的共识,每一条规范都需要说清楚原因,并且给大家讲清楚,让大家知其然也知其所以然。知道为什么这样子做比较好之后,执行的意愿会大大加强。而不会有太强的抵触情绪。
2.规范尽可能简单
技术规范一个很大的问题就是很难执行。而很难执行的一个重要原因就是太复杂了。很多技术规范不厌其繁,看完一遍都需要好久,更不用说记忆并且执行。
为了保证尽可能简单,可以把规范分成两类:底线类、倡导类。底线类的规范,从实际执行出发,不遵守很容易出问题,尽可能精简,必须遵守。倡导类,从理想的最佳实践出发,做到会比较有格调,对简单的要求低一些,具体执行靠个人觉悟。
3.执行坚决
对于底线类的规范,必须严格执行。可以与KPI挂钩。若出现case,发现是由于没有遵守规范,会对KPI有更负面的影响。或者定期抽查,若没有遵守则请客吃饭。
4.可修改
规范不是死的,规范也不可能在刚刚制定的时候,就非常完美,需要在执行过程中不断完善。所以需要不断的修改。可以成立一个技术委员会,定期讨论对规范的各种修改。假如组内人数比较少,直接全员讨论就Okay。讨论的过程也更有参与感,又容易达成共识,更容易推行。
讨论可以民主,但是执行比较坚决。修改之前,仍然需要遵守。
技术规范的落地
落地是技术规范最大的软肋。好多技术规范都被束之高阁。如何把技术规范内化到实际的开发流程中?各种review会比较关键。在开发的各个阶段都需要有相应的review来确认是否符合规范。
接到需求的时候,需要有需求评审。设计出方案之后,需要有方案评审。代码写出来之后,需要有code review。出case,有casestudy的review,复盘整个过程。
需求评审,方案评审,casestudy的执行一般都比较清晰。唯有code review由于频繁且耗时,会难以执行。
参考了『Code Review中的几个提示』。简化code review的范围和流程:
1.code review不为了保证代码无bug,无bug应该是代码开发者通过单元测试保证
2.review的步骤:先Review设计实现思路,然后Review设计模式,接着Review成形的骨干代码,最后Review完成的代码,如果程序复杂的话,需要拆成几个单元或模块分别Review。
3.降低review的难度:被review的同学给review的同学讲解代码的思路,极大降低review过程中猜的时间。
4.为每一个服务指定第二负责人。代码编写完成之后,优先由第二负责人来review。这样子既保证了服务维护有备份,也可以降低review的成本。毕竟第二负责人对这项业务是一直跟进,会更熟悉。当然为了收集更多的建议,最好能主动找其他同学来参与review中。
指标
如何衡量技术规范推行的进展的,比较困难。想了几个简单指标:
1.case数量。假如技术规范制定合理,并且得到了有效执行,理论上bug的数量会大幅下降。这个指标的问题是,团队里面的case本身就很少,不好对日常的过程有监督,而且属于事后监督,不能提前预防。
2.code review每千行评价数量。虽然这个数据不一定很严谨,但是能从一个侧面显示review的效果。优势在于,平时开发过程中,就可以有这个数据。可以在问题出现之前就发现问题。
非量化的指标,平时大家讨论技术的问题和氛围,也能感受到技术指标的推进情况。
* d, M' ^" ^! o2 O
总结
技术规范这种务虚又不容易见到实际效果的事情,做好非常不容易。需要反复思考目的,避免被束之高阁,更要避免成为开发的障碍。

1 |$ O: i) ~, }: _/ N; D2 o! k

该用户从未签到

2#
发表于 2020-9-15 17:51 | 只看该作者
技术规范一个很大的问题就是很难执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-25 04:33 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表