敏捷软件开发的优势是什么?会让初学者少走弯路吗?
本文内容章节:
一、什么是敏捷?
1、敏捷宣言及其由来
1.1 个体和交互胜过过程和文档
1.2 可工作的软件胜过全面的文档
1.3 客户合作胜过合同谈判
1.4 相应变化胜过遵循计划
2、七种敏捷开发方法
2.1 XP(极限编程)
2.2 Scrum(迭代式增量软件开发过程)
2.3 Crystal Methods(水晶方法族)
2.4 FDD (特性驱动开发)
2.5 ASD(自适应软件开发)
2.6 DSDM(动态系统开发方法)
2.7 轻量型RUP
二、为什么要做敏捷?
1、敏捷和传统瀑布的特点和差别
1.1 瀑布开发模式的五大特点
1.2 敏捷开发模式的八大特点
2、敏捷能解决什么问题
2.1 版本发布的时间越来越长;
2.2 无法按时发布;
2.3 在版本发布的最后阶段让软件稳定的时间越来越长;
2.4 在发布期间很难进行改变;
2.5 质量持续恶化。
3、敏捷有哪些优缺点
3.1 敏捷的优点
.......
(备注:后续内容请阅读下周发布的本文下篇)
一、什么是敏捷?
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。
我们要想用好敏捷方式去管理项目就不得不去了解它,其中敏捷宣言就是重中之重。看似简单的四句话却蕴含了一系列的变革与创新。下面,我们就先来聊聊这四句话。
1、敏捷宣言及其由来
在2001年2月11日到13日,17位软件开发领域的领军人物聚集在美国犹他州的滑雪胜地Snowbird雪场。与会者包括XP、Scrum、DSDM、适应性软件开发和其他支持此类方法的方法学代表,它们都需要选择一种方法来替代文档驱动的、重量级的软件开发过程。经过两天的讨论,“Agile”这个词被全体与会者所接受,用以概括一套全新的软件开发价值观。Jim Highsmith认为,大部分敏捷原则都可以归结为“糊状材料”和“流星似的兴趣提升,有时对敏捷方法学的批判就是这种糊状材料蕴含的传统和价值”,这是这样的观点,形成了下面的敏捷宣言:
1.1个体和交互胜过过程和文档
通过第一条宣言的“Individuals”,我们就可以看到敏捷对于人是排在第一位的。这是因为敏捷方法着重强调有能力的、可以自我管理的团队并且是一只有自制能力的团队,而不需要日复一日的管理干预。而管理者要能够保护团队免受外界的干扰,让团队集中精力来消除项目中的各项障碍,让团队具有凝聚力和创造力。
对于团队而言,需要由跨职能的成员组成,在目标明确后做出承诺,自行考虑目标的实现过程,实现自组织和自管理。着重解决“How”的问题。对于管理者而言,则需要确立项目的目标,把过程的管理交付于团队,有团队成员自行解决。
在整个过程中,需要面对面的沟通,而不通过文档描述,着重解决“What”和“Why”的问题。
敏捷项目团队的成员能够彼此进行必要的协作,他们作为一个团队创建系统,而不像一群接力比赛的运动员那样按照顺序的过程创建系统。他们运用自身所学,同时集体的知识也得到了积累。最终,引起设计、质量和生产率都得到提高。
1.2可工作的软件胜过全面的文档
通过之前的文章提到过,敏捷是以价值来驱动工作的,那么可工作的软件就是我们的价值体现,在实现过程中的设计、编写的代码在不以软件形式让用户使用的话,那么它们就是一推假设而且还是没有价值的假设。这样的观点在传统项目管理上通过完成百分比来度量进度是截然不同的,考察可工作的软件让我们能够对项目的真实状态做出合适的响应。所有东西都是可见的,能够基于现有的产品做出决策,而不是只依据有关的文档形式的材料。
事实上,团队成员认为有些文档工作是不经济的。那是因为,通过文档来描述需求等问题,会造成信息夹杂噪音,使传递的信息失真,所以更愿意用基于可工作的产品来进行面对面的沟通和反馈。
1.3客户合作胜过合同谈判
从传统意义上来讲,合同识别和定义了客户想要的所有东西,规定了金额和完成日期。但对于软件项目来说,由于需求的不固定导致了我们往往会制造出无法满足客户要求的产品,因为我们往往做一些没有意义的工作,仅仅因为出于遵守合同的名义。用固定的方式去固定不稳定的假设,这本身就就充满矛盾。
客户合作意味着客户已经成为开发过程中的组成部分。敏捷项目团队重视客户能够学会如何让客户做出业务决策。反过来,客户也依赖项目团队提供的重要的技术信息来做出合适的决策。有时客户在没有看到东西之前并不知道自己想要的是什么。
1.4相应变化胜过遵循计划
在计划驱动的环境中,所有需求都是被现实规定的,成本和完成日期是根据这些颗粒较细的任务通过自下而上的计算得到的。因此,严格根据计划执行任务、控制范围蔓延在计划驱动的项目中非常重要,因为只有这样才能限制或消除成本超支或进度拖延。事实上,敏捷项目团队是非常训练有素的,并且专注于制定计划和在访问这些计划。敏捷方法中的计划更遵循波浪起伏式的方法,采用自上而下的策略。
左边的价值高于右边的价值但别忘了:
在考虑敏捷宣言的最后一条价值陈述时,重要的是强调价值陈述左边的条款,如果需要的话,在右边条款确实能够带来价值的情况下在强调右边的条款。这里只是考虑左边的价值大过右边的价值,但不代表右边没有价值。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。