2019-04-12 22:52:55 y_279611480 阅读数 560
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10433 人正在学习 去看看 CSDN讲师

SCRUM 是什么?

Scrum是敏捷开发中的名词。

敏捷开发是什么?

敏捷开发(Agile Development) 是一种以人为核心、迭代、循序渐进的开发方法。

简单的说的话:

  1. 它只是一种开发思想,而不是开发技术;
  2. 其次,需要明白,通过敏捷开发的项目,包含的诸多子项目,都会带有,已经测试结束,具备了集合和可运行的特征;
  3. 敏捷开发,初始,并不追求完美的设计以及编码,而是,尽可能快的先开发出产品的核心功能,以及发布可用版本。之后,才会在多余的生产周期内,根据需求,不断的完善升级与迭代产品。

eg:对于Java全栈式开发工程师来讲,拿到需求,了解之后,第一件事,并不是先去完善后台代码,而是迅速的先将需求页面(网站),先实现。而后,才开始根据需求一步步实现功能。

以人为核心是什么意思?

一句话概括来讲的话,便是:

不似瀑布开发的思想,往往开发完后,写了一堆的开发文档进行开发、
而是,尽量的少写开发文档,只写一些必要性的文档,因为敏捷开发注重的是人与人面对面之间的交流。所以说它是以人为核心。

迭代 是什么意思?

类似与 单体开发 与 微服务、分布式开发的区别。
一个是,将所有的功能实现后,方可测试与后续操作。
另一个是,将所有的功能分为一个个服务或小功能,完成一个便可开发,测试,上线一个小功能。慢慢的完成总体。

循序渐进自然,也可由上明白。

SCRUM 与 敏捷开发思想有什么关系?

Scrum是敏捷开发之后的方法的一种。

敏捷开发的模式分类(摘抄至互联网):

敏捷开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开发)等等。其中 SCRUM 与 XP 最为流行。

同样是敏捷开发,
XP 极限编程 更侧重于实践,并力求把实践做到极限。这一实践可以是测试先行,也可以是结对编程(eg:多人协调开发)等,关键要看具体的应用场景。

SCRUM 则是一种开发流程框架。
SCRUM 框架中包含三个角色,三个工件,四个会议,听起来很复杂,其目的是为了有效地完成每一次迭代周期的工作。

SCRUM 的工作流程(摘抄至互联网)

学习 Scrum 之前,我们先要了解几个基本术语:

Sprint:冲刺周期,通俗的讲就是实现一个“小目标”的周期。一般需要 2-6 周时间。
User Story:用户的外在业务需求。拿银行系统来举例的话,一个 Story 可以是用户的存款行为,或者是查询余额等等。也就是所谓的小目标本身。
Task:由 User Story 拆分成的具体开发任务。
Backlog:需求列表,可以看成是小目标的清单。分为 Sprint Backlog 和 Product Backlog。
Daily meeting:每天的站会,用于监控项目进度。有些公司直接称其为 Scrum。
Sprint Review meeting: 冲刺评审会议,让团队成员们演示成果。
Sprint burn down:冲刺燃尽图,说白了就是记录当前周期的需求完成情况。
Release:开发周期完成,项目发布新的可用版本。

开发模型:
流程图

流程:

  1. 由产品的负责人,按照需求的优先级,优先取出一部分Backlog(需求清单)。
  2. 在每个Sprint(冲刺周期),开发团队根据计划,确定好每个周期的需求清单(Backlog)。既,在每段时间内需要完成的工作任务是什么。
  3. 对团队成员进行任务的分配开发。每天,团队都会开启Daily meeting(每天的站会)【既,明白自己之前完成了什么】。
    而后团队成员调整自己的Task状态【既,每个小任务的完成时间又该控制在什么时间内】,整个团队便更新自己的Sprint burn down(冲刺燃尽图)。
  4. 当这份Backlog(需求清单)完成之后,便会开启团队的Sprint Review meeting:(冲刺评审会议)。没问题的话,便会发布出发此阶段产品的发型版本(Release),且进行Sprint review meeting(回顾会议)

