模式和极端编程(XP)都为软件设计、开发者提供了无法用金钱衡量的帮助。但是迄今为止XP大量关注于重构(refactoring),而对模式只字不提。在这篇文章中,我问“为什么”,并且最终描述出模式怎样以XP的方式更好地实现、以及XP怎样因为包含对模式的使用而变得更好。
极端编程是一种以简单性、交流、反馈和勇气为基本宗旨的开发纪律。它的做法是以有效的实践规则将整个团队紧密联系起来,通过充分的反馈使团队能随时知道自己目前的状况和恰当地调节实践规则以适应自己的特殊情况。
极限编程(XP) 是一个周密而严谨的软件开发流程。大约五年前,通过在一些对费用控制严格的公司中的使用,它已经证明了它自己。这些公司有Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler, First Union National Bank, Ford Motor Company和UBS。
学生以团队进行开发常常遇到的一个问题便是不知道如何组织一个团队进行工作,不知道如何分工合作,以及如何开始一个项目。目前国内外用于中小型项目的方法多采用敏捷的开发方法,而其中用得较多的是XP(eXtreme Programming)方法。
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 在国内的应用情况。
我们真正的收获在"蜜月"期后,关于我们如何在一年半中管理一个50人的项目开发并及时完成阶段性的提交(尽管有时并不成功),关于我们经历的痛苦,我们后续的工作,我们最终学到的以及作为改进要用到下一个项目中的经验。
某些 XP 实践让项目经理感到可笑,而让程序员畏缩。结对编程(或结对)就是其中一种。根据一些 XP 评论家的反馈,结对编程获得了“最可能令人不快的方法”的“奖项”— 也就是说,如果您不得不给它一个头衔的话。本月,XP 专家 Roy Miller 讨论了这种编写代码的基本方法,包括对于结对的误解、为什么那么多软件开发人员都讨厌它以及为什么它对项目的成功是如此重要。请在本文的论坛中与作者和其他读者分享您对本文的看法。
在本文中,我们把极限编程(eXtreme Programming,XP)和敏捷联盟(Agile Alliance)里的一些合适的原则拿来,应用在建模领域。本文覆盖了敏捷联盟和XP的12条原则,并展示了它们是怎样适用于系统建模的,尤其是高可靠性(high-assurance)的系统。
极限编程(Extreme Programming,XP)简单地讲是一些相互关联的准则和惯例的集合,其中一些关注的是基本的活动,比如配置管理,但其中大多数关注的是团队成员之间以及团队与应用系统的企业团体之间的交流通信和文化方面的相关问题。XP建议采用循环迭代开发方法。
作为合适于高速变化的网络和Web软件开发的编程方法,极限编程(XP)正在被广为提倡。本文从CMM(CMM是一个描述软件开发过程及改进级别的五层模型)的角度,对这个流行的方法学进行了检视。
螺旋、迭代、增量,不同的名词代表了同样的含义-分阶段开发软件。众多的方法学都采用了这种思路设计软件过程。但是在实践中,更多时候,分阶段开发软件带来的是痛苦。看来,我们常常被书中优美的叙述所迷惑,却没有真正想过实施中的难题。那么,如何管理分阶段的软件开发呢?如何应对现实中的难题呢?
XP作为敏捷方法的一种,拥有很多优秀的实践,用好这些实践,在软件组织中能够起到很好的效果。问题在于,要用好这些实践并不简单,本系列文章的目标就是围绕着 XP 的实践,讨论隐藏在实践内部的敏捷性实质,研究如何灵活的应用 XP 的实践,从而达到改进软件过程的目的。
如何分析需求,如何记录需求,如何将需求映射为设计,这些永远是需求分析中最为重要的问题。XP提倡以一种简单实用的态度来对待需求,而在软件开发的历史中,需求分析从来都是最需要严谨对待的工作流程。究竟谁是对的?
XP在很多方面都和我们传统意义上得软件工程不同,同时,它也和传统得管理和项目计划得方法不同。这些方法在软件工程和其他管理活动中都有借鉴意义。