【转】极限编程一览

极限编程(XP)起源始于1990年代。当时肯特·布莱克(Kent Black)在戴姆勒克莱斯勒(DaimlerChrysler)处理项目时,试图寻找一种更好的软件开发方法。他的创立新方法后来被称为极限编程方法论,并被证明是一种成功的方法。

作为对旧方法的一种反应而创建的方法,XP使用了与瀑布模型不同的不同方法。它的方法的一个重要区别是它关注于适应性而不是可预测性。这种方法背后的原因是,软件开发是一个非常不稳定的过程,其中从一开始就无法完全预测需求,但是随着项目的进行,需求将始终发生变化。因此,软件开发需要一种方法,该方法应能够在项目生命周期中的任何时候适应不断变化的需求。

在戴姆勒克莱斯勒项目的实验中 肯特 发现了四个维度,这些维度后来成为XP的哲学。这些做法,如果正确实施,将改善任何软件开发项目。具体做法为:

1.      您需要改善沟通。

2.      您需要寻求简单性。

3.      您需要获得有关您的表现的反馈。

4.      您需要始终勇往直前。

 

“每种做法仍然具有与以前相同的弱点,但是如果现在这些弱点被其他做法的强项所弥补,该怎么办呢?我们也许可以简单地做事。” –肯特·贝克(Kent Beck)

 

极限编程的白板视图

它可能看起来像这样……

 

「extreme programming visual paradigm」的圖片搜尋結果"

我将这种观点组合在一起,以帮助一些人了解“系统”的外观。它并不一定是完美的,但他们至少需要一个基本的构想或框架,以便他们可以更好地理解各种实践如何结合在一起。

 

使白板视图能够帮助人更快地入手极限编程

一张图片-价值1,000个字!

这样做的好处是,一旦您在白板上放置了一张简单的图片,便可以与团队进行真正的讨论,以讨论可以改进的地方。这里的主要思想是使您脑海中得到简单的视觉效果,以便您可以轻松地在白板上绘画,并知道各种活动和工件的名称。 

如果您对此有所保留,则可以帮助您建立简单的词汇表。 

该词汇表将帮助您更快地加入其他人,并且将帮助您快速扩展自己的工具箱,并且很快您将发现自己正在撰写新方法并在流程中进行有趣的创新,这将帮助您做得更好,更快,更便宜…在云时间上。

 

什么是极限编程

极限编程(XP)是一种基于简单,沟通,反馈和勇气原则的轻量级软件开发方法。  

我希望能够扫描方法以比较方法。 

为此,我创建了活动,工件,原理和实践的框架。   

这是我在XP上的注意事项:

活动项目 (Activities)

  • 编码
  • 测试中
  • 倾听
  • 设计中

制品 (Artifacts)

  • 验收测试
  • 迭代计划
  • 发布和迭代计划
  • 故事
  • 故事卡
  • 有关测试数量,每次迭代的故事等的统计信息
  • 单元测试
  • 每次迭代都工作代码

12种做法 (Best Practices)

这是12种XP做法:

 在XP中,这四项基本活动是通过使用实践来实现的,这些实践是传统的软件工程实践,但被提升为体现和鼓励XP价值观。尽管完全有28条极限编程的规则和实践[9],但它们可以压缩为十二个简单规则:

  1. 用户案例(planning ):用户案例可以视为用例的较小版本。这样,客户可以尽可能简短地定义新应用程序的规范(功能,价值,优先级)。这些故事将成为项目团队进行项目成本估算和管理的基础。
  2. 小型发行版(Buidling Block): XP强调对应用程序进行小型,简单但频繁的版本更新。每个新添加的要求将立即合并,并重新发布系统。
  3. 隐喻(System Metaphor):开发人员和程序员必须遵守名称,类名和方法的标准。
  4. 集体所有权 (collective Ownership):在XP方法论中,所有代码均被视为由整个团队拥有,而不是单个财产。因此,所有代码都将由所有人审查和更新。
  5. 编码标准 (Coding standard):编码的样式和格式必须相同,以确保团队成员之间的兼容性。这种方法可以加快协作速度。
  6. 简单的设计 (Simple Design):始终寻找尽可能简单的系统实现但又满足所有必需功能的系统实现。
  7. 重构 (Refactoring)所有团队成员应不断调整和改进应用程序。这要求成员之间进行非常良好的沟通,以避免重复工作。
  8. 测试 (Testing):每个小的发行版(称为构建块)都必须通过测试,然后才能发行。XP在这方面的独特之处在于测试首先创建,然后应用程序代码的开发,以满足并通过cahllenges那些预笔试。
  9. 对编程 (Pair Programming): XP程序员可以成对工作。所有代码都是由在同一台计算机上一起工作的两个程序员开发的。期望结对编程以相同或更少的成本生成更高质量的代码。
  10. 持续集成 (Continuous Integration):软件构建一天完成几次。这样,所有开发人员都可以避免工作分散,因为他们不断地将代码发布和集成在一起。
  11. 每周工作40个小时 (40-hour workweek)通过不超过身体可以承受的工作量,保持身心健康。
  12. 现场客户 (On-site customer)必须将客户视为项目的组成部分。必须安排客户随时可用,以确保项目步入正轨。

