Many of the development processes are uncontrolled. The inputs and outputs are either unknown or loosely defined, the transformation process lacks necessary precision, and quality control is not defined. Testing processes are an example.
许多开发过程是未加以控制的。输入输出都是未知的或仅仅初略定义的,过程转换缺少必要的精确性,并且质量控制也是未定义的。测试过程就是一个样例。
An unknown number of development processes that bridge known but uncontrolled processes are unidentified. Detailed processes to ensure that a logical model contains adequate content to lead to a successful physical model is one such process.
那些在已知的但未经控制的过程之间尚有未知数量的开发过程未被确认。用于确保包含足够内容的逻辑模型过渡到成功的物理模型的分过程就是这样一种过程。
Environmental input (requirements) can only be taken into consideration at the beginning of the process. Complex change management procedures are required thereafter.
环境输入(需求)只能在过程的初始考虑。之后就需要复杂的变化管理程序。
Attempts to impose a micro, or detailed, methodology model on the development process have not worked because the development process is still not completely defined. Acting as though the development process is defined and predictable results in being unprepared for the unpredictable results.
在开发过程中使用小的、详细的方法模型的尝试还未实现过,因为开发过程仍未完全定义。自以为开发过程是定义了的和可预知的,将会导致真正面对不可预知的结果时束手无策。
Although the development process is incompletely defined and dynamic, numerous organizations have developed detailed development methodologies that include current development methods (structured, OO, etc.). The Waterfall methodology was one of the first such defined system development processes. A picture of the Waterfall methodology is shown in Figure 1.
尽管开发过程是未完全定义的和动态的,众多的机构已经制定出详细的开发方法,包括流行的开发方法(结构化的方法,面向对象的方法,等等)。瀑布式方法是其中第一个这样被定义的系统开发过程。 见图1。
图 1
Although the waterfall approach mandates the use of undefined processes, its linear nature has been its largest problem. The process does not define how to respond to unexpected output from any of the intermediate process.
虽然瀑布式方法管理了未定义过程的使用,但是,它的线性特点成为它的最大问题。这种过程没有定义如何响应任何中间过程的不可预知的输出。
Barry Boehm introduced a Spiral methodology to address this problem. Each of the waterfall phases is ended with a risk assessment and prototyping activity. The Spiral methodology is shown in Figure 2.
Barry Boehm 引入了一个螺旋型方法来解决这个问题。瀑布式过程的每个阶段都用一个风险评估和原型活动来结束。 见图2.
The Spiral methodology "peels the onion", progressing through "layers" of the development process. A prototype lets users determine if the project is on track, should be sent back to prior phases, or should be ended. However, the phases and phase processes are still linear. Requirements work is still performed in the requirements phase, design work in the design phase, and so forth, with each of the phases consisting of linear, explicitly defined processes.
螺旋型方法就象剥洋葱一样,在开发过程中的阶梯式前进。原型让用户决定项目是否继续进行下去,或者是需要送回到前一个阶段,还是应该结束。然而,阶段和阶段过程仍然是线性的。需求分析仍然在需求分析阶段处理,设计工作仍然在设计阶段进行,如此类推,每个阶段包含线性的、定义明确的过程。
图 2
The Iterative methodology improves on the Spiral methodology. Each iteration consists of all of the standard Waterfall phases, but each iteration only addresses one set of parsed functionality. The overall project deliverable has been partitioned into prioritized subsystems, each with clean interfaces. Using this approach, one can test the feasibility of a subsystem and technology in the initial iterations. Further iterations can add resources to the project while ramping up the speed of delivery. This approach improves cost control, ensures delivery of systems (albeit subsystems), and improves overall flexibility. However, the Iterative approach still expects that the underlying development processes are defined and linear. See Figure 3.
迭代方法是在螺旋型方法之上发展而来的。每个迭代过程包含所有的标准瀑布式阶段,但每个迭代过程只处理解析过的功能的一个子集。整个可交付的项目被细分为区分优先级的子系统,每个子系统都有清楚的接口。使用这种方法,可以在初始迭代过程中测试一个子系统和技术的可行性。进一步的迭代能给项目添加新的资源,同时保持交付的速度。这种方法改善费用控制,确保系统(尽管是子系统)的交付,并且改善整体的适应性。然而,迭代方法仍然要求其中的开发过程是定义的和线性的。见图3。
图 3
Given the complex environment and the increased reliance on new "state-of-the-art" systems, the risk endured by system development projects has increased and the search for mechanisms to handle this risk has intensified. One can argue that current methodologies are better than nothing. Each improves on the other. The Spiral and Iterative approaches implant formal risk control mechanisms for dealing with unpredictable results. A framework for development is provided.
在复杂的环境及对新的“时髦”系统的更多依赖的情况下,系统开发项目所要承担的风险已经加大,进一步加深了对能处理风险的机制的需求。人们可以对使用当前的方法是否比什么方法也不用更好提出质疑。每一种方法都是对另一种方法的改进。螺旋型方法和迭代方法灌输正规的用于处理不可预知的结果的风险控制机制。它们提供一个开发框架。
However, each rests on the fallacy that the development processes are defined, predictable processes. But unpredictable results occur throughout the projects. The rigor implied in the development processes stifles the flexibility needed to cope with the unpredictable results and respond to a complex environment.
然而,它们都取决于一个谬论:开发过程是定义的,可预知的。事实是不可预知的结果在整个项目过程中都可能发生。开发过程的严密,抑制了应付未知结果及响应复杂环境的适应性,
Despite their widespread presence in the development community, people don't use the methodologies except as a macro process map, or for their detailed method descriptions.
尽管这些开发方法已经在开发团体中普遍使用,许多人只用它们作为宏观的过程图象,或者是详细的方法描述。
The following graph demonstrates the current development environment, using any of the Waterfall, Spiral or Iterative processes. As the complexity of the variables increase even to a moderate level, the probability of a "successful" project quickly diminishes (a successful project is defined as a system that is useful when delivered). See Figure 4.
下面的图片使用瀑布式方法、螺旋型方法或迭代过程中的任何一种方法来描述当前开发环境。当系统因素的复杂度增加到中等的程度,项目成功的可能性就迅速减少(成功的项目是指交付时有用的系统)。 见图4。
图 4
--------------------------------------------------------------------------------
Methodology
方法
The system development process is complicated and complex. Therefore maximum flexibility and appropriate control is required. Evolution favors those that operate with maximum exposure to environmental change and have maximized flexibility. Evolution deselects those who have insulated themselves from environmental change and have minimized chaos and complexity in their environment.
系统开发过程是复杂的和综合的,所以需要拥有最大化的适应性和进行恰当的控制。进化的过程喜欢把把环境的改变最大限度地暴露出来,不喜欢将自己和环境的改变隔离,以及将环境的复杂性最小化的行为。
An approach is needed that enables development teams to operate adaptively within a complex environment using imprecise processes. Complex system development occurs under chaotic circumstances. Producing orderly systems under chaotic circumstances requires maximum flexibility. The closer the development team operates to the edge of chaos, the more competitive and useful the resulting system will be.
需要一种允许开发小组在复杂的环境中以非精确的步骤进行开发的方法。复杂的系统开发发生于混乱的系统环境中。在混乱的环境中有序地进行开发,需要开发团队有最大的适应性。越靠近混乱的边缘进行开发的团队,越容易开发出具有竞争力和有实用价值的系统。
Methodology may well be the most important factor in determining the probability of success. Methodologies that encourage and support flexibility have a high degree of tolerance for changes in other variables. With these methodologies, the development process is regarded as unpredictable at the onset, and control mechanisms are put in place to manage the unpredictability.
方法学可能说是检测软件是否成功的最重要的因素。方法学鼓励和支持软件开发对环境变化拥有很高的调整能力。在这些方法学中,开发过程被认为在开始时是不可预知的,而控制机制正是用来管理不可预知性。
If we graph the relationship between environmental complexity and probability of success with a flexible methodology that incorporates controls and risk management, the tolerance for change is more durable. See Figure 5.
如果我们画一个关系图,用来表示环境复杂性和的项目成功的概率之间的关系,这里的项目是指应用了统一控制和风险管理的可适应方法论的项目。参见图5。
图 5
Figures 4 and 5 reflect software development experiences at ADM, Easel, Vmark, Borland and virtually every other developer of "packaged" software. These organizations have embraced risk and environmental complexity during development projects. Increased product impact, successful projects, and productivity gains were experienced. The best possible software is built.
图4和图5反映出ADM,Easel,Vmark,Borland以及事实上每一个其他的打包软件的开发者软件开发的经验。这些机构也都在开发项目时遇到风险和复杂的环境。他们经历了产品不断需要增强的影响,项目的成功,生产力的不断提高。这样最好的软件诞生了。
Waterfall and Spiral methodologies set the context and deliverable definition at the start of a project. SCRUM and Iterative methodologies initially plan the context and broad deliverable definition, and then evolve the deliverable during the project based on the environment. SCRUM acknowledges that the underlying development processes are incompletely defined and uses control mechanisms to improve flexibility.
瀑布和螺旋模型在项目开始时声明前后关系和可交付定义。SCRUM和迭代的方法在开始时定义前后关系和主要的可交付定义,以后在根据项目环境增加可交付定义。SCRUM承认根本的开发过程不能完全加以定义,需要用控制机制增加可行性。
The primary difference between the defined (waterfall, spiral and iterative) and empirical (SCRUM) approach is that The SCRUM approach assumes that the analysis, design, and development processes in the Sprint phase are unpredictable. A control mechanism is used to manage the unpredictability and control the risk. Flexibility, responsiveness, and reliability are the results. See Figure 6.
在瀑布、螺旋、迭代等模型的已定义方法和经验主义的SCRUM方法之间的基本不同点是SCRUM方法假定在快速变化中分析、设计、开发过程中的状态是不可预知的。一种控制机制被用于管理不可预知性和控制风险。带来的成效是适应性、响应能力和可靠性的增强。见图6
图 6
Characteristics of SCRUM methodology are :
SCRUM方法的特征如下:
The first and last phases (Planning and Closure) consist of defined processes, where all processes, inputs and outputs are well defined. The knowledge of how to do these processes is explicit. The flow is linear, with some iterations in the planning phase.
最先和最后阶段(计划阶段和结束阶段)由可定义的过程组成,这些过程的输入输出都能很好的加以定义。如何去实施这些过程的知识是很明确的。过程流程是直线的,在计划阶段会有一些迭代。
The Sprint phase is an empirical process. Many of the processes in the sprint phase are unidentified or uncontrolled. It is treated as a black box that requires external controls. Accordingly, controls, including risk management, are put on each iteration of the Sprint phase to avoid chaos while maximizing flexibility.
冲刺阶段是一个完全根据经验的过程。在冲刺阶段中的许多的过程是未经确认地和不可控制的。可以视为需要额外控制的黑盒。因此包括风险管理的控制被放在冲刺阶段的每一次迭代,以避免在取得最佳的适应性的同时造成混乱。
Sprints are nonlinear and flexible. Where available, explicit process knowledge is used; otherwise tacit knowledge and trial and error is used to build process knowledge. Sprints are used to evolve the final product.
冲刺过程是非线性的和可变的。如果有明确的过程知识,就用它来建立过程知识,否则就使用默认的知识以及试验的以及错误的知识。冲刺过程被用于发展最终产品。
The project is open to the environment until the Closure phase. The deliverable can be changed at any time during the Planning and Sprint phases of the project. The project remains open to environmental complexity, including competitive, time, quality, and financial pressures, throughout these phases.
项目是对环境开放的,直到项目结束阶段。在项目的计划阶段和冲刺阶段,可交付信息可以在任何时间被改变。在这些状态中,项目始终保持对复杂的环境的开放,包括竞争,时间,质量和资金压力。
The deliverable is determined during the project based on the environment.
可交付内容由项目的环境所决定。
Figure 7 compares the primary SCRUM characteristics to those of other methodologies.
图7基本的SCRUM方法和其他方法特性的比较
图 7
--------------------------------------------------------------------------------
Phases
进度
Pregame
项目开始前
Planning : Definition of a new release based on currently known backlog, along with an estimate of its schedule and cost. If a new system is being developed, this phase consists of both conceptualization and analysis. If an existing system is being enhanced, this phase consists of limited analysis.
计划阶段:在当前已知的待定项的基础上,对新版本进行定义,并预计其进度和费用。如果正在开发一个新的系统,本阶段包含概念化和分析两方面;如果正在对现有系统进行增强,则本阶段仅包含有限的分析。
Architecture : Design how the backlog items will be implemented. This phase includes system architecture modification and high level design.
体系架构阶段:构思如何实现待定项。本阶段包括系统架构修改和高层设计。
Game
文章来源于领测软件测试网 https://www.ltesting.net/