敏捷开发是什么

敏捷开发是什么:敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。

一、敏捷开发是什么

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

二、敏捷模型

要想了解AM,你需要了解模型敏捷模型之间的区别。模型是一个抽象的概念,它描述了问题的一个或多个方面,或是处理这个问题可能的解决方案。传统意义上,模型被认为是图表加上相应的文档。然而那些不够直观的artifact,也可以被视为模型,例如CRC卡片集,单条或多条业务规则的文字描述,或是业务流程的一段结构化英文描述。一个敏捷模型就是一个刚刚足够好的模型。但是你怎么知道什么时候模型才是刚刚足够好呢?当敏捷模型显现出如下的特性时,它就是刚刚足够好的:

敏捷模型实现了它们的目的。有时你为沟通而建模,或许你需要把你工作的范围告诉高级经理;有时你为理解而建模,或许你需要确定一个设计策略,实现一组Java类。一个敏捷模型是否足够好,要看它是不是满足了创建它时的初衷。

敏捷模型是可理解的。敏捷模型要能为其预期听众所理解。使用用户能够理解的业务语言来描述需求模型,反之,技术架构模型则需要使用开发人员熟悉的技术术语。你所使用的建模符号会影响易懂性--如果你的用户不了解UML用例图中的符号的含义,那用例图对用户就没有任何价值。这样的话,要么使用另一种方法,要么教授用户学习建模技术。风格问题同样也会影响易懂性,例如避免交叉线。杂乱的图表比清晰的图表难懂。模型的细节程度(见下文),也会影响易懂性,因为相较一个不那么详细的模型来说,一个过于详细的模型要难于理解。简单(见下文)同样是影响易懂性的一个因素。

敏捷模型是足够正确的。模型通常都不需要100%正确,只要足够正确就行了。举个例子,如果一张街道地图漏画了一条街道,或是它标示某条街道是通行的,但你发现它已经关闭维修了,那你会不会扔掉你的地图开始在城里飙车犯罪呢?不太可能。你会考虑更新你的地图,你可能会拿出笔来自己做修改或是去当地的商店买一张最新版的地图(你原来的那张过期了)。也许你还是会接受那张虽不完美但仍可使用的地图,因为它对你来说已经足够好了。你还是可以用这张地图四处转转,因为它还是个正确的模型,标记出了大部分街道的位置。你在发现这张地图不正确的时候,你没有立刻扔掉它,原因是你根本不在乎它是否完美。类似的,当你在需求模型、数据模型中发现错误的时候,你也会选择更新或是接受--虽不完美但已经足够好了。有些项目成员能够容忍这种不正确而有些则不能:这取决于项目的特性,每个团队成员的特性,组织的特性。充分正确性既和模型的听众有关,也和你要处理的问题有关。

敏捷模型是足够一致的。一个敏捷模型并不需要和自己(或其它有用的artifact)保持完全的一致。如果一个用例在它的一个步骤中显式的调用了另一个用例,那么相应的用例图需要用UML的 <> 版型来标记这两个用例之间的关系。然而,你看了看图表,发现它们并没有这样做,天哪!用例和图之间不一致!危险!太危险了!红色警报!快逃命呀!等一下,你的用例模型是有不一致的地方,但也没到世界末日啊。是的,理想情况下,你的所有artifact较好是能够完全一致,但这通常是不可能的。当我开发一个简单的商用系统时,我通常都可以容忍部分的不一致。但有时我是不能容忍这种不一致的。最有力的佐证就是1999年 NASA发射火星太空探测器时采用了精密的测量系统。要树立一个观点,敏捷模型只要足够一致就行了,你通常不需要使用那么完美的模型。

关于正确性和一致性,很明显要考虑权衡问题。如果你要维护一个artifact(我们称之为“保管”),随着时间的流逝,你需要投入资源来更新它。否则它很快会就会过期,对你就没用了。例如,我可以容忍一张地图标错了一两条街道,但是我绝对无法容忍一张地图中四分之三的街道都标错了。这就需要权衡了,进行足够的努力,保证artifact足够正确。过多不必要的努力反而会减缓项目的进度,而投入不足就没有办法保证artifact的有效性。