写在最后,PS:此文内容,部分摘抄至互联网,如若,原文博主介意,可私聊。谢谢。
自然,此文并不完善,欢迎各位点评。

2018-08-15 11:43:58 Ffffatass 阅读数 243
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10433 人正在学习 去看看 CSDN讲师

敏捷开发流派有很多,但是万变不离其宗。

  • 个体与交互           胜过     过程与工具
  • 可以工作的软件   胜过     面面俱到的文档
  • 客户协作              胜过     合同谈判
  • 响应变化              胜过     遵循计划

敏捷开发是一种思想,是一种紧紧跟随其价值观的思想。敏捷有很多流派,有很多落地的方案,但是这些都是基于思想上的思考。思考是可以有不同的,但是思想是不变的。所有敏捷开发的唯一重点就是紧跟其核心思想,不要被形式束缚。

2013-06-10 13:59:51 jackxinxu2100 阅读数 3970
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10433 人正在学习 去看看 CSDN讲师

 敏捷开发的4个中心思想 如下:

1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan


翻译成中文如下:

1. 个体与交互比过程与工具更加有效

2. 能够满足用户的软件比综合的文档更加有效

3. 客户协作比守住合同条款更加重要

4. 响应变化比遵守计划更加有用


其中按照不同的协作模式又分为:

1. XP(Extreme programming) 极限编程

2. Scrum (Cohn, 2009; Schwaber, 2004; Schwaber and Beedle, 2001),

3. Crystal(Cockburn, 2001; Cockburn, 2004),

5. Adaptive Software Development (Highsmith,2000),

6. DSDM (Stapleton, 1997; Stapleton, 2003)

7. Feature Driven Development (Palmer and Felsing, 2002)


其中的中心思想是注重最终的可用交付,注重人的沟通协作,注重满意度而非文档、工具与过程,但坦率地讲,在国内的项目型开发中,需要积极地探索如何坚持这个敏捷的思路与需求变更的欲望控制相结合,实现一个最佳的融合,依照笔者个人近20年的从业经验来看,还是存在相当的难度。

相比较于经典的RUP与Waterfall模型而言,由于没有了经典的步骤与过程切割,没有了需求的采集与分析定稿、设计的定稿以及必要的原型开发与验证,其实对于团队的每个成员的要求比起上述的2个经典模型要高出不少,其实要求大部分成员都能够准确、快速分析需求,并且能够转化为具体的代码,还要考虑必要的系统完整度与扩展性,因此对于成员的单兵能力要求非常高,很多国内的公司对于Agile的理解非常片面,笔者曾经碰到很多公司与小组,其中的普遍误区是Agile是不需要写文档的、不需要做计划的,而忽略了对于团队的单兵技能要求与沟通方面的要求,很多初级技术人员很多的团队都使用了Agile的方式来生产软件,最终的结果想必大家也是知道的。


总结一下Agile的应用场景:需求变化可能性非常大,团队的单兵实力很强、团队磨合了一定的时间了,能够紧密配合工作;

总结一下RUP与Waterfall的应用场景:需求变化可能性比较小,团队的单兵实力不太强,团队的磨合时间很短,尚不能紧密配合工作;


那么大家就有个疑问,如果团队单兵能力差距比较大,磨合不太好,而需求变化又很大的时候怎么办呢? 这个时候在整体交付上的需求实现上使用交替使用递归式分阶段枚举实施,而每个阶段内的管理还是建议采用经典的Waterfall模型来实现,如此来控制整体的交付质量与用户的交付满意度。


附录:Agile的关键工程实践


翻译为中文,大体如下:

1.持续递增的工程计划
2.基于短小有用的功能集所做的发布
3.基于目前功能集的简单设计
4.测试优先驱动开发
5.基于需求驱动的持续重构
6.结对编程
7.集体负责体系
8.持续的集成
9.与客户的持续沟通交付
10.专职的客户代表参与开发


