Glean 拾遗
最近收录

2 条 · 按时间

09-17

内部质量不是成本:高质量软件反而更便宜

Martin Fowler 反驳了一个常见取舍:花时间打磨软件质量,还是尽快交付功能?他把软件质量拆成用户可感知的 external quality(界面、缺陷)和用户看不见的 internal quality(架构、命名、模块划分)。用户愿意为前者多付钱,却无法判断后者,于是内部质量常被当成可以砍掉的开销。Fowler 的论点是:internal quality 的作用是降低未来每次改动的成本,其成本实为负值。他用累积功能量对时间的伪曲线说明,低内部质量的项目初期推进快,随后 cruft 迅速堆积,改动越来越慢;他访谈的资深开发者表示,劣质代码数周内就会显著拖慢进度。文章也承认顶尖团队同样会产生 cruft,差别在于他们用自动化测试、频繁 refactor 和 continuous integration 把它压住。作者坦承软件产出无法测量,因此结论依赖经验判断而非数据。适合需要向管理层解释重构价值的工程师。

martinfowler.com · 15 min · Code Quality · Refactoring · Software Engineering
09-17

兰尼斯特有债必偿:先分清三种技术债再动手

作者把技术债分成三类:审美债(只犯强迫症,不影响用户和交付速度,交给自动化代码分析就行)、可延期债(范围可控,需要在 sprint 里逐步销账)、毒性债(半成品变成 workaround 磁铁,新功能一层层叠在上面,越拖越大)。毒性债的两个典型来源是缺测试和缺文档:没有集成测试兜底,就不敢对代码动大锤;没有 README 和 runbook,每次复现 bug 都要重新逆向一遍系统,这是有实际美元成本的时间损耗。作者还主张 TODO 注释基本等于永不做,应该把它变成看板上的正式卡片,并给债务故事打标签,让团队能看清新功能与债务的比例。债务列永远不会空,但也不能失控增长。适合一线工程师和技术负责人。

renegadeotter.com · 8 min · Refactoring · Software Engineering · Technical Debt