敏捷不是银弹(一)——什么是敏捷

什么是敏捷?

敏捷是指在动荡的业务环境中,适应变化并创造变化,从而获得价值的一种能力。

什么是敏捷软件开发?

敏捷软件开发又称敏捷开发,是一种应对快速变化的需求的一种软件开发能力,它强调在项目的整个生命周期中,拥抱并促进由于软件进化式的发展所带来的变化。

 

敏捷自诞生10年以来,经历了三个发展阶段:以极限编程为主导的编程技巧、以scrum为代表的流程改进、还有以持续集成和持续交付为代表的管理思维和模式的创新。ThoughtWorks公司创始人Roy Singham认为,中国敏捷发展的特点在于,它跳过了第一个阶段,直接开始于第二个阶段。这意味着,在中国的很多企业中,当大家都在聚焦如何通过流程改进来实现“敏捷”的时候,基本的敏捷编程实践却被大家所忽视了。

Roy的观点来看,我认为这可能就是有一些软件企业,它们想做敏捷,却做得不是那么好的症结所在:没有抓到敏捷思想的本质。敏捷思想的根本是以人为本,而不是以流程为本。在敏捷软件开发宣言中,敏捷联盟提到了“个体和交互胜过过程和工具”这样的观点,这里面就说明了基本的敏捷编程实践的重要性。实际上,一堆不懂敏捷的个体照搬敏捷流程做事情,这并不是敏捷,一堆懂敏捷的人自适应地去做事情,这才是敏捷。在一些“使用”了敏捷软件开发的中国软件企业中,恐怕恰恰是前者的情况居多。

于是这里也就说明了,对于想要实施敏捷的团队来讲,让每一个成员都了解敏捷软件开发,是多么的重要。

 

敏捷产生的原因,是为了解决诸如“瀑布模型”、CMMI等传统软件研发流程模型所存在的问题。什么问题呢?就是无法有效地变化,或者应对变化的成本很高。传统的研发模式会存在反馈过慢的问题:一个软件往往要花很长的周期才能完成,而当完成的时候,我们才会发现,有些地方与客户的实际预期不符;或者在软件研发的过程中,市场已经发生了变化,做出来的软件已经不能适应于最新的市场了。这个时候,为了快速适应变化,敏捷就派上了用场。

据专业人士统计,没有任何一个软件的需求改动少于三次,好的软件一定会带来更多的需求改动。也就是说,需求改动是一种正向的推动作用,它会促进软件的进步。这也就应验了那句话,“唯一不变的就是变化”。

敏捷采取的是小步迭代的研发模式,先交付一个可用的原型,然后不断完善。这减少了整个产品研发周期中不透明的片段,降低了不可见的风险,同时又可以在过程中快速响应变化。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值