当前位置:网站首页>浅谈软件研发的复杂性与效能提升之道
浅谈软件研发的复杂性与效能提升之道
2022-06-27 12:24:00 【InfoQ】
作者简介
01 谈软件研发复杂性的背景

(1)从『农业时代』向『工业时代』进化
(2)研发效能的现状与挑战

02 软件研发复杂性的来源
- 本质复杂性:对应的是软件产品的能力提升,是理想情况下的复杂性下限。
- 随机复杂性:往往带来影响深远的危害,是复杂性中可管控、可优化的的部分。具体包括:
- 短视效应,急功近利、快糙猛地完成交付,留下隐患
- 认知负荷,知识未沉淀,学习理解成本高
- 协同随机性,更多点对点的、准确性难以保障的沟通与协同

以架构腐化为例

代码级技术债务:


架构级技术债务:
- 架构解耦度(decoupling level)度量的是软件系统在多大程度可以被拆分为独立、可替换模块。
- 不稳定接口(unstable interface)度量的是接口共同修改的关联度,识别影响范围过广的架构热点。
-


随机复杂性与研发效能的关系
03 什么是研发效能双流模型?
- 需求价值流
- 需求状态的流转过程,主要关注者是项目经理、产品经理等角色
- 研发工程流
- 软件研发流程中的具体操作和阶段性工作产品,主要关注者是开发工程师、测试工程师、运维工程师等角色。

双流模型的价值
- 提升工程师体验 + 降低随机复杂性
- 当工程师认领开发任务时,不需要离开 IDE 界面通过插件即可领取任务,平台自动完成需求状态流转、分支创建、代码拉取等工作;
- 工程师开发完成并完成本地测试后,提交代码合并请求,平台触发 CI 流水线,自动完成静态代码检查、质量门禁检查、质量测试等等,并更新需求状态。
需求阶段
- Must-to-have:基本需求,质量如果不达标用户会立刻离开,例如手机的通话功能;这一类型的需求往往需要优先排期
- Excited-to-have:实现这类功能的时候满意度增长很快,容易引发口碑传播;可从这一类型中选择成本较低或技术壁垒较高的需求
- Reverse:尽管从模型来看,这一类型需求是最不理想的,但实际上往往是产品的盈利点,例如信息流广告;针对这类需求,需要结合业务阶段判断优先级

个人本地开发和测试阶段
- 高效获取开发环境
- IDE 精准代码提示

- 精准代码填充

- 单元测试的自动生成

- 轻量级的Mock工具

- 更多的实践
边栏推荐
- Mybaitis generator details
- AI for Science: scientific research paradigm, open source platform and industrial form
- It is so simple to remove the payment restrictions on VIP, YuQue and Zhihu in Baidu Library
- application. Configuration information of properties
- [on Nacos] get started quickly
- Self taught ADT and OOP
- 本地可视化工具连接阿里云centOS服务器的redis
- TiDB 6.0:让 TSO 更高效丨TiDB Book Rush
- Minimum editing distance (linear DP writing method)
- Win10彻底永久关闭自动更新的步骤
猜你喜欢

xxl-job学习梳理

Picocli getting started

【粉丝福利】今天给大家介绍一个白捡钱的方法-可转债,本人亲自验证,每年每人能获利1500元

PyCharm汉化

Script defer async mode

Tidb 6.0: making Tso more efficient tidb Book rush

JMeter connection DM8

AI for Science: scientific research paradigm, open source platform and industrial form

一个有趣的网络掩码的实验

Raspberry pie 3b+ learning
随机推荐
log4j.properties的配置详解
想学好C语言,操作符也很重要
Unzip log. GZ file
Thymeleaf的配置
中证500股指期货怎么开户,国内正规的股指期货平台有哪些,在哪里开户最安全?
Configuration of YML
PyQt,PySide-槽函数被执行了两次
Deep understanding of happens before principle
Time management understood after being urged to work at home
Interview shock 60: what will cause MySQL index invalidation?
mysql学习1:安装mysql
Topic38——56. Consolidation interval
Uni app sends request instructions using the escook / request miniprogram plug-in
带你认识图数据库性能和场景测试利器LDBC SNB
hibernate操作oracle数据库 主键自增
[tcapulusdb knowledge base] Introduction to tcapulusdb tcapsvrmgr tool (II)
JMETER连接DM8
让学指针变得更简单(二)
Private dry goods sharing: how to implement platform in Enterprise Architecture
socket阻塞和非阻塞模式