4/12/2022
阅读约需
3
分钟
软件工程分析
提效增速
质量改进

软件工程分析如何助力下一个十年

任晶磊
思码逸CEO

未来十年的软件研发将会是怎样的?

阅读本文你将获得:

1、未来十年程序员工作方式演变趋势

2、深度理解软件工程分析的概念,了解软件工程分析体系三个应用维度

3、落地软件工程分析提升团队效能案例分析

前言:这篇文章摘录自思码逸创始人任晶磊的分享,演讲主题是在全球软件质量&效能大会QEcon 《未来十年的软件研发将会是怎样的》

未来十年程序员工作方式演变趋势

或许我们未来可以享受更智能的编程方式——代码补全、代码提示、甚至是自动化的编程;或许我们能摆脱996 ICU这种通过工作时长来度量工作的落后管理方式;或许我们不再花2个小时的通勤只是为了到达办公的写字楼,可以选择自己喜欢的地方写代码,同时享受高效的远程办公。  

我们也希望投入了上万亿元的新基建能够带给整个行业新的历史机会,作为软件的从业者的我们能够高质高效地做好新基建,创造更大的价值,每个人都能走上人生的巅峰。  

这一系列愿景的背后都离不开更加强大、智能的软件工程分析。

软件工程分析体系三个应用维度

那么软件工程分析到底是什么呢?一个非常简单的例子:在14年到16年前后,在Facebook的朋友告诉我,他们有一些团队经理业绩的25%到50%取决于这个团队在这个季度贡献了多少的代码。用代码行数这样简单粗暴的指标去部分度量团队表现,可能是软件工程分析较为“原始”的应用之一。

确切来说,软件工程分析就是用算法和模型去追溯分析软件开发过程,挖掘出有价值的信息和功能,提供给开发者和开发团队。  

实际上,除了代码行数这种极简单的分析,软件工程分析能做的还有很多。如下图所示,我们总结出软件工程的分析体系横向可分为研发质量、研发效能、组织人才三个应用维度,而分析深度与智能化程度由统计分析-程序分析-智能分析逐层递进。

(1)从分析深度来看,最简单的是做一些数值层面的统计分析:

  • 质量维度:经典的千行Bug率指标;
  • 效率维度:有代码行数、Issue开关时间、生命周期等指标;
  • 人才维度:程序员们上报工时,计算活跃时间、故事点用时等。

(2)进一步,我们可以引进程序分析能力,通过程序、算法和模型去理解程序,这能够加深我们对软件工程的理解力,使洞察更加深入:

  • 质量维度:用静态扫描工具去发现代码问题,发现软件架构上的缺陷
  • 效率维度:了解代码复杂度、代码之间的依赖关系,从而比代码行数更加精准地度量代码影响力,反映团队产出
  • 人才维度:细致分析每个人的技术栈,为每个技术人才绘制能力画像,帮助团队深入盘点人才。

(3)未来,软件工程分析还会引入AI、大数据等更强的技术能力,进而成为软件研发团队与个人开发者的智能助手与辅助大脑:

  • 质量维度:提供实时的代码修复建议或具备自动修复能力;
  • 效率维度:帮助研发管理者合理制定计划,也在开发过程中为开发者适时提供辅助,减少手动查询的时间;
  • 人才维度:通过智能分析获取开发者技术栈评估,从而提供人与项目合理匹配的建议。

如何落地软件工程分析提升团队效能

以上这些分析能力如何落地为研发团队的实际提升?和大量研发团队的交流后,我们提炼出了一些困扰着大家的“灵魂拷问”。在研发已经高度数字化,有大量数据留存的有利基础上,软件工程分析能够整合这些数据,提供一个直观、客观、量化的透视软件研发过程及成果的视角,这个视角也许不能涵盖研发的方方面面,但依然为以下问题提供了重要的抓手。

举一个具体实例:当我们自己的团队在回顾研发效率时,会使用产品内的一个叫“代码当量”的指标,它是对程序员产出量更合理的估计,排除了代码行数指标难以避免的很多干扰。在绝对值的变化速率之外,我们也会查看这个指标的波动性,了解团队研发进度是否平稳。

除了盯着自己的指标,我们也会去横向对比团队在软件研发行业里面处于怎么样的水平,跟行业里比较先进的团队之间有什么差距,哪些部分是亟需改善的。

当我们在展望软件工程分析如何助力软件研发的下一个十年时,它已经落地进入多个行业的标杆企业,它正在影响我们敲下的每一行代码。

未来从此刻开始了。

任晶磊在QEcon大会进行分享

与同行交流效能提升经验
扫码加入研发效能交流群
与同行交流效能提升经验
扫码加入研发效能交流群
立即预约
在线客服
在线客服
扫码添加咨询微信
立即试用
用数据驱动
研发质效提升!
预约思码逸效能专家,一起探讨如何提升研发效能!
立即试用