• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

SCRUM软件开发过程

发布: 2008-9-18 10:53 | 作者: 不详 | 来源: 测试时代采编 | 查看: 149次 | 进入软件测试论坛讨论

领测软件测试网

The following teams are formed for each new release:
每个新版本的开发过程将包括下面的小组:

Management: Led by the Product Manager, it defines initial content and timing of the release, then manages their evolution as the project progresses and variables change. Management deals with backlog, risk, and release content.
管理者:由产品经理领导,该小组确定该版本的初始内容和发布时间,然后管理项目开发进度的变化以及各种因素的变化。管理者需要管理待定项、风险和版本内容。
Development teams: Development teams are small, with each containing developers, documenters and quality control staff. One or more teams of between three and six people each are used. Each is assigned a set of packets (or objects), including all backlog items related to each packet. The team defines changes required to implement the backlog item in the packets, and manages all problems regarding the changes. Teams can be either functionally derived (assigned those packets that address specific sets of product functionality) or system derived (assigned unique layers of the system). The members of each team are selected based on their knowledge and expertise regarding sets of packets, or domain expertise.
开发小组:开发小组规模都很小,其中包括了开发人员,文档书写管理人员和质量控制人员。每个开发小组规模在3到6个人之间,并且都有特定的任务。每个小组被指派去完成一组软件包(或者对象),每个软件包包含了与该包相关的待定项。为了实现软件包中待定项,开发小组定义需要做出的改变,并且解决由这些改变而带来的问题。小组可以按照功能进行划分(分配实现特定产品功能组合的软件包),也可以按照系统来划分(分配系统中唯一的一个层次)。每个小组的成员是根据他们对所指定的软件包应具有的专业知识和技能来选择的,或者根据专家意见来选择。

--------------------------------------------------------------------------------

Characteristics
特性
The SCRUM methodology is a metaphor for the game of Rugby. Rugby evolved from English football (soccer) under the intense pressure of the game :
SCRUM方法是橄榄球比赛的一个隐喻。 橄榄球是由英式足球在剧烈的比赛压力下发展而来的:

Rugby student William Webb Ellis, 17, inaugurates a new game whose rules will be codified in 1839. Playing soccer for the 256-year-old college in East Warwickshire, Ellis sees that the clock is running out with his team behind so he scoops up the ball and runs with it in defiance of the rules. The People's Chronology, Henry Holt and Company, Inc. Copyright ?1992.
17岁的橄榄球学生威廉·韦布·埃利斯(William Webb Ellis)开创了一种新的运动,并且该项运动的游戏规则于1839年被确认。一次在为有256年历史的东沃里克郡学院踢足球的比赛期间,威廉·韦布·埃利斯(William Webb Ellis)发现比赛就要结束而他的球队还是落后,情急之下,他一把抓起足球,带着跑,以此来挑战比赛规则。

SCRUM projects have the following characteristics :
SCRUM 项目具备下面的特性:

Flexible deliverable - the content of the deliverable is dictated by the environment.
灵活的可交付能力――可交付内容由环境因素决定。
Flexible schedule - the deliverable may be required sooner or later than initially planned.
灵活的进度安排―― 版本交付可能早于也可能迟于最初计划时间。
Small teams - each team has no more than 6 members. There may be multiple teams within a project.
小的队伍――每个小组不超过6个成员,一个项目可能包括了多个小组。
Frequent reviews - team progress is reviewed as frequently as environmental complexity and risk dictates (usually 1 to 4 week cycles). A functional executable must be prepared by each team for each review.
经常总结―― 随着环境复杂度和风险度的改变,小组的进度经常要进行总结(通常为1到4个星期为一个周期)。为每次总结每个小组都必须精心准备有一定功能的可执行代码。
Collaboration - intra and inter-collaboration is expected during the project.
协作:―― 在项目的整个过程中需要内部的和相互的协作。
Object Oriented - each team will address a set of related objects, with clear interfaces and behavior.
面向对象-每个小组开发一系列相关的具有确定接口和行为的对象。
The SCRUM methodology shares many characteristics with the sport of Rugby :
SCRUM方法具有与橄榄球运动相似的许多特征:

The context is set by playing field (environment) and rugby rules (controls).
由比赛场地(环境)和橄榄球规则(控制)来决定前后关系。
The primary cycle is moving the ball forward.
主要的循环周期是把球向前送。
Rugby evolved from breaking soccer rules - adapting to the environment.
橄榄球来源于打破足球规则――为了适应环境
The game does not end until environment dictates (business need, competition, functionality, timetable).
除非环境要求否则比赛不会结束(商业需求、竞争、功能、时间表)

--------------------------------------------------------------------------------

Advantages
优势
Additional development methodologies are designed only to respond to the unpredictability of the external and development environments at the start of an enhancement cycle. Such newer approaches as the Boehm spiral methodology and its variants are still limited in their ability to respond to changing requirements once the project has started.
其他的开发方法只是为了弥补在增强周期开始的时候由于外部的和开发环境的不确定造成的影响。一些新的途径诸如Boehm螺旋方法以及它的变体,其在项目启动后响应需求变化的能力是有限的。

