什么是“可维护性”?

从InfoQ上面看到的一个讨论,国外的牛人在抱怨NHibernate 2.1的“可维护性”太差,改个东西要牵动全身。接着有人回应,说NHibernate 2.1其实很好维护。争论到最后,就变成了对“可维护性”的定义了,毕竟大家各执一词,可能只是因为标准不同。

原文的链接: http://www.infoq.com/cn/news/2009/08/what-is-maintainable

再往下讨论,“可学习性”这个概念也出来了。有人认为,说NHibernate 2.1不好维护的,其实是说“可学习性”不佳,而对熟悉NHibernate 2.1的人来说,NHibernate 2.1还是很好维护的。

我以前也没有仔细考虑过“可维护性”到底是指什么,看到这篇讨论才开始认真考虑这个问题。
我觉得,“可维护性”的定义,是和你站的位置不同而不同的。
对于身处技术团队内部的人来说,“可维护性”的确就是只要熟悉的人能够自如的增删功能就可以了。而对于技术团队上一层的组织而言,恐怕必须提高标准,否则在技术团队人员变动的时候会遇到麻烦。

举个例子说,B是老板,M是项目或者产品经理,P1和P2是技术团队成员。有一天,B招聘了一个新的程序员P3,让他学习项目或者产品技术并据此做出另外一个新的产品。P3抱怨原来的产品“可维护性”差,但是M和P1、P2都说不差,他们修改原产品很容易啊!

站在M和P1、P2的角度,可能确实“可维护性”很好;但是,站在B和P3的角度,就不会这样认为了。

猜你喜欢

转载自jonyzhu.iteye.com/blog/457699