- 浏览: 7944923 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
一、 什么是Scrum?
Scrum是一种灵活的软件管理过程,它可以帮助你驾驭迭代,递增的软件开发过程。由Ken Schwaber和 Jeff Sutherland 提出,旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进,名称来自英式橄榄球(在比赛中每个队员都应时刻保持对场上全局的判断,然后通过集体行动,奋力实现同一目标──胜利)。SCRUM方法最初实践于Easel公司(1993年),现已被数十家公司数百个项目开发中应用,适用于需求难以预测的复杂商务应用产品的开发[11]。SCRUM提出的SCRUM Meeting、Sprint、Backlog、SCRUM Master、SCRUM Team、Demo等模式已被PLOP作为组织和过程模式(Organizational and Process Pattern)的标准。这个轻量的过程可以作为包装器,也就是说你可以把Scrum与其它灵活的过程框架组合起来,比如说RUP。 Scrum提供了一种经验方法,它使得团队成员能够独立地,集中地在创造性的环境下工作。它发现了软件工程的社会意义。Scrum一词来源于橄榄球运动,暗指这种情况:“在橄榄球比赛中,双方前锋站在一起紧密相连,当球在他们之间投掷时他们奋力争球。 ”
这一过程是迅速,有适应性,自组织的,它代表了从顺序开发过程以来的重大变化。Scrum认为软件的开发不应使用和一般制造业相同的方法,也就是不应采用一种反复的模式。这种重复使得输入和输出参数更加容易预测和描述,但这并不是当今软件工程的有益目标。现代软件工程的主要挑战包括上市时间,投资回报,以及影响顾客的需要等。RUP和其他敏捷软件工程过程能够很好地迎接这些挑战。
SCRUM将工业过程控制中的概念应用到软件开发中来,认为软件开发过程更多是经验性过程(Empirical Process),而不是确定性过程(Defined Process)。确定性过程是可明确描述的、可预测的过程,因而可重复(Repeatable)执行并能产生预期的结果,并能通过科学理论对其最优化。经验性过程与之相反,应作为一个黑箱(Black box)来处理,通过对黑箱的输入输出不断进行度量,在此基础上,结合经验判断对黑箱进行调控,使其不越出设定的边界,从而产生满意的输出。SCRUM方法将传统开发中的分析、设计、实施视为一个黑箱,认为应加强黑箱内部的混沌性,使项目组工作在混沌的边沿,充分发挥人的创造力。如将经验性过程按确定性过程来处理(如瀑布模型),必将使过程缺乏适应力。
二、SCRUM方法的开发过程
包括三个过程:
(1) 计划和体系结构设计(确定性过程)
将Backlog(急待完成的一系列任务,包括:未细化的产品功能要求、Bugs、缺陷、用户提出的改进、具竞争力的功能及技术升级等)按优先级排序形成Backlog 列表,根据该表和风险评估制订产品交付基线。
建立系统体系结构(如为已有系统改进,则只作有限分析、调整),将Backlog项按高内聚低耦合的原则分解为一系列问题包(Packets,每个Packet是一组对象或构件的集合) ,依据同样原则相应划分若干个开发小组(SCRUM 小组),分配各小组合适的Backlog项或问题包。建立开发运行环境。
(2) Sprint(经验性过程)
该过程由若干个迭代的冲刺(Sprint) 活动组成,直至风险评估认为产品可交付为止。一个Sprint是在限定时间段内(Sprint周期,通常为1~6周,可在前一个Sprint结束时调整)的一系列开发活动(包括分析、设计、编码、测试等),每个SCRUM小组并行开发且必须步调一致(在一个Sprint结束后,均须完成所分配的Backlog项并有可执行的产出)。
每个Sprint包含以下活动:
1 开发。
对分配的Backlog工作进行分析,将所需改动(changes)映射到各packets,打开packets,进行领域分析,然后设计、开发、实施、测试、文档化这些改动。
2 打包(Wrap)。封装packets,产生一个满足Backlog需求的可执行版本。
3 评审(Review)。所有的SCRUM小组一起开会,提交各自的工作并演示(Demo),然后提出和解决问题(Issue)及难点(problem),增加新的Backlog项;发布、审查或调整产品的标准规范;进行风险评估并提出合适的对策;确定下一个Sprint的工作内容和结束时间。
4 调整(Adjust)。根据评审会汇集的信息,对受影响的Packets进行适当调整和巩固。
(3) 交付和巩固(确定性过程)
一旦根据风险评估结果认为可交付产品时,即进入该阶段。该阶段的活动包括:组装,系统测试和回归测试(Regression),准备培训材料,完成最终文档。
SCRUM过程认为一个产品的开发将一直持续下去,除非经风险评估后认为应停止。产品交付后的巩固活动类似于传统方法中的维护和改善,目的在于整理Sprint期压力下忽略的工作,为下一阶段的开发做准备,以便轻装上阵。
三、 SCRUM对过程的管理:
(1) SCRUM的控制手段。
SCRUM提出了八个控制项(Controls)用于开发过程的调控,其中风险控制是首要的手段。
Backlog。
对象/构件。
Packets。
变动(Changes)。实施一个Backlog项时,对相应Packet的改动。
难点(Problems)。实施一个变动时所必须解决的技术难点。
问题(Issues)。涉及到整个项目或在Backlog项分解到Packet之前须解决的问题。
措施(Solutions)。对问题或难点的解决,通常会导致变动。
风险(Risks)。影响项目成功的风险,应持续跟踪评估并相应做出调整。风险评估的结果将影响其他所有控制项。SCRUM定义了六个概念性变量来用于风险评估:用户需求,时间压力,竞争,质量,远见(vision)和可用资源。
在SCRUM的各个阶段都使用这些控制项来评估和权衡,管理人员侧重于以此管理Backlog,开发组用以处理变动和难点。所有人员一起来管理问题、风险和措施。
根据对控制项特别是风险的不断度量评估和权衡,一方面,计划和进度(在每个Sprint结束时)不断相应调整,保证实现产品的商务目标;另一方面,对开发中的工作任务Backlog动态地进行优先级排序,开发组总是先开发优先级最高的Backlog项,这样就保证了资源的最合理使用。另外,SCRUM强调度量(采用标准功能点度量方法)的重要性,通过对每个Sprint中生产率等的度量,计划和进度将越来越趋于准确。
(2) 项目组织。
由全职开发人员及与该交付产品有关的市场人员、销售人员、用户等组成。设以下小组:
项目管理组。由产品经理领衔,包括总设计师,各SCRUM小组组长,市场、销售的高级职员及典型用户等。
若干个SCRUM小组。各小组由组长(SCRUM Master)领衔。每个小组都是跨专业的(通常包括开发人员,文档人员,质量控制人员或用户代表等),通常为3~7人,以使小组内有充分的交流。小组的划分最好是功能导向的(按所分配的问题包或Backlog),也可是系统层次导向(按体系结构中的分层)。.
在项目组人数增大时,可在管理组之上再设管理组(SCRUM of SCRUM),从而使SCRUM方法的应用到大项目中。
(3) Sprint期间的调控。
在Sprint期间,应使各SCRUM小组尽量避免外界的干扰(不可将新的Backlog任务加进来,组内产生的Backlog可放到整个项目的Backlog列表中,也可在本次Sprint中解决),使小组成员专心于目前的工作,使他们工作在混沌的边沿。
为避免项目组在Sprint期间不陷入混乱,SCRUM采取两个措施:
SCRUM会议(SCRUM Meeting)。对小组行为进行监控和刺激。会议在Sprint期间每天在同一地点举行,由SCRUM Master主持。会议上, SCRUM Master对每个小组成员提三个问题:
1) 昨天的工作进展如何。
2) 有否遇到困难和障碍。
3) 今天的工作打算。
会后SCRUM Master集中精力排除障碍,小组成员则进行当天的开发。
Sprint评审会议:评审后根据对每人的工作成绩,进行相应的激励。
四 SCRUM方法的实践效果和发展方向
SCRUM在实践中大大提高了生产率(据软件生产率组织的Capers Jones称可提高6倍),在实施中有一个"间断平衡"(Punctuated equilibrium)现象(类似于自然界中物种的进化,在经过一段相对平衡的各自独立、并行的发展期后,在交汇处发生变异),即在经过紧张、并行的Sprint开发后,在Sprint评审时,软件产品产生较剧烈的变化。SCRUM方法的最近动向是设法借鉴XP方法。
而且在感觉上,scrum适合小团队开发,强调中庸之道,没去片面追求XP的一些方法,比如SCRUM也强调文档的重要。
发表评论
-
git学习小结
2017-01-23 20:14 601http://www.liaoxuefeng.com/wiki ... -
国内IT技术大会小结
2012-06-15 12:47 3434搞IT的就要多交流,这个应该成为大家的共同认识,比如国内目前有 ... -
国内IT技术大会小结束
2012-06-15 12:44 0搞IT的就要多交流,这个应该成为大家的共同认识,比如国内目前有 ... -
国内IT技术大会小结束
2012-06-15 12:42 0搞IT的就要多交流,这个应该成为大家的共同认识,比如国内目前有 ... -
神奇的“触觉振动”:谈W3C的震动API
2012-02-17 12:28 2120说起“触觉反馈”,大家可能从字面上并不能理解它是如何工作的。触 ... -
Chrome赶超IE:谷歌为何再度联手火狐
2011-12-27 20:16 2436http://tech.it168.com/a2011/122 ... -
(转10款难看但好用的SEO工具
2011-09-07 06:53 1403人不可貌相,SEO工具也不例外。 SEO专业网站SEOmoz ... -
一个很好的开源CRM项目
2005-01-15 19:56 1632http://www.sugarcrm.com,还有简体中文包 ... -
PHP中得到指定的时间段
2005-01-15 19:59 1948最近在项目中,遇到个比较特殊的要求,比如,MYSQL中,比如今 ... -
给大家推荐一个SQL好的站点
2005-01-15 20:20 1126,给大家推荐一个SQL好的站点 http://sqlteam. ... -
记得打补丁
2005-04-14 19:33 1045之前遇到个很怪的问题: 买了个新硬盘,160G,重新装了VS. ... -
express beta 2版本出来了
2005-04-18 11:30 1049在没下到VS。NET 2005之前,也可以用轻量级的EXPRE ... -
SQL SEVER 2005 CTP APRIL出来了
2005-04-20 20:02 1081http://lab.msdn.microsoft.com/e ... -
ms reporting service sp2 出来了
2005-04-24 08:27 1205SQL Server 2000 Reporting Servi ... -
php5 读书心得(1)
2005-04-25 19:48 1157由于工作中要用到PHP,最近下了本《PHP5 POWER PR ... -
PHP5 心得(2)
2005-04-28 19:41 1186在OOP中,构造函数和析构函数是很重要的,在PHP4中,可 ... -
vs.net 2005 beta 2安装问题
2005-04-28 22:50 1207我之前已经卸载了BETA 1了,但可惜安装后,在新建工程后,还 ... -
PHP5心得3
2005-04-29 20:47 1134今天讲的是parent::和self::两个新的关键字。se ... -
PHP5心得4
2005-05-01 17:11 11601 instanceof操作 该操作中,判断某个类是 ... -
vs 2005中的 Visualizer debugger
2005-05-05 21:01 1147在vs.net 2005 中,增加了可视化的调试器,甚至可以自 ...
相关推荐
1. **角色定义**:Scrum中有三个关键角色——产品负责人(Product Owner)、Scrum Master和开发团队。产品负责人负责定义和优先级排序产品待办事项列表(Product Backlog),确保团队了解业务需求。Scrum Master是...
敏捷技术通常指的是极限编程(eXtreme Programming,简称XP),它是一种敏捷软件开发的方法论,包含许多实践,如持续集成(Continuous Integration),自动化测试(Automated Testing),测试驱动开发(Test Driven ...
敏捷开发方法包括极限编程(XP)和Scrum等,它们强调适应变化和持续改进,自90年代起逐渐受到广泛关注。 ### 敏捷宣言 敏捷宣言是敏捷开发运动中的核心价值体现,它强调了四个基本原则: 1. 个体和交互胜过过程和...
在本项目中,我们采用了极限编程和 SCRUM 两种敏捷开发方法,通过极限编程提高了代码的规范度和正确率,加大了开发效率;通过 SCRUM 强调可工作软件大于文档,解决了繁杂文档的编写问题。最终项目于 2020 年 4 月...
敏捷编程管理,通常被称为敏捷项目管理,是一种以迭代和增量方式开发软件的高效方法,它强调灵活性、协作和快速响应变化。Scrum是敏捷方法论中最广泛应用的一种框架,以其强大的项目管理和团队协作能力而受到赞誉。...
### Scrum敏捷框架培训知识点详解 ...综上所述,Scrum作为一种敏捷开发方法,为软件开发提供了一种高效且灵活的解决方案。通过不断迭代和持续改进,可以帮助团队快速响应市场需求,同时保持高质量的产品输出。
阅读《硝烟中的Scrum和XP-SCRUM与极限编程》可以帮助你理解这两种敏捷方法如何协同工作,提升软件开发效率。通过学习Scrum的迭代管理和XP的编程实践,你将能够更好地应对项目中的不确定性,为客户提供更优质、更适应...
### Scrum敏捷软件开发方法介绍 #### 敏捷宣言及原则 敏捷开发是一种以人为本、适应变化的软件开发方法论。其核心价值观体现在敏捷宣言中,包括以下四个方面: 1. **个体和交互胜过过程和工具**:强调人的作用...
作者和同事通过故事化的方法来分享敏捷开发中的经验教训,并将这些故事融入小说中,使得内容既有趣味性又具备知识性。在写作过程中,作者采取敏捷开发的方法,进行迭代、自我管理、收集反馈并不断调整内容。 ### ...
- **角色**:Scrum中有三个关键角色: - **产品负责人(Product Owner)**:负责定义产品的功能需求和优先级。 - **Scrum Master**:负责确保Scrum过程正确执行,并移除团队前进中的障碍。 - **开发团队...
Scrum中的Sprint回顾会议则鼓励团队从过去的经验中学习,不断调整工作方式以应对变化。 总的来说,《硝烟中的Scrum和XP》这本书提供了一个全面了解这两种敏捷方法的窗口,有助于读者提升团队协作能力,培养适应性和...
Scrum和极限编程(XP)是两种敏捷软件开发框架,它们在现代IT行业中扮演着重要的角色。本书《硝烟中的Scrum和XP》探讨了这两种方法论在实际项目中的应用和挑战,旨在帮助读者理解如何在复杂环境中有效地利用敏捷原则...
Scrum和极限编程(XP)是两种非常流行的敏捷开发框架,它们在现代软件开发领域扮演着重要的角色。本文将深入探讨这两种方法的核心理念、实践原则以及如何在实际项目中应用。 **Scrum** Scrum是一种以人为核心、...
本书名为《*** Development with Scrum》,旨在向读者展示如何在实际的.NET项目中应用敏捷开发和Scrum方法论。作者提供了一个名为“SuperJumper”的2D游戏开发项目作为案例,详细讲述了敏捷和Scrum在项目中的实施...
其中,Scrum作为敏捷开发中最流行的方法之一,其核心思想是通过迭代和增量的方式来实现快速响应变化的目标。本文将深入探讨Scrum的基本概念、核心原则以及如何在实际项目中应用Scrum框架来提升团队效率和产品质量。 ...
Scrum是敏捷开发中最常用的一种框架,它为敏捷团队提供了一套结构化的方法来管理复杂的产品开发项目。Scrum的核心概念包括: - **角色**:产品负责人(Product Owner)、Scrum Master、开发团队(Development Team)。 ...
极限编程与敏捷编程的对比 XP 与Scurm 的对比 使用游戏,亲身经历进行对比,共参考