The SCRUM methodology, on the other hand, is designed to be quite flexible throughout. It provides control mechanisms for planning a product release and then managing variables as the project progresses. This enables organizations to change the project and deliverables at any point in time, delivering the most appropriate release.
然而,SCRUM方法论的设计自始至终具有很强的适应性。它提供了规划产品版本从而在项目过程中进行变化因素管理的控制机制。这使得开发机构可以及时地在任意点上修改项目和发布日期,从而做到发布最合适的版本。

The SCRUM methodology frees developers to devise the most ingenious solutions throughout the project, as learning occurs and the environment changes.
SCRUM方法论使得开发人员在开发过过程中随着知识的增长和环境的变化,能够在整个项目过程中自由地设计最有创意的解决方案

Small, collaborative teams of developers are able to share tacit knowledge about development processes. An excellent training environment for all parties is provided.
小型的合作开发组能够共享有关开发过程的默认知识。为所有参与者提供了一个优秀的训练环境。

Object Oriented technology provides the basis for the SCRUM methodology. Objects, or product features, offer a discrete and manageable environment. Procedural code, with its many and intertwined interfaces, is inappropriate for the SCRUM methodology. SCRUM may be selectively applied to procedural systems with clean interfaces and strong data orientation.
面向对象技术为SCRUM提供了技术基础。对象,或者说产品特征,提供了一个离散的可管理的环境。面向过程的代码所具有的包含诸多相互交织的接口的特点对于SCRUM技术是不合适的。然而对于有着清晰接口和明显的数据导向的面向过程的系统SCRUM技术还是可以考虑的。


--------------------------------------------------------------------------------

Estimating
评估
SCRUM projects can be estimated using standard function point estimating. However, it is advisable to estimate productivity at approximately twice the current metric. The estimate is only for starting purposes, however, since the overall timetable and cost are determined dynamically in response to the environmental factors.
SCRUM项目可以用标准的点估计函数。但是,明智的做法是以现有度量的两倍作为生产力的估计。而且这个估计只是用于项目启动之用,因为整个过程的时间安排和花费是由诸多的环境因素动态决定的。

Our observations have led us to conclude that SCRUM projects have both velocity and acceleration. In terms of functions delivered, or backlog items completed :
我们的观察发现SCRUM项目同时具有速度和加速度。就发布的功能或者待定项而言:

initial velocity and acceleration are low as infrastructure is built/modified
最初的速度和加速度比较低是由于要构建基础架构
as base functionality is put into objects, acceleration increases
当基本功能加入到对象中时,加速度增加了
acceleration decreases and velocity remains sustainably high
加速度降低,速度保持足够高
Further development in metrics for empirical processes is required.
对基于经验的过程的度量的有待做进一步地研究。


--------------------------------------------------------------------------------

Appendix 1
附录 1
System Development Methodologies : Defined or Empirical
系统开发方法:规定和经验
System development is the act of creating a logical construct that is implemented as logic and data on computers. The logical construct consists of inputs, processes, and outputs, both macro (whole construct) and micro (intermediate steps within whole construct). The whole is known as an implemented system.
系统开发是在计算机上通过逻辑和数据来创建逻辑结构的行为。这个逻辑结构包括输入、过程和输出,可分为宏观的(整个结构)和微观的(整个结构的中间步骤)两类。这三者一起被称作完成的系统。

Many artifacts are created while building the system. Artifacts may be used to guide thinking, check completeness, and create an audit trail. The artifacts consist of documents, models, programs, test cases, and other deliverables created prior to creating the implemented system. When available, a metamodel defines the semantic content of model artifacts. Notation describes the graphing and documentation conventions that are used to build the models.
在构建系统的过程中会创建许多的人工附属物,可以用来帮助思考,检验完整性,创建审计纪录。它们包括在创建整个系统前创建的文档、模型、程序、测试用例以及其他发布文档。可能的话,用元模型来定义模型的语义内容。符号描述用以构建模型的书写和文档约定。

The approach used to develop a system is known as a method. A method describes the activities involved in defining, building, and implementing a system; a method is a framework. Since a method is a logical process for constructing systems (process), it is known as a metaprocess (a process for modeling processes).
用于开发系统的途径称为方法。它是一个框架,描述了定义、构建和实现系统的相关活动。因为方法是构建系统(过程)的一个逻辑过程,所以它也被称作元过程(为过程建模的过程)

A method has micro and macro components. The macro components define the overall flow and time-sequenced framework for performing work. The micro components include general design rules, patterns and rules of thumb. General design rules state properties to achieve or to avoid in the design or general approaches to take while building a system. Patterns are solutions that can be applied to a type of development activity; they are solutions waiting for problems that occur during an activity in a method. Rules of thumb consist of a general body of hints and tips.
方法有着宏观和微观成份。宏观成份规定了实行工作的整个流程和时序框架。微观成份则包括一般设计规则、翻阅模式和规则。其中一般设计规则描述在设计上所要达到或者避免的特性,或者描述在构建系统时要采取的一般方法。模式是可以用于一类开发活动的解决方案;用于解决在某一方法的某一活动实行过程中出现的问题。翻阅规则包括一般提示和技巧。