敏捷模型有足够的细节。一张路线图并不需要标记出每条街道上的每栋房子。那会有太多的细节,使得地图难以使用。然而,在修路的时候,我想施工人员一定会有这条街道的详细地图,包括每幢建筑、下水道、电线盒等足够的细节,这样的地图才是有用的。但是这张地图并不用标记出每个院子和通向它们的路线。因为这样又太繁琐了。足够的细节和听众有关,也和他们使用模型的目的有关--司机需要的是显示道路的地图,施工人员需要的是显示土木工程细节的地图。

考虑一个架构模型,可能一组画在白板上的图表就足够了--项目的进行中再对它们更新,也许你需要用CASE 工具来生成一些图表,也许这些图表还需要有详细的文档,这依赖于环境。不同的项目有不同的需要。在每一个例子中,实际上你都是在开发、维护一个有足够的细节的架构模型,只是这个“足够的细节”的概念和环境有关。

敏捷模型能提供正面价值。对项目中的任一artifact,一个基本的要求是它们能够提供正面价值。一个架构模型给你的项目带来的价值是不是能够超过开发它、维护它(可选)的总成本?一个架构模型能够坚定你们团队为之努力的愿景,所以它当然是有价值的。但是,如果它的成本超过了这个价值,那就是说,它无法提供正面价值。投入100,000美元去开发一个详细的、重量级的文档化架构模型,而它的效用,只需一些画在白板上的图表就能够达到,这些图只需要花你 5,000美元,看看,这是多么轻率的做法。

敏捷模型要尽可能的简单。只要能够达到目的,你应当努力让你的模型尽可能保持简单。模型的详细程度会影响简单性,而所使用的符号范围也会影响简单性。例如,UML的类图就包括了无数的符号,包括对象约束语言 (Object Constraint Language OCL) ,但大多数的图使用符号的一部分就能够完成。所以你常常不需要使用所有的符号,你可以限制自己使用符号的一个子集,当然,这个子集是足够让你完成工作的。

因此呢,一个敏捷模型的定义就是一个实现它的目的,没有画蛇添足的模型;为你的预期听众所理解的模型;简单的模型;足够正确、足够一致、足够详细的模型;创建和维护它的投资能够给项目提供正面价值的模型。

一个普遍的哲学问题是源代码是不是一个模型,更重要的,它是不是一个敏捷模型。如果你是在我们这篇文章之外问我这个问题,我会回答说,是,源代码是一个模型,虽然是一个高度细节化的模型,因为它是软件的一个抽象。同时我还认为,优异的代码是一个敏捷模型。但在这里,我还需要把两者区分开来,源代码和敏捷模型还是有区别的——敏捷模型帮助你得到源代码。

延伸阅读

产品设计

产品设计是企业产品战略中的重要组成部分,它决定产品的特征、功能和用途。

产品的功能性设计

产品功能设计注重的是产品的性能和质量,要求在产品设计中充分考虑顾客要求,体现产品的经济价值,并以此为原则,保证高品质设计,包括:配合度精确、性能优良而稳定、耐用性能以及售后维护的便利程度。技术手段:价值工程、装配过程模拟、装配设计、质量功能选择和计算机辅助设计等。

可制造性和可装配性

产品的可制造性和可装配性设计,即产品设计要满足产品制造和装配的工艺要求。其目的是:在顾客可接受的价格下生产出功能和结构两方面都满意的产品。完美的产品设计代表了成本—效益,是通过将产品构思、设计和研制与可制造性和可装配性相结合得以实现的。为了在竞争价格下,生产出较高质量的产品,产品的可制造性设计必须与产品功能设计协调进行。

面向制造和装配

面向制造和装配的产品设计正是这样的一种设计思想,在满足产品功能、质量和外观等要求下,从提高产品的可制造性和可装配性入手,从而以更低的产品开发成本、更短的产品开发周期和更高的产品质量进行产品开发。

文章标题:敏捷开发是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/50255

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年4月21日 下午4:40
下一篇 2023年4月21日 下午4:50

