知识卡片

又快又好:快速软件交付的六个属性

结构图卡 · 2235

内容

敏捷方法能打破”快和好不可兼得”的旧观念,靠的是六个DevOps属性协同发力:开发速率(代码里技术债务少,改动才快)、对正确性的信心(靠代码评审、自动化测试、小增量发布支撑,没信心就会犹豫不敢快)、可重复的部署(尽量100%自动化,人的创造力该花在特性上而非每次部署)、运行时的弹性(能应对流量增长)、来自监控的反馈(尽早发现问题、了解用户真实需求,否则方向不明再快也没用)、运行时环境的安全(频繁部署新特性时尤其重要,避免引入带漏洞的依赖)。六者组合起来,才构成有纪律、快速且敏捷的开发流程——只讲敏捷概念却没做到这六点的团队,本质上还是缺纪律的”快”而非真正的敏捷。

结构图:

flowchart TB
  A["开发速率(少技术债)"]
  B["正确性信心(评审+测试+小增量)"]
  C["部署可重复(接近100%自动化)"]
  D["运行时弹性"]
  E["监控反馈(尽早发现问题)"]
  F["运行时安全"]
  A --> R["有纪律的快速敏捷交付"]
  B --> R
  C --> R
  D --> R
  E --> R
  F --> R

参考来源

- 位置:《架构师应该知道的37件事》第4章《组织》之"4.5 缓慢的混乱并不是有序"·"4.5.3 又快又好"(源文件:_epub-src/OEBPS/Text/chapter004.html) - 结论依据:原文逐条列出"开发速率……信心……部署必须可重复……运行时间必须有弹性……需要从监控中得到反馈……确保运行时环境的安全"六项属性,直接支撑本卡结构图。 - 原始内容:即使网站的构建系统已经有13年历史了,我一样会毫不犹豫地删除所有构建好的构件,然后从头重新构建和部署。