当前位置: 主页 > 建站知识 > 软件开发

敏捷软件开发:原则模式和实践-敏捷软件开发 原则模式与实践

发布时间:2023-04-15 22:04   浏览次数:次   作者:佚名

最近读了Bob大叔的《敏捷软件开发:原则、模式与实践》(下简称《敏捷》),有很多感悟,我觉得很多人对敏捷开发有一定的误解。

很多人推崇敏捷开发是因为他们觉得能提高开发速度。我觉得这是不正确的。敏捷开发的敏捷是Agile,这个词的意思是灵活的; 灵巧的; 轻快的; 机敏的; 和速度快没有什么关系。正如很多游戏中Agility和Speed完全是两个属性. 然而国内很多人因为种种利益,将敏捷开发鼓吹成了提高开发速度的神器.作为偷懒,规避文档、需求分析的借口.

正如科学上有许多守恒理论,例如能量守恒,元素守恒。软件开发其实也存在着类似的情况。在提高灵活性的情况下,开发速度应该是降低的。所以我觉得,敏捷开发会减缓开发速度。正如《敏捷》中的例子,为了完成功能,通常要编写大量的测试用例,并且敏捷开发也鼓励高频率的进行单元测试(可笑的是,有很多人将不正经八百的测试说成敏捷开发)。而且为了防止软件僵化,开发者通常需要不断思考敏捷软件开发:原则模式和实践,对已有代码进行调整。这些思考本身就需要花费大量的时间,而每次的调整又需要更多的测试,甚至需要改写测试用例。

诚然,敏捷开发也有提高开发速度的主张,比如放弃使用大而笨重的工具,减少学习工具的成本。但是我觉得和上述原因相比,总体上还是减慢了速度。

然而,我并不反对敏捷开发,我相信敏捷开发可以提升软件的灵活性与质量。但是这种提升大概率是提高开发成本的。想一想一个程序员说自己会把任务完成的又快又好的时候,大部分情况他是在吹牛,不是么。除了时间,另一项开发成本是开发人员的水平。敏捷开发其实有较高的门槛,为了保证灵活性,就需要你有较高的抽象能力;经常需要修改代码敏捷软件开发:原则模式和实践,就需要你有较高的重构能力。

读了《敏捷》后,我深深被这些编程实践所吸引.但是联想到现实,我觉得在现阶段,大部分公司是没有人力物力去完全践行敏捷开发的.比如编写测试用例,可能要花费数倍于功能的编码时间.可能我悲观了,我觉得大部分人只能是吸收敏捷的思想.只要不太"笨重"已经很不容易了.

别再轻易说自己是敏捷开发了.