相关推荐

  • 企业咨询公司怎么开发客户

    开展企业咨询公司,开发客户需采取策略,如 1.网络营销 2.口碑和推荐 3.会议和网络研讨会 4.合作伙伴关系 5.市场细分专注。特别针对口碑和推荐,它借力现有客户网络和满意度,通过正面体验传播增加新客户来源。企业应建立强大顾客关系,激励推荐行为,确保服务质量以稳固及扩展市场。 一、网络营销 企业咨…

    2024年1月9日
    34100
  • 项目管理都有哪些软件

    开门见山地说明:项目管理领域内的软件众多,常见的项目管理软件包括1、Microsoft Project;2、Asana;3、Trello;4、JIRA;5、Basecamp;6、Monday.com;7、Smartsheet以及8、Wrike。这些软件提供不同程度的项目规划、资源分配、时间追踪、协作…

    2024年1月8日
    20100
  • 装饰项目如何管理公司

    管理一个装饰项目公司涉及多个关键环节,包括项目管理、客户服务、财务规划、市场营销、团队建设等。在这些方面,项目管理是基础,也是最核心的部分。它要求公司能够有序地安排设计、采购、施工等各个阶段,确保项目高效、准时完成。通过细致的时间管理、成本控制和质量监控,项目管理不仅能够提高公司的竞争力,还能提升客…

    2024年4月10日
    4200
  • 有什么好的项目管理工具软件

    本文将介绍几种的项目管理软件:1、Trello;2、Asana;3、Monday.com;4、Jira;5、Basecamp;6、Wrike。Trello是一款简单易用的项目管理工具软件,它使用卡片和列表来管理任务和项目。 1、Trello Trello是一款简单易用的项目管理工具软件。它使用卡片和…

    2023年3月2日
    44800
  • ChatGPT-4.0对企业客户服务有哪些具体应用

    ChatGPT-4.0在企业客户服务中具备多样化的应用,能够极大程度优化客户体验。主体应用包括:1、即时客户咨询回复;2、智能客服系统集成;3、个性化推荐引擎构建;4、自然语言处理能力强化数据分析;5、客户反馈自动收集与分析;6、多语种支持提升国际服务能力。通过这些核心应用的详细解析,可以了解Cha…

    2023年11月29日
    45200
  • devops思想什么意思

    DEVOPS思想概述 DevOps思想核心包含三点:1、加速软件交付过程、2、提高服务稳定性、3、增强运维与开发间的协作。在这其中,加速软件交付过程尤为关键,这意味着企业能够更快地将产品推向市场,满足顾客需求,同时在竞争激烈的市场中保持领先地位。DevOps通过自动化操作,例如代码的持续集成(CI)…

    2024年3月26日
    5800
  • 工厂erp与oa集成

    标题:工厂ERP与OA集成的必要性与实施策略 工厂ERP系统与OA办公自动化系统的集成对于提升企业运作效率、优化资源配置及增强决策支持具有重大意义。1、实现数据互通性强化管理流程;2、增进工作效率,缩减操作时间;3、支援决策制定,提供准确数据;4、降低运作成本,提升企业竞争力。通过ERP系统与OA系…

    2024年1月12日
    16200
  • 加密货币,区块链,web 3.0是什么

    加密货币是指一种数字货币,它使用了密码学技术来确保安全性和匿名性。区块链是一种分布式数据库,它允许多个参与者在没有中央机构的情况下进行交互。Web 3.0是互联网的下一代,它将使用区块链和其他技术来实现更加去中心化、安全和隐私的网络。 加密货币 加密货币是指一种数字货币,它使用了密码学技术来确保安全…

    2023年5月28日
    40800
  • Java中的策略模式如何实现

    透过在Java中实施策略模式,程序员能够为相似问题定义一系列算法,互相替换使用,在不更改客户代码的情况下更改算法的执行逻辑。该模式涵括了三个关键组成部分:环境(Context)类、策略(Strategy)接口及其具体实现。其中,环境类用来持有一个策略对象,而策略接口定义了每个策略必须实现的操作,具体…

    2024年1月8日
    19500
  • 企业erp管理系统设计

    开门见山地说,企业ERP管理系统设计意在增强组织资源规划效率、优化流程管理、加强决策支持。这类系统贯穿企业核心业务,强化信息流与供应链协同。重要的设计因素包括:1、模块化结构;2、数据整合能力;3、用户友好性;4、可定制性;5、稳定的技术支持基础。其中,模块化结构的设计允许不同的业务单元根据需求自由…

    2024年1月9日
    22300

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部