敏捷的基本概念1.什么是敏捷 敏捷是一种方法、手段、实践或者框架的统称。敏捷方法是一种基于经验型控制方法,先预定义流程之后在实验过程种通过观察不断的调整流程。 2.敏捷有哪些? 敏捷来源于精益,包括scrum、xp、水晶、Scrum Ban、FDD、AUP、DSDM和kanban的交集部分。它们之间的关系如下图所示: 它们之间的同性有:他们都是自组织团队,都采用了迭代开发,增量式交付和持续集成。 传统项目和敏捷项目生命周期的特点常见的生命周期有预测型生命周期又叫瀑布型,迭代型生命周期,增量生命周期,和适应性生命周期,前三个生命周期均为传统型项目的生命周期,适应性生命周期是敏捷的生命周期。 1.预测型生命周期(瀑布) 预测型生命周期是按顺序执行的。以软件开发为例先由专门的需求团队完成需求分析输出需求文档,之后概要设计团队根据需求分析文档来完成概要设计,如果该要设计时发现不清楚的需求想需求部门反馈,需求团队修改后再移交给概要设计团队;之后根据概要设计文档来做详细设计,发现疑问再和概要团队讨论,直到详细设计完成;接下来开发人员根据详细设计来做编码实现,编码结束后交给测试进行测试;测试发现bug反馈给开发人员,开发人员修订后转给测试,测试通过后输出测试报告,交付给部署人员。 很适合用于对需求很明确的项目,需求范围不希望变动,最终一次性交付产品。 2. 迭代型生命周期 迭代型生命周期先根据最初的需求开发出原型,给客户或者业务部门演示原型,发现新的问题或者需求之后再改进,经过多次的循环改进,最后一次性交付产品。 3.增量型生命周期 增量型生命周期是为了加快交付功能,一次只交付一部分新功能,渐进式的增加功能,频繁交付功能。 4.适应型生命周期(敏捷) 敏捷里团队是跨职能团队,包括产品经理,敏捷教练,开发团队,其中开发团队里包括测试人员。产品经理和内部业务负责人,外部的客户,最终用户紧密合作,频繁沟通交流,把需求转化成产品代办项,并且对需求进行优先级排序。 团队开展本次冲刺,从需求池按顺序取出本次要完成的功能放进冲刺列表,每一个冲刺结束是都可以交付一个可工作的软件。而且敏捷型欢迎需求变化,即使项目已经完成。变化的需求将添加到需求池,产品经理重新对产品代办项进行优先级排序,在下一个冲刺中根据从需求池按优先级从上往下顺序取出本次的冲刺代办列表来完成。 敏捷适合在产品需求和范围不明确的项目来通过频繁交付来增量改进。 瀑布型与敏捷型的比较瀑布一次性进行全部详细规划,敏捷先粗略规划,对即将要做的项详细规划;瀑布型一次性交付产品,而敏捷小批量,短周期,增量交付产品;瀑布是专业的团队,而敏捷是自组织,跨职能,集中办公的团队;瀑布型不喜欢变更,而敏捷拥抱变更,即使产品完成时也可以变更;瀑布型的领导是命令式的领导,而敏捷是仆人式领导。 敏捷的好处 敏捷生命周期可以在最短时间交付最大的产品价值,项目彻底的失败风险小,欢迎变化。 瀑布型生命周期长用于对产品需求和范围很明确的项目,它是一种顺序执行的,最终一次性交付产品,只有最后交付了产品后才能有收益,成本高。而敏捷在每个冲刺结束后交付最有价值的功能,率先实现收益,可以通过第一个冲刺交付后的收益来开展下一个冲刺,成本低。 如果瀑布型执行到最后发现行不通失败成本极高,而敏捷在一个冲刺结束后发现行不通可以快速失败,极大地降低失败成本。 软件行业特点随着智能手机的出现,面向个人的应用APP井喷,而且很多个人用户软件APP需求和功能越来越复杂,而且商业竞争非常激烈,往往产品先上市更有优势,于是软件呈现出由于用户群体庞大,用户层次不一致导致需求复杂多变,更希望快速推出产品抢占市场的特点。 结论传统项目管理方法更多应用在传统大项目如军事,建筑等需求明确对安全和稳定要求非常高的项目,而敏捷主要应用在软件行业具有需求不明确范围容易变更的复杂项目。 在软件项目里对于需求和范围明确的项目采用瀑布生命周期和传统项目管理方法,对于前期需求复杂和范围不明确的项目采用敏捷型生命周期和敏捷项目管理方法。
|