1. 营销策划师首页

敏捷开发【】敏捷开发的特点与开发模型和特点

敏捷开发【】敏捷开发的特点与开发模型和特点在学习软件工程的过程中,我接触到了软件工程开发模型的一些相关概念,其中瀑布模型和敏捷开发模型给人的印象更深。敏捷开发模型敏捷开发主要包含三种模式:瀑布模型的优点瀑布模型作为最典型的预见性方法,其优点主要在于:参考瀑布式开发与敏捷开发的区别是什么八分钟敏捷开发(scrum)扫盲【敏捷1.软件开发生命周期(软件开发过程、瀑布模型、敏捷开发等)

引言

在学习软件工程的过程中,我接触到了软件工程开发模型的一些相关概念,其中瀑布模型和敏捷开发模型给人的印象更深。这两种模式在日常软件开发中非常常用,但它们也有很大的不同,所以在实际应用场景中也是不同的。

[En]

When learning software engineering, I have come into contact with some related concepts of software engineering development model, among which the waterfall model and agile development model are more impressive. These two models are very commonly used in daily software development, but they are also quite different, so they are also different in actual application scenarios.

瀑布模型是最典型的预测方法,它严格按照预先计划的需求、分析、设计、编码和测试的顺序进行预测。敏捷开发以用户需求演化为核心,采用迭代、循序渐进的方式进行软件开发。

[En]

Waterfall model is the most typical predictive method, which strictly follows the step order of pre-planned requirements, analysis, design, coding and testing. Agile development takes the evolution of users’ requirements as the core, and adopts an iterative and step-by-step approach to software development.

敏捷开发模型

敏捷软件开发是基于敏捷宣言中定义的价值和原则的一系列方法和实践。自组织的、跨职能的团队使用适合其自身环境的实践来发展解决方案。

[En]

Agile software development is a series of methods and practices based on the values and principles defined in the Agile Manifesto. Self-organizing, cross-functional teams evolve solutions using practices appropriate to their own environment.

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。

敏捷开发的特点

敏捷开发的特点就是下面4句话:

「个体与交互」胜过「过程与工具」

「可以工作的软件」胜过「面面俱到的文挡」

「客户协作」胜过「合同谈判」

「响应变化」胜过「遵循计划」

敏捷开发中,软件项目在构建初期被划分为多个子项目,并对每个子项目的结果进行测试,具有可视化、集成性和可操作性的特点。也就是说,把一个大项目分成几个相互关联,但也可以独立运行的小项目,然后分别完成,就是,其中软件始终可用。

[En]

敏捷开发_敏捷开发与瀑布开发_敏捷开发 传统开发

In agile development, the software project is divided into multiple sub-projects at the initial stage of construction, and the results of each sub-project are tested with the characteristics of visualization, integration and operational use. In other words, it is * to divide a large project into several small projects that are related to each other, but can also be run independently, and complete them separately, in which the software is always available * .

借助互联网浪潮,敏捷开发变得流行起来。与瀑布模式相比,雅居乐无疑更贴近互联网时代背景下快速变化的市场环境和商业需求。

[En]

Agile development has become popular with the help of the Internet tide. Compared with the waterfall model, Agile is undoubtedly closer to the rapidly changing market environment and business needs in the context of the Internet era.

敏捷开发的三大角色

产品负责人(Product Owner)

主要负责与客户沟通,确定产品的功能和符合要求的标准,并明确软件的发布日期和交付日期,并有权接受或拒绝开发团队的工作,一般由产品经理担任。

[En]

Mainly responsible for communicating with customers to determine the function of the product and meet the required standards, and specify the release date and delivery of the software, and have the right to accept or reject the work of the development team, generally held by the product manager.

流程管理员(Scrum Master)

问题清道夫!主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

开发团队(Scrum Team)

开发主力!主要负责软件产品在Scrum规定流程下进行开发工作。人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;不论过程只问结果!只要能达到目标,不论任何工作时间、方式。

敏捷开发的生命周期

软件开发生命周期(SDLC)是设计,开发和测试高质量软件的一种现象。

在敏捷的SDLC开发过程中,客户能够看到结果并了解他/她是否满意。这是敏捷SDLC模型的优势之一。

敏捷SDLC的每次迭代都包含跨不同阶段的跨职能团队:

敏捷开发主要包含三种模式:

迭代式开发生命周期

听说过敏捷的学生一定听说过迭代。有人说我们要迭代一个版本,也有人说我们要在这个迭代周期里完成什么,无论是指具体的软件版本,还是指一段时间,这两个词的意思其实是一样的,就是在整个项目开发过程中剪掉的一小段时间。这段时间是一个迭代。通过迭代,使整个项目更加清晰。迭代概念最著名的图表就是这个图表。

[En]

Students who have heard of Agile must have heard of iteration. Some people say that we want to iterate a version, and some people say that what we want to accomplish in this iterative cycle, whether it refers to a specific software version, or a period of time, the meaning of these two words is actually the same, that is, a small period of time cut out during the whole project development process. This period of time is an iteration. Through iterations, make the whole project clearer. The most famous diagram of the concept of iteration is this diagram.

从这个图中我们能看出什么呢? 迭代就是不断丰富细节的过程。每一次的迭代,我们都应该让这个项目更加的清晰明了,细节也一步步地完善。

增量式开发生命周期

在讨论完迭代开发过程之后,让我们来谈谈增量,迭代和增量是所有敏捷教程都会讲到的,因为这两件事很容易混淆。增量实际上是不断增加待开工项目的产品的模块功能。将不同的模板组装成一个完整的产品,就像构建块一样。同样,还有一个特定于增量概念的图表。

[En]