XP过程可以通过下图表示:

 

 

要了解XP的实践,请参阅XP的实践和主要周期的图片。

「12 xp practices」的圖片搜尋結果"

 

极端编程: 5个价值

  • 通讯
  • 勇气
  • 反馈
  • 尊重
  • 简单

相数

以下是XP项目生命周期的各个阶段。

  • 探索阶段
  • 规划阶段
  • 迭代到发布阶段
  • 生产阶段
  • 维护阶段

有关可视化概述,请参阅《 XP生命周期中的敏捷建模》。

 

12条原则(敏捷宣言)

根据敏捷宣言,以下是12条敏捷原则  :

「agile 12 principle visual paradigm」的圖片搜尋結果"

 

  • 我们的首要任务是通过尽早并持续交付有价值的软件来满足客户。
  • 即使在开发后期,也欢迎不断变化的需求。敏捷流程利用变更来获得客户的竞争优势。
  • 频繁交付工作软件,从几周到几个月不等,而更倾向于缩短时间范围。
  • 在整个项目中,业务人员和开发人员必须每天一起工作。
  • 围绕有积极性的人建立项目。给他们提供所需的环境和支持,并信任他们来完成工作。
  • 向开发团队内部和内部传达信息的最有效方法是面对面的对话。
  • 工作软件是进度的主要衡量标准。
  • 敏捷过程促进可持续发展。赞助者,开发者和用户应该能够无限期地保持恒定的步伐。
  • 持续关注技术卓越和良好的设计可提高敏捷性。
  • 简洁性(最大化未完成工作量的艺术)至关重要。
  • 最好的体系结构,需求和设计来自自组织团队。
  • 团队定期检查如何提高效率,然后相应地调整和调整其行为

4个价值观(敏捷宣言)

根据敏捷宣言,这些是四个敏捷值:

  • 个人与流程和工具之间的互动
  • 通过全面的文档工作软件
  • 客户合作而非合同谈判
  • 响应计划变更

「agile 12 principle visual paradigm」的圖片搜尋結果"

其他资源

  • 在离岸开发中使用敏捷软件流程(Martin Fowler)
  • 极限编程(Ward Cunningham的Wiki)
  • XProgramming.com(Ron Jeffries)
  • 敏捷宣言
  • 极限编程(维基百科)
  • XP的实践和主要周期(Ron Jeffries)
  • 极限编程核心实践(Ward Cunningham的Wiki)

你可能还喜欢

  • Comparison of Scaling Agile Frameworks
  • What are the 10 Principles of LeSS Framework?
  • Extreme Programming (XP) vs Scrum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 关联更新_跳出初学MySQL知识的原理整理(一)

一、基础架构MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎层负责数据的存储和提取。支持 InnoDB、MyISAM等多…

【转】TcpListener和tcpclient使用

前段时间公司项目中遇着需要做文件的远程传输,场景是用户通过网页选择一些文件,然后提交请求到服务器,同时把请求标识传递给本机的TCP文件传输端;服务器收到请求后在服务器端创建任务生成保存文件的路径同时通知文件传输端开始传文…

sleep期间读取所有_ceph部分数据所有副本先后故障的抢救

半天河网易游戏高级运维工程师,主要负责云存储的运维;一个既希望跟业务聊又喜欢能够默默在后面忙活的普通运维人。背景故障现场故障恢复故障恢复分析第一种方式:物理磁盘对拷第二种方式:服务启动时跳过故障扇区来避免异常退出解决…

【转】有限状态机用法教程

如博文无法正常显示,请访问原文地址: https://blog.csdn.net/ChinarCSDN/article/details/82263126 有限状态机用法教程 文章目录 有限状态机用法教程 [toc]1Finite-state machine —— 有限状态机2Foreword —— 前言()3Example —— 示例4Moltimode —…

通用usb集线器驱动_多口充电、高速传输——ORICO晶锐系列7口集线器测评

随着笔电越来越薄,机身接口数量越来越少,U盘、存储卡、移动硬盘、鼠标、蓝牙适配器等明显感觉无处可插,因此USB集线器就成为笔电的最佳拍档。近期,ORICO(奥睿科)推出了一款晶锐系列7口集线器产品,它集成了7个USB3.0接口…

【转】状态机思路在程序设计中的应用

状态机思路在单片机程序设计中的应用 状态机的概念 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。 比如说一个按键命令解析程序,就可以被看做状态机:本…

【转】超详细的UML状态图符号,初学者也能轻松看懂状态图