Applying concepts from industrial process control to the field of systems development, methods can be categorized as either "theoretical" (fully defined) or "empirical" (black box).
当把工业过程控制中的概念引入到系统开发的领域时,方法可以归为理论的(完全定义的)或者经验的(黑箱)。

Correctly categorizing systems development methods is critical. The appropriate structure of a method for building a particular type of system depends on whether the method is theoretical or empirical.
正确地将系统开发的方法进行分类是关键的。用于构建某一类特殊的系统的方法的合适的结构取决于这个方法是经验的还是理论的。

Models of theoretical processes are derived from first principles, using material and energy balances and fundamental laws to determine the model. For a systems development method to be categorized as theoretical, it must conform to this definition.
理论过程的模型是从第一原则得到的,这一原则利用物质和能量守恒以及基本法则来决定模型。如果哪个系统开发方法要被归为理论的,它必须满足这个定义。

Models of empirical processes are derived categorizing observed inputs and outputs, and defining controls that cause them to occur within prescribed bounds. Empirical process modeling involves constructing a process model strictly from experimentally obtained input/output data, with no recourse to any laws concerning the fundamental nature and properties of the system. No a priori knowledge about the process is necessary (although it can be helpful); a system is treated like a black box.
经验过程的模型是通过将观察到的输入输出进行分类,将限制其在一定范围内发生的控制进行定义得到的。经验过程模型只考虑严格按照实验数据进行建模,并不考虑任何与系统的基本特性相关的法则。有关过程的先验知识是不必要的(尽管会有帮助),系统被完全当作一个黑箱来看待。


Upon inspection, we assert that the systems development process is empirical:
通过以上分析,我们断言系统开发过程是经验的:

Applicable first principles are not present
缺乏可用的第一原则
The process is only beginning to be understood
过程刚刚开始被了解
The process is complex
过程是复杂的
The process is changing
过程是变化的
Most methodologists agree with this assertion; "...you can't expect a method to tell you everything to do. Writing software is a creative process, like painting or writing or architecture... ... (a method) supplies a framework that tells how to go about it and identifies the places where creativity is needed. But you still have to supply the creativity...."
大多数的方法学家同意这样的观点:“......不要奢望一个方法告诉你要做的一切。写软件是一个创新的过程,就象是绘画、写作或者建筑......(一个方法)提供了一个告诉你如何去做的框架,并且识别需要创新的地方。但是创新必须由你来完成。”

Categorizing the systems development methods as empirical is critical to the effective management of the systems development process.
将系统开发过程划归为经验的对于对系统开发过程进行有效的管理是关键的。

If systems development methods are categorized as empirical, measurements and controls are required because it is understood that the inner workings of the method are so loosely defined that they cannot be counted on to operate predictably.
如果系统开发过程被划归为经验的,那么就需要度量和控制。因为方法的内部工作方式的定义太宽松以至于不可能进行提前操作。

In the past, methods have been provided and applied as though they were theoretical. As a consequence, measurements were not relied upon and controls dependent upon the measurements weren't used.
在以前,方法被当作是基于理论的而提出和应用。这样就不依赖于度量,而依赖于度量的控制就没有被使用。

Many of the problems in developing systems have occurred because of this incorrect categorization. When a black box process is treated as a fully defined process, unpredictable results occur. Also, the controls are not in place to measure and respond to the unpredictability.
这种不正确的分类导致了系统开发的许多问题。当一个黑箱过程被当作一个完整定义的过程时,不可预料的结果出现了。而且,用于度量和响应这意外的控制机制并没有被使用。


--------------------------------------------------------------------------------

References
Bach, James. "Process Evolution in a Mad World." Borland International, Scotts Valley, CA.
Bach, James. October, 1995. "The Challenge of "Good Enough" Software", American Programmer.
Coplien, J. "Borland Software Craftsmanship: A New Look at Process, Quality and Productivity." Proceedings of the 5th Annual Borland International Conference, June 5, 1994. Orlando, Florida.
DeGrace, P. and Hulet Stahl, L. 1990. Wicked Problems, Righteous Solutions. Yourdon Press
Gleick, J. 1987. Chaos, Making A New Science. Penguin Books.
Kahn, D. and Sutherland, J. March-April 1994. "Let's start under-promising and over-delivering on OT." Object Magazine.
Ogunnaike, B. 1994. Process Dynamics, Modeling, and Control. Oxford University Press.
James Rumbaugh, October 1995, "What Is a Method". Journal of Object Oriented Programming.
Takeuchi, Hirotaka and Nonaka, Ikujiro. January-February 1986. "The New Product Development Game." Harvard Business Review.
Takeuchi, Hirotaka and Nonaka, Ikujiro. 1995. The Knowledge Creating Company: How Japanese Companies Create the Dynamics of Innovation, Oxford University Press.

文章来源于领测软件测试网 https://www.ltesting.net/

44/4<1234

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网