为什么交付中的软件系统非常不稳定?
为什么我无法保证软件系统的交付质量?
为什么软件系统会变得不可维护?
为什么软件系统集成如此臃肿不堪?
我个人经验认为这几乎是由于在前期设计、开发、集成交付、运维开发中过多的技术债务导致的。而解决技术债务的根本方法在于PM与software-architect合作,通过定期的重构来解决。
但是重构是沉默成本,并不被甲方认为是有价值的。并且重构本身需要高超的管理技巧和技术能力。好的PM就像一只牧羊犬,能提前嗅到腐烂代码的味道和位置。腐烂的代码使得框架变得臃肿、溃烂。从而使软件失去可维护性。
软件工程的内部质量标准有:可维护性,灵活性,可移植性,可重用性,可测试性,可理解性 。不符合以上标准都可以称之为代码腐化,形象的理解就是一个苹果,从内部开始烂了,烂到原本应该负责内部代码的程序员拒绝去维护了。
代码腐烂是不可避免的,几乎所有系统都在发生不同程度的代码腐烂。我们能做的只是减缓代码腐烂的速度,让系统能够撑得更久。
而减缓代码腐烂的方法,减缓代码腐烂,其实有好多种办法。但最常见、收益最高、最好落地的两个措施,我个人认为是:技术方案评审、CodeReview。发挥团队内部集体主义的精神,定期清除腐烂的代码。