Martin Fowler:开发高质量的软件要付出什么样的代价?

Martin Fowler:开发高质量的软件要付出什么样的代价?

技术债务是 Cruft 的一个常见的比喻。添加功能的额外成本就跟支付利息一样。清理 Cruft 就像偿还本金一样。虽然这一比喻很有用,但它确实鼓励许多人相信,与实际情况相比,Cruft 更容易测量和控制。

我的改变也会影响到未来。我可能找到了一个快速加入这个功能的方法,但这与程序的模块化结构背道而驰,如此一来这就增加了 Cruft。如果我选择这条路的话,那么我今天就可以让它加快速度,但在未来的几周或几个月里,我会让其他所有必须处理这段代码的人都放慢速度。一旦团队中的其他成员做出相同的决定,一个易于修改的应用程序就会快速累积到每个微小的更改都要花费数周时间的地步。

05  客户确实关心新功能的快速发展

这里我们看到了内部质量对用户和客户很重要的线索。更好的内部质量使得添加新功能变得更容易,因此开发速度更快,售价也更便宜。Rebecca 和我各自编写的应用程序现在可能有同样功能,但在接下来的几个月里,Rebeca 由于她编写的程序内部质量之高,得以能够做到每周添加新功能;而我却被卡住了,一直在努力突破瓶颈,就为了推出一个新功能。我无法与 Rebecca 的开发速度竞争,很快,她的软件就比我的软件功能强大得多,然后我所有的客户都卸载了我的应用程序,转而购买 Rebecca 的应用程序,即使她提高售价也在所不惜。

Martin Fowler:开发高质量的软件要付出什么样的代价?

这就是槽糕的内部质量所造成的后果。最初进展很快,但随着时间的推移,添加新功能变得越来越困难。即使进行很小的更改也需要程序员理解大量的代码,而这些代码很难理解。当他们进行更改时,会发生意想不到的破坏,导致测试时间过长以及出现需要修复的缺陷。

而专注于提高内部质量就是为了减少生产率的下降。事实上,有些产品会产生相反的效果,开发人员可以通过利用先前的工作轻松构建新的功能,从而加快开发速度。但这种令人愉悦的情况很罕见,因为它需要一支技术娴熟、训练有素的团队才能实现这一目标。但我们偶尔也会看到这一情况。

Martin Fowler:开发高质量的软件要付出什么样的代价?

你与世界

只差一个

公众号

来源:hzbooks

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月3日
下一篇 2019年6月4日

相关推荐