什么是XP
XP 实际上是一种经历过很多实践考验的一种软件开发的方法,它诞生了大概有5 年,它已经被成功的应用在许多大型的公司,如:Bayeris che Landesbank,Credit Swis s Life,DaimlerChrysler,First Union National Bank Ford Motor Company and UBS.XP 的成功得益于它对客户满意度的特别强调,XP 是以开发符合客户需要的软件为目标而产生的一种方法论,XP 使开发者能够更有效的响应客户的需求变化,哪怕在软件生命周期的后期。
同时,XP 也很强调团队合作。团队包括:项目经理,客户,开发者。他们团结在一起来保证高质量的软件。XP 其实是一种保证成功的团队开发的简单而有效的方法。
XP 强调四种价值:交流,简易,回馈,勇气。XP 程序员之间紧密的相互交流,XP 程序员也和客户紧密的交流。他们总是保持他们的设计简单明了。项目一开始,XP 就强调通过对软件的不断测试来获得反馈,程序员尽可能早的把软件交给客户,并实现客户对软件需求提出的变化,有了这些基础,XP 程序员就可以自信的面对需求和软件技术的变化。
XP 是与众不同的,它有点象快步的舞蹈。XP 开发过程包括许多的小卡片,独立的看,这些小卡片没有什么意义,但是当它们组合在一起,一幅完整的美丽的图片就可以看见,XP方法有别于传统软件开发,它是软件开发的一种新的重要的发展。它改变了我们开发程序的传统思维方式。下面我们将介绍它带给我们那些改变。
第二问题:XP 带给我们的变化
通过软件工程设计的简单而优美的软件并不比那些设计复杂而难以维护的软件有价值。这是真的吗?XP认为事实并非如此。
一个典型的项目花在人力上的金钱是花在硬件上的时间的20 倍,这意味着一个项目每年要花200 万美元在程序员身上,而仅仅花10 万美元在电脑设备上。很多聪明的程序员说:“我们如此聪明,发现一种方法可以节省20%的硬件开销”,然后他们使得源程序大而且难懂和难以维护,他们会说:“但是我们节省了20%或者2 万美元每年,很大的节省”。反之,如果我们写我们的程序简单而且容易扩展,我们将至少节省10%的人力开销,一笔更大的节省,这是你客户一定会注意到的一些事情。
另外一个对客户来说很重要的问题就是程序的BUGS 。XP 不只是强调测试,而且要求正确的测试。测试必须是能自动进行的,以便为程序和客户提供一个安全的环境。在编码的所有阶段,我们不断增加测试用例。当找到bug 时,我们就添加新的测试,一个紧密的安全网就这样产生了。同一个BUG 不出现两次,这些一定会引起用户的注意。你的客户必须注意的另外一件事情:XP 开发者拥抱需求变化。XP 使我们能够接受需求的变化。
一般情况下,客户只有在系统被开发完成以后能真正去体会它。XP 却不一样,它通过加强客户的反馈来缩短开发的周期,同时获得足够的时间来改变功能和获得用户的认同。在XP 中,你的客户应该明确的知道这一点。
XP开发过程的大多的革命是在软件开发的方法上,代码质量的重要程度超出人们一般所认为的。仅仅因为我们的客户不能明白我们的源代码并不意味着我们可以不努力去管理代码的质量。
第三个问题:我们什么时候用XP
XP方法的产生是因为难以管理的需求变化,从一开始你的客户并不是很完全的知道他们要的系统是怎么样的,你可能面对的系统的功能一个月变化多次。在大多数软件开发环境中不断变化的需求是唯一的不变,这个时候应用XP 就可以取得别的方法不可能取得的成功。XP 方法的建立同时也是为了解决软件开发项目中的风险问题。假如你的客户在特定的时间内,需要一个相当难开发的系统,而且对于你的项目组来说,这个系统是一个新的挑战(从来没有做过),那风险就更大了,如果这个系统对于整个软件行业来说都是新的挑战,那么它的风险就更大了,采用XP 将可以减少风险,增加成功的可能。
XP方法是为小团体开发建立的,在2-10 个人之间。假如你的团体恰好合适,你就不需要用其他的软件工程方法了,就用XP ,但是要注意你不能将XP 方法应用于大团体的开发项目中。我们应该注意,在需求一惯呈动态变化或者高具有高风险的项目中,你就会发现XP 方法在小团体的开发中的作用要远远高于在大团体的开发。
XP方法需要一个扩展的开发团体,XP 团体不仅仅包括开发者,经理、客户也是其中的一员,所有的工作一环扣一环,问问题,商讨方法和日程,增加功能测试,这些问题的解决不仅仅涉及到软件的开发者。
另一个需要是可测试性,你必须能增加自动的单元测试和功能测试,然而在你进行这个需求的时候,你会发现有许多的问题很难测试,这需要充分发挥你的测试的经验和智慧,而且你有时还要改变你的设计以便它可以更容易的进行测试。记住:那儿有需求,那儿就应该有测试的方法。
在XP方法的好处的清单上,最后一条是生产力。在同样的合作环境下,XP 项目都一致的表现出比使用其他方法高的多的生产力。但这从来不是XP 方法学的真正目标。XP 真实追求的目标是:在规定的时间生产出满足客户需要的软件。假如对于你的开发来说,这是很重要的方面,你就可以选择XP 了。
分享到:
相关推荐
#### 方法概述 根据描述中的信息,该方法适用于部分Windows XP系统,并不保证适用于所有机型。以下步骤基于描述中提供的注册表键值修改和命令行操作来完成IE浏览器的重装过程。 #### 步骤一:备份注册表 在进行...
#### 一、XP共享基础知识概述 Windows XP作为一款经典的桌面操作系统,在企业和家庭网络环境中广泛使用。对于XP系统来说,实现文件和打印机的共享是一项非常重要的功能。本文将详细介绍XP系统的共享方法及其过程中...
#### 一、GHOST XP安装方法概述 GHOST XP安装方法主要包括以下几个步骤:创建系统镜像、传输镜像文件、恢复系统镜像。具体操作如下: 1. **创建系统镜像**:通过GHOST将当前系统状态保存为一个镜像文件(通常为....
#### 一、概述 - **产品介绍**:HP StorageWorks Disk Array XP128与Disk Array XP1024是高性能存储解决方案的一部分,为用户提供高可用性和灵活性。 - **适用范围**:适用于企业级应用,能够满足关键业务的需求。 -...
#### 二、XPLITE定制概述与注意事项 XPLITE是一款专门用于精简和优化Windows XP系统的工具软件。通过XPLITE,用户可以直接删除系统中不常用或不必要的组件,从而释放硬盘空间,提高系统性能。相较于传统的优化方式...
### 双系统Windows 7与Windows XP双系统安装方法集锦 #### 一、概述 随着Windows 7(以下简称Win7)正式版的发布,许多用户对于如何在一台计算机上同时安装并使用Win7和Windows XP(以下简称XP)产生了浓厚的兴趣...
### VC6.0 实现 XP 风格的方法详解 #### 概述 在 Windows XP 系统下,用户界面引入了许多新特性,包括透明效果、光滑边角以及丰富的颜色方案等,这些特点统称为“XP 风格”或“XP 主题”。对于开发者而言,如何让...
3. **解决方案概述**:通过合理的设置,可以实现 Windows XP 和 Windows 7 在局域网中的互连互通及文件共享。 #### 解决方案详解: ##### 一、Windows XP 系统的设置方法 - **安全性和共享平衡**:设置共享可能会...
### 在XP上安装Microsoft SQL Server 2000的方法 #### 背景与概述 Microsoft SQL Server 2000 是一款广泛使用的数据库管理系统,主要用于处理大量的数据存储和访问需求。然而,随着操作系统的更新迭代,特别是...
这套培训资料旨在帮助用户深入了解JX-300XP这一先进DCS系统的各项功能和使用方法。 首先,从"01.系统构架 V2.1.pdf"中,我们可以了解到JX-300XP DCS系统的整体构成。该系统由操作站、工程师站、控制站和现场设备等...
标题与描述概述的知识点主要集中在Windows XP系统的密码破解方法上,尤其强调了通过创建密码重设盘来避免因忘记密码而导致的数据损失问题。以下是对这些知识点的详细解析: ### 创建密码重设盘 Windows XP提供了...
1. **Windows XP系统概述**:Windows XP是微软推出的桌面操作系统,以其稳定性和用户友好性而闻名。它引入了新的视觉设计(如Aero主题)和许多改进的功能。 2. **计算器历史**:在Windows XP之前,计算器就已经存在...
##### 方法概述 如果用户忘记了Windows XP的登录密码,可以通过安全模式下的命令提示符来尝试重置密码。这种方法适用于拥有管理员权限的账户,并且计算机没有加入域的情况下。 ##### 操作步骤 1. **重启计算机并...
### XP下卸载IE8还原到IE7的解决方法 #### 背景与问题描述 在进行网站开发的过程中,可能会遇到需要测试不同浏览器版本的需求。例如,有时我们需要使用Internet Explorer 8(以下简称IE8)来进行某些特定功能的...
#### 一、概述 PXE(Preboot Execution Environment,预启动执行环境)是一种让计算机可以通过网络启动的操作环境。它主要用于无硬盘或没有光驱的计算机,允许用户通过网络安装操作系统。本文将详细介绍如何利用PXE...
1. **XPTable概述** XPTable是一个强大的.NET Framework控件,它模仿了Microsoft Excel的界面和功能,为用户提供了类似电子表格的体验。它的主要目标是为开发者提供一个轻量级、高性能且易于使用的表格解决方案。 ...