After talking about the iterative development process, let’s talk about increment, iteration and increment are what all Agile tutorials will say, because these two things are easy to be confused. Increment is actually the module function of constantly adding the product of the project to be started. Assemble different templates into a complete product like building blocks. Similarly, there is a diagram that is specific to the concept of increment.

看出来增量和迭代的不同了吗? 迭代的时候,有轮廓,不断完善细节。而增量,没有整体轮廓,上来就是细节完整的一个部分,不断地一部分一部分地完成,最终形成一个完整的产品。

补充:迭代和增量这两种图,同时对应 Web 应用中图片的两种展示形式,不知道大家有没有印象,在网速不好的时候,有些网站打开大图是一块一块出来的,而有些网站打开大图是先模糊然后一步一步清晰的。有兴趣的同学可以搜索查找一下 PhotoShop 中导出 WEB 格式时选择连续功能的作用。

混合式开发生命周期

将上述迭代与增量相结合,即在一个迭代中包含增量,这是一个混合生命周期。在这种情况下,可以很好地利用这两种发展形式的优势。事实上,今天我们大多数公司的迭代Sprint就是这种混合生命周期的开发形式。在每一次迭代中,我们添加的新功能模块就是不断为整个项目的轮廓添加完美的细节。

[En]

Combining the above iterations with increments, that is, including increments in one iteration, is a hybrid lifecycle. In this case, you can make good use of the advantages of these two forms of development. In fact, the iterative sprint in most of our companies today is the development form of this hybrid lifecycle. In each iteration, the new functional module we added is to constantly add perfect details to the outline of the entire project.

但是,需要注意的是,无论是考试还是面试,你都应该能够清楚地理解迭代和增量之间的区别。此外,在混搭的时候,每一次迭代也可以看作是一个传统的发展过程,简而言之,混搭就是多种混搭,吸收了各家的优势。

[En]

敏捷开发_敏捷开发 传统开发_敏捷开发与瀑布开发

However, it is important to note that whether it is an exam or an interview, you should be able to clearly understand the difference between iteration and increment. In addition, when mixing, each iteration can also be seen as a traditional development process, in short, mixing is a variety of mixing, absorbing the advantages of each family.

敏捷开发的优点更快交付价值更低的风险拥抱变化更好的质量持续改进更高的客户满意度更高的团队满意度敏捷开发的缺点很难进行准确的资源规划很难准确的定义”轻量的”或必要的文档很难把握整体产品的一致性很难预测有限的终点很难有效地进行度量瀑布开发模型

瀑布模型(Waterfall Model)是最早出现的软件开发模型,是传统软件开发方法的代表。在软件工程中占有重要的地位,它提供了软件开发的基本框架。1970 年温斯顿·罗伊斯(Winston Royce)提出了著名的”瀑布模型”,直到 80 年代早期,它一直是唯一被广泛采用的软件开发模型。

瀑布模型是最典型的预测方法,它严格按照预先计划的需求、分析、设计、编码和测试的顺序进行预测。步骤结果用作度量进度的一种方法,例如需求规范、设计文档、测试计划、代码评审等。

[En]

Waterfall model is the most typical predictive method, which strictly follows the step order of pre-planned requirements, analysis, design, coding and testing. Step results are used as a way to measure progress, such as requirements specifications, design documents, test plans, code reviews, and so on.

瀑布的主要问题是它的严格分类导致自由度减少,而且在项目早期做出的承诺使得调整以适应后来的需求变化变得困难和昂贵。当需求未知时,瀑布方法基本上是不可行的,并且可能在项目期间发生变化。

[En]

The main problem with waterfall is the reduced freedom caused by its strict classification, and the commitment made in the early stage of the project makes it difficult and costly to adjust to later demand changes. The waterfall approach is basically not feasible when the requirements are unknown and may change during the project.

有论文统计,它是造成70%软件开发失败的原因。

瀑布模型的生命周期

瀑布模型将软件生命周期划分为 制定计划、需求分析、软件设计、程序编写、软件测试和运行维护 等六个基本活动,并且规定了它们 自上而下、相互衔接的固定次序敏捷开发,如同瀑布流水,逐级下落。其严格强调文档,前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。所以很多开发人员好象是在开发文档,而不是开发软件,因为要到开发的后期,才可以看到软件的”模样”。

瀑布模型的优点

瀑布模型作为最典型的预见性方法,其优点主要在于:

阶段清晰:从计划到开发最后到上线运行,三个阶段非常清晰。时间顺序:每个阶段顺序必须是从上到下,严格按照时间先后进行。环环相扣:在每一个阶段都必须有产出物然后才能进入到下一个阶段进行。黑盒模式:每个阶段都有各自的角色和分工,各自只关心自己的任务。比如需求阶段开发人员无需关注。瀑布模型的缺点

而其缺点也突出:

需求隔离:由于各阶段的人员只能接触到自己工作范围内的东西,所以对客户需求的理解程度高低不等,开发人员更像是定义为流水线上的工人。变更代价大: 既然叫做瀑布,就意味着不应该走回头路。否则如果出现返工敏捷开发,付出的代价会很大。需求变更,编码人员会很强的抵触情绪。束缚创造性:由于强调文档管理,所以管理人员会比较喜欢,但是他束缚了开发人员的创造性。周期漫长:整个开发持续的生命周期很长,需求和设计的时间会耗费特别多,有时候会占用三分之一甚至更多时间,这样整个周期就会变长,大都在半年到一年左右的时间,所以更适合需求相对稳定的大项目。参考瀑布式开发与敏捷开发的区别是什么八分钟敏捷开发(scrum)扫盲【敏捷1.3】敏捷中的项目开发生命周期项目管理 之一 软件开发生命周期(软件开发过程、瀑布模型、敏捷开发等)

Original:

Author: Garrett_Wale

Title: 常见开发模型-敏捷开发与瀑布开发模型详解

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息