dongye95

一、敏捷开发

  软件市场发展越来越迅速和成熟,传统瀑布式开发模式存在一定的限制,敏捷从而有了更广阔的的平台与机遇。Scrum作为在敏捷中使用最常用的一种方案,受到众多的关注。

1.1、为什么使用敏捷方法

  敏捷管理是相对于传统的瀑布模型提出的,传统的瀑布开发模式是这样的:

 

  瀑布开发模式的项目周期往往比较长,一般为3-6个月,甚至更长时间,当项目开发完成后,最后交付成果往往不是产品经理或是客户真正想要的,最后只能重新从项目的需求开始,经过一系列的建设、测试、部署等过程,那样的话,项目周期就会更长,然而又需要尽快投入市场,最后只能是稍微改动一下,差不多接近项目需求就行。

  使用瀑布开发模式很容易出现这样的结果,开发周期很长,不可控的因素和风险很大,最终会偏离最初想法。

  而敏捷开发流程是这样的:

  每一个迭代的开发周期很短,一般为1-4周,它将瀑布开发过程切分为多个短的迭代式的增量开发过程。每一个迭代结束,都会产生最终可用的产品,如果需求有变化,可以在下一个迭代周期进行开发,基本不会出现最终交付产品是用户无法接受的,即使要浪费时间的话,最多就是一个迭代周期的时间。

定义:

  敏捷开发(Agile Development)不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。

理解:

  首先,敏捷并不是一门具体的技术,而是一种理念或者说是一种思想。它可以指导我们更加高效的开发。

其次,敏捷开发都具有以下共同的特征:
    1.    迭代式开发

    2.    增量交付

    3.    开发团队和用户反馈推动产品开发

    4.    持续集成

    5.    开发团队自我管理

最后,相比于“传统”的瀑布开发模式,敏捷开发是一种“现代”的开发模式。

具体方式:

  上面说了敏捷是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而具体的开发方式有哪些呢?

  Scrum,极限编程(XP),精益软件开发(Lean Software Development),动态系统开发方法(DSDM),特征驱动开发(Feature Driver Development),水晶开发(Crystal Clear)等等。

  除了Scrum和XP,对于上面的其他开发方式,我也只是简单了解,大家可以多查查相关的资料。

  我们可以简单的对比一下Scrum和XP: 
1. 在开发的过程中,你可以采用Scrum方式也可以采用XP方式; 
2. Scrum和XP的区别是,Scrum偏重于过程,XP则偏重于实践,但是实际中,两者是结合一起应用的。

敏捷宣言:

  我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工作,我们形成了如下价值观:

  1. 个体与交互 重于 过程和工具
  2. 可用的软件 重于 完备的文档
  3. 客户协作 重于 合同谈判
  4. 响应变化 重于 遵循计划

在每对比对中,后者并非全无价值,但我们更看重前者

敏捷开发的12准则:

在敏捷开发中,我们遵循以下准则:

1.    我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。

2.    欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。

3.    要不断交付可用的软件,周期从几周到几个月不等,且越短越好

4.    项目过程中,业务人员与开发人员必须在一起工作。

5.    要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。

6.    无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。

7.    可用的软件是衡量进度的主要指标。

8.    敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。

9.    对技术的精益求精以及对设计的不断完善将提升敏捷性。

10.   要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。

11.   最佳的架构、需求和设计出自于自组织的团队。

12.   团队要定期反省如何能够做到更有效,并相应地调整团队的行为。

二、Scrum

2.1 Scrum框架的概念

  Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程.。在这个框架中,整个开发周期包括若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的建议长度2到4周。

  在Scrum中,使用Product Backlog来管理产品或项目的需求,product backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为User Story。

  Scrum的开发团队总是先开发的是对客户具有较高价值的需求。在每个Sprint中,Scrum开发团队从product Backlog中挑选最有价值的需求进行开发。Sprint中挑选的需求经过Sprint Plan Meeting上的分析、讨论和估算得到一个Sprint的task列表,我们称它为Sprint backlog 。 在每个迭代结束时,Scrum团队将交付潜在可交付的产品增量。下图是Scrum的工作流程图。

2.2 Scrum框架的优势

1 专注于如何在最短的时间内实现最有价值的部分
2 每隔一两周或者一个月,我们就可以看到实实在在的可以上线的产品
3 团队按照商业价值的高低先完成高优先级的产品功能,并自主管理,凝结了团队智慧创造出最好的方法因而提高效率
4 能够在开发进程中不断检查,并作出相应调整,便于快速发现问题,促使团队和组织

2.3 Scrum框架概览

 

2.4 Scrum中的角色(主要PO/SM/TEAM)

Product Owner(PO):产品负责人、产品经理、运营人员

职责:---确保Team做正确的事

项目经理更关注deadline(项目截至日期),并以公司为中心;而product owner则聚焦于产品,以最终用户为中心。

分类:

技术点:

相关文章: