DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师。

官方网站:devui.design

Ng组件库:ng-devui(欢迎Star)

官方交流:添加DevUI小助手(devui-official)

DevUIHelper插件:DevUIHelper-LSP(欢迎Star)

引言

当你的能力足够,并且获得领导的信任之后,很自然地就会去承担更大、更重要的责任,比如成为大中型业务的Owner。

大中型业务指的是该业务足够大,足够复杂,仅凭一己之力无法按要求交付版本,需要团队协作。

我们假设该业务一共12个人,其中角色分布如下(按产品研发流程排序):

角色 职责 成员数
产品经理 对接用户,是需求的来源 1
项目经理 管理项目进度,有节奏地进行版本交付 1
设计 负责UI交互和视觉,是用户体验的设计者 1
前端 前端用户界面和交互效果开发 3
后台 后台数据存储和接口开发 4
测试 负责版本质量 1
运维 负责现网部署 1

如果你被分到该业务,成为前端Owner,你可能需要做些什么,以高效率、高质量地实现版本交付呢?

1 明确目标和职责

首先要了解组织和领导对你的期望,假设组织希望你能够改善该业务的交付质量,赢得用户口碑。

目标非常明确,就是提升交付质量,这个目标将牵引你未来一年的方向和行为,也是你超预期完成目标的前提。

有了目标之后,我们还需要去衡量它,这样才知道有没有提升,尽量寻找可以量化的指标。

这一块可以参考我们以前的文章:《如何度量前端项目研发效率与质量》

2 交付质量的组成

质量代表的是好不好,问题越少就越好。

从产品侧来看,缺陷率JS错误率都是非常不错的衡量指标。

从开发侧来看也有很多很好的衡量指标,比如:

  • 重复率
  • 圈复杂度
  • ESLint问题数
  • 巨石文件/方法数

3 计算缺陷率

缺陷率=缺陷数/代码规模

缺陷也就是BUG,当我们开发完产品特性后,需要部署到测试环境,并提测,测试人员测试完,会提一堆BUG单,这些BUG的数量就是缺陷数。

代码规模可以用代码行数来表示,一般源码都放在工程根目录下的src目录中,可以使用cloc工具统计代码行数:

cloc src

如果要排除里面的某些目录,比如__tests__,可以加上--exclude-dir参数

cloc src --exclude-dir=__tests__

比如html2canvas库的代码行数:

有了缺陷数和代码规模,就可以计算缺陷率啦。

可以先统计下历史迭代的缺陷率,缺陷数可以通过查看测试报告获得,该版本增加的代码行数可以通过Git提交记录获得。

比如上一个迭代1.2.6,从2020.12.14-2020.12.25

我们可以使用以下命令统计到新增的代码行数:


git log --after="2020-12-14 00:00:00" --before="2020-12-25 23:59:59" --pretty=tformat: --numstat | grep -v 'static' | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加行数:%s 删除行数:%s 变化总行数:%s\n",add,subs,loc }'

还是以html2canvas举栗子

立完flag,你可能需要对flag进行量化相关推荐

  1. python flag 参数_flag_flagpython_js开关flag - 云+社区 - 腾讯云

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! apple.stackexchange.comquestions336888wh ...

  2. 和flag_不怕立Flag,就怕没有Flag

    转眼间就已经是今年的最后一天了,回想去年给自己立下的flag,看着自己手机上的减肥计划和体测成绩上的超重,我陷入了沉思,到底是哪个环节出问题了呢? 我慢悠悠地在宿舍里转圈,看见舍友递过来的薯片,&qu ...

  3. java break flag_Java break [flag]; 与continue [flag]; 区别

    break [flag]; 直接结束掉到标记(flag)层的循环 NO1:for(int i=0; i<100; i++){ for(int j=0; j<10; j++){ sum = ...

  4. html flag属性,html5 的flag是什么意思?

    Html是英文HyperTextMarkupLanguage的缩写,中文意思是"超文本标志语言",用它编写的文件(文档)的扩展名是.html或.htm,它们是可供浏览器解释浏览的文 ...

  5. flog和flag_新年要想立flag不倒,你需要知道这些!

    挥别魔幻的2020,拥抱2021,如果说对各位"打工人"而言开年第一件事是什么,那一定是打开日历,制定计划,继续立上去年没完成的Flag. 刚交完年终总结,你一定和小优一样在苦恼个 ...

  6. c语言中fiag的作用,flag是什么意思C语言,给自己立flag是什么梗!

    现今的网络用语实在太多,很多我们都不知道是什么意思,小编问大家知道flag是什么意思吗?flag是什么梗吗?一起来看看. 很多人经常会说,我今天不小心立了一个flag,感觉自己真的是乌鸦嘴啊!或者说f ...

  7. c语言立flag什么意思,立flag是什么意思?立flag是下决心吗(代表不详的信号)

    解答:立flag是网络上比较流行的语言,主要指的是当说出一句很激励人心的话,但是结果和预想完全不同,立flag也暗含被打脸的意思,也可以说这个人有些乌鸦嘴说什么都不成.立flag具体有哪些意思以及fl ...

  8. Go 学习笔记(45)— Go 标准库之 flag(命令行参数解析)

    1. 参数解析说明 import "flag" flag 包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个 set 集合.每条都有各自的状态参数. 使用 f ...

  9. : error c2062: 意外的类型“int”_Go 命令行解析 flag 包之扩展新类型

    上篇文章 说到,除布尔类型 Flag,flag 支持的还有整型(int.int64.uint.uint64).浮点型(float64).字符串(string)和时长(duration). flag 内 ...

最新文章

  1. Java多线程开发之------多线程等待
  2. Python 使用readability 提取网页标题
  3. filter2D函数
  4. 【控制】《现代控制理论》谢克明老师-第2章-线性控制系统状态空间表达式的求解
  5. 研究阿里钉钉近三年,我们总结了10大企业级产品的营销套路
  6. 【已解决】ReferenceError: $ is not defined
  7. 有关[Http持久连接]的一切,卷给你看
  8. C#值类型和引用类型的不同
  9. 机器学习中的数学(二)--梯度下降法
  10. 【java基础知识】JDK环境下载安装过程(windows环境/Linux环境)+IDEA配置
  11. python a or b 输出值为_深入分析python的and or 返回值
  12. nrm —— 快速切换 NPM 源
  13. LINUX 版本信息查看(全)
  14. Rust :rustup的版本更新功能
  15. 艾宾浩斯30天计划表_干货丨艾宾浩斯遗忘曲线
  16. java 二维向量_二维向量的叉积是标量还是向量?
  17. 网课答案公众号查询方法
  18. 面试被问到【未来3-5年的职业规划】,到底该怎么回答?
  19. python初步判断车牌
  20. Gitee+Typora+PicGo+脚本

热门文章

  1. 无锁编程与有锁编程的效率总结、无锁队列的实现(c语言)
  2. Wannacry病毒分析
  3. IDEA启动Weblogic项目时弹出CMD窗口提示:已使用基本服务器安全策略安装了Security Manager
  4. 【Error Logs】YoloV5出现RuntimeError: result type Float can‘t be cast to the desired output
  5. IOCTL命令格式解析以及调用过程
  6. AliceBobGame-2021年东北大学算法题目详解
  7. 【深度首发】畅圣科技毛骏:寻找打通银行和保险业数据的完美入口丨Xtecher 封面
  8. AVPlayer的使用
  9. 百度UE-第一篇(ue的显示)
  10. JQuery切换显示的效果,一句话搞定