在这敏捷开发横行的时代中,人人都在谈敏捷,人人都在谈迭代,似乎大家好像都尝到了敏捷带来的甜头,记得有一次跟朋友吃饭,说他们现在的项目用敏捷开发,每个迭代都能看到不断完善的产品,非常有成就感,客户的满意度也提升了不少;另一个朋友说,我们用迭代开发,也是这样,而且客户想加什么需求就加什么,直接按照优先级排到迭代周期就行,也不用为改需求而烦躁。当时我就想,敏捷开发不就是分迭代周期的吗,他俩好像说的是一回事吧。回去过了好长一段时间,突然想起这件事了,在网上一查,还真不是一回事…
迭代开发流程:
什么叫迭代开发?在迭代开发中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代,这叫迭代开发。每一次迭代都包括了定义、需求分析、设计、实现与测试。而敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。前者是软件开发的生命周期模型,是一种开发过程;后者是多种软件开发项目管理方法的集合,是一种开发方法。这是两者最根本的区别。与迭代开发对应是瀑布模型,螺旋模型等,而与敏捷开发对应的是Scrum,XP(极限编程),Crystal(水晶编程)等开发方法,所以它俩根本就不是一回事!那么它们俩有没有关系呢?答案是:有…
敏捷-Scrum开发流程:
敏捷开发的定义就已经说明,采用迭代的方法进行软件开发。那么有人会问,敏捷开发为什么要采用迭代开发呢?不要忘了敏捷开发的核心原则是拥抱变化,和递增的变化。迭代式开发正适合在那些需求信息不明确的项目,这样在开发过程中遇到需求的变化时,所带来的影响要比其他模型小。而现在的很多项目中,需求在项目进行中变化的事儿经常见,所以显得迭代式开发的优势更明显一些,这正符合敏捷开发的拥抱变化。而且迭代开发是不要求每一个阶段的任务做的都是最完美的,明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交,然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善,这正符合敏捷开发的递增变化。当然,敏捷开发只是一个总体概念,而迭代式开发只是几乎所有敏捷开发所采用的一个主要的基础实践。敏捷开发除迭代式开发外,还包含了其他许多管理与工程技术实践,如演进式架构设计、敏捷建模、重构、自动回归测试(ART)等等。总而言之,就是敏捷开发与迭代开发是整体与局部的关系,前者就像大家庭,而后者是大家庭中的一员。
敏捷发展历史
敏捷和迭代虽然不一样,但是它们也是分不开的,迭代和敏捷开发方式的结合,既保证了产品的质量又在项目产品的持续改进中具有一定的优势。吸取精华,破其糟粕,只有这样,项目才会达到趋于完美的程度。现在市面上也恰好有一款这样的项目管理工具-华为软件开发云(http://t.cn/RohXAxI),它就很好的把敏捷和迭代完美的融合到一起了,并且还配备代码管理,代码检查,编译构建,部署和发布等一站式的流水线开发流程,大大提高了我们管理和开发人员的工作效率,这也是我们所有IT人,做任何项目都想达到的目标。