UML状态图,用于显示状态机,即描述一个对象所处的可能状态以及状态之间的转移。用状态图建模可以帮助开发人员分析复杂对象的各种状态的转换,以及对象何时执行怎样的动作。那状态图又是怎样表示这些信息的呢?要想看明白其中的奥妙&…

舒尔特注意力训练表格_舒尔特注意力训练,舒尔特方格练习入口

孩子的注意力是否集中,直接影响孩子的上课效率和作业正确率,最终影响学习成绩。道理大家都懂,关键是如何保证注意力的集中。接下来,我给大家推荐一个简单方便在家就能完成的训练方法,把它比作小游戏也不为过。那就是舒…

nginx文件系统大小_Nginx 了解一下?

这篇文章主要简单的介绍下 Nginx 的相关知识,主要包括以下几部分内容:Nginx 适用于哪些场景?为什么会出现 Nginx?Nginx 优点Nginx 的编译与配置Nginx 适用于哪些场景?如图所示,一个请求会先经过 Nginx 到达…

存储过程排版工具_安利一款比Evernote更为实用的云笔记工具,不容错过

作为一个爱分享的自媒体人,出于工作和兴趣前前后后接触到的云笔记工具很多,例如:有道云笔记、为知笔记、语雀、印象笔记、oneNote...在笔记工具的使用上还是略有点点心得,今天给大家分享一款实用的云笔记工具——Baklib&#xff0…

【转】有限状态机(FSM)学习总结C#

FSM(Finite State Machine有限状态机)可以理解成是对行为逻辑的抽象,就好象人在生活中会做出各种行为,例如吃饭、睡觉等,这些所有我们都看作是“行为”的分支,由大脑决定每种行为具体是什么实施。在整个FSM…

【转】[完全免费] 在线UML Sequence Diagram 时序图工具 - 教程第3部分

时序图教程 甲序列图描述了一组对象之间的相互作用参与协作(或情况),布置成按时间顺序; 它通过它们的“生命线”和它们发送给对方的消息来显示参与交互的对象。 什么是UML中的序列图? UML序列图是详细说明如何执行操作的交互图。…

【转】[完全免费] 在线UML Class Diagram 类图工具 - 教程第1部分

在线Visual Paradigm - UML编辑器 使用在线UML编辑器轻松绘制UML图,其中包含功能强大的UML编辑工具,即时UML语法检查和整洁的用户界面。Visual Paradigm在线UML 图,如类,用例,序列,活动,部署&a…

python 定时器_python 线程之四:定时器(Timer),非阻塞

线程之一讲了线程,如果不熟悉,可以点击【线程之一:线程的创建、启动及运行方式】1、定时器实质:Timer 定时器源码实现,和我们自定义一个线程方式一样,都是继承了 Thread 类,重写了 run() 方法&a…

人如何认知事物?

自然界是连续的,人类将自然界离散化成一个个独立的概念,独立的概念相互关联,形成模型,随着模型的完善,模型会不断逼近真实事物。 比如人类创造了各种学科,就是从不同的方面深入研究世界的结果。 所以&…

域内定位个人PC的三种方式(1)

会话搜集 在cmd下调用query session命令可以获得当前环境下的windows会话 NetSessionEnum 这个函数不允许直接查询是谁登陆,但是它允许查询是谁在访问此工作站的网络资源时所创建的网络会话,从而知道来自何处,此函数不需要高权限即可查询 第…

02.Teams组成概述及使用分享

在上一篇博客中介绍了Teams的前世今生,大家对Teams已经有了一个初步的认识,但是如上一篇文章中所说Teams是一个集成度很高的云协作平台,具体应该怎么去有效的利用起来呢?接下来这篇博客给大家全方位的分享一下Teams的组成部分以及…

【Qt】解决GDAL直接读取数据到QImage导致图像歪斜的问题

QRect intersect_rect; .... QImage img(intersect_rect.size(), QImage::Format_RGB888); uchar *pImageData (unsigned char *)img.constBits(); int img_width intersect_rect.width(); int img_height intersect_rect.height();// QImage每行是按照sizeof(int)对齐的&am…

高斯课堂数电讲义笔记_【法考经验贴】40岁三战主观题127分!他的笔记学习法助他逆袭!...

这位学员在考证界算是“高龄学员”,高分过关依赖于他的努力和正确的学习方法;本文中他有重点介绍自己是如何做笔记的,非常值得大家学习借鉴!一、个人概况:三战法考我正值不惑之年,是一名在职基层人民警察&a…

【转】持续交付和DevOps的前世今生

作者/分享人:乔梁,20年IT老兵,腾讯公司高级管理顾问,敏捷和精益开发专家,持续交付领域先行者。曾就职于百度,国内多个知名互联网公司的企业教练。 历年QCon技术大会的讲师和专题出品人。 这是一个新概念风起…