近些年,软件互联网企业开始流行敏捷开发模式。我觉得这种模式的流行有它的必然性。
首先,这个名字是非常诱人的。敏捷是啥意思,上过学的人都知道敏捷就是快,快意味着效率提升,成本降低,老板们终于不用死皮赖脸的强行压工期了,只要让大家敏捷起来就行了。
其次,程序员群体对新鲜事物都是抱有强烈的好奇心的,尤其是国外的大佬们推崇的方法,必须一起跟着摇旗呐喊,以身试法。
其实敏捷开发是有很严苛的先决条件的,最重要的一条就是对团队成员的能力要求很高。换句话说,团队里要都是高手才行。这一条绝大部分团队都达不到。
我总结敏捷开发有这么几个缺点:
1. 不看重文档。相对于传统开发模式来说,敏捷开发不重视文档,项目前期还好,大家的沟通内容都还记得住,随着项目逐渐深入,讨论内容越来越多,就会开始出现混乱。每个人对需求都开始产生了自己的理解,有很多需求和设计是自相矛盾的。因为没有必要的文档和记录,项目后期常常会因为需求问题吵架。
2. 对沟通能力要求高。因为敏捷倡导面对面沟通,所以要求每个人都要有很好的理解能力和表达能力,这点对于程序员来说是非常困难的。实际工作中,真的能听懂别人、并把话说清楚的人不多。
3. 过度依赖个人能力。敏捷开发要求个人能力很强,因为团队规模小、项目周期短,每个人都要能独当一面。另外,因为分析和设计过程都在脑袋里,就算别人想帮忙也很难帮得上。所以在实际工作中,就会出现一堆人等一个人的情况。
通过上面的分析我们知道,敏捷开发对团队的要求是非常高的。以我的经验来看,国内大部分团队是达不到这个要求的。强行采用敏捷开发导致的后果就是,需求满天飞,开发过程混乱,产品缺陷超多,bug改不完,工期一拖再拖等等。
有朋友可能会问,你只是喷敏捷不行,那到底要怎么做才行呢?不用敏捷开发效率就会下降吗?
请大家点赞、关注我后续的文章。谢谢!