Scrum的实施步骤:

1. Sprints are fixed length, normally 2–4 weeks. They correspond to the development of a release of the system in XP.
2. The starting point for planning is the product backlog, which is the list of work to be done on the project. During the assessment phase of the sprint, this is reviewed, and priorities and risks are assigned. The customer is closely involved in this process and can introduce new requirements or tasks at the beginning of each sprint.
3. The selection phase involves all of the project team who work with the customer to select the features and functionality to be developed during the sprint.
4. Once these are agreed, the team organizes themselves to develop the software. Short daily meetings involving all team members are held to review progress and if necessary, reprioritize work. During this stage the team is isolated from the customer and the organization, with all communications channelled through the so-called ‘Scrum master’. The role of the Scrum master is to protect the development team from external distractions. The way in which the work is done depends on the problem and the team. Unlike XP, Scrum does not make specific suggestions on how to write requirements, test-first development, etc. However, these XP practices can be used if the team thinks they are appropriate.
5. At the end of the sprint, the work done is reviewed and presented to stakeholders. The next sprint cycle then begins.


2013-08-07 13:50:32 yafeng_0306 阅读数 2632
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10433 人正在学习 去看看 CSDN讲师

敏捷开发中心思想:迭代式开发、自组织团队。


自组织团队必须具备素质:

1.必须是一个团队:构架师、需求人员、开发人员和测试人员组成的是一群人

2.团队的核心目标:团队共同的工作理念与文化形成一个基本的认识和理解

3.自组织团队:管理者不再发号施令,而是让团队自身寻找最佳的工作方式来完成工作。

总之,自组织团队是一个自动自发、有着共同目标和工作文化的团队,这样的团队总是在向它的组织做出承诺。

实践举例:

上次面试的一个阿里的员工,说他们目前的工作模式就是采用敏捷思想。

企业内部分成不同的团队,项目采用竞标式测试,每个团队以内部竞争方式获取项目的测试权。

该项目由团队,讨论划分成N个模块,员工估量自己的实力,自动认领模块。

项目细分完成后,各自负责自己的模块,进行迭代式测试。

全程的合作方式没有项目经理概念,没有人督促你要做什么?怎么做?本周进度?下周进度?只有项目的目标计划。

体验感想:

这样的一个团队合作式的工作氛围才是最重要的,而与我们现在工作现状有很大差别!

我觉得有效的工作节奏是最好的,最高效的。

2012-09-04 10:01:44 seucbh 阅读数 460
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10433 人正在学习 去看看 CSDN讲师

                              敏捷开发的借鉴

个人觉得敏捷开发的思想在于程序员之间的交流,提倡人与人之间信息的共享,而不是各自埋头做事。

 

1、 晨会制度

    每天早上小会,告知昨天作了什么,存在什么问题,后续可能需要怎么解决,需要什么协助。

    这样可以及时让项目组成员了解到其他人当前的工作状态,个人也可以及时反映出问题并可以寻求到帮助。

 

2、燃尽图

    记录项目的进展。项目进度可以说是管理者最关心的问题,这种问题必须毫不含糊的告知项目管理者。

    项目管理者可以清楚知道项目过程中的问题和风险,这样才可以很好的控制项目开发。

 

3、详细的文档比较少

    代码就是最好的文档。前提要建立一个很好的制度,保证代码能够达到文档说明的自说明的水平。否则的话,代码成为不了文档,又没有文档,这样项目就可能不可控了。

    所以,个人觉得敏捷开发应该是有一定水平的程序员才能够很好的进行工作,很自我的程序员在一起,很难进行敏捷开发。

 

4、持续集成

    这个好像是敏捷开发中唯一不可少的。个人觉得也是所有项目开发中不可少的。持续集成,才能提升整理的项目开发能力。

    比如,规范制度建立,自动化测试环境搭建,需求控制能力的提升都是持续集成的体现。

 

 

没有更多推荐了,返回首页