技术开发 频道

重访“XP精华”,第1部分

【IT168 技术文章】

    使用 Java 语言所进行的面向对象编程变得空前普及。它使软件开发发生了某种程度的变革。但最近的研究表明,有半数软件开发项目滞后,而三分之一的项目超出了预算。问题不在于技术;而是开发软件所使用的方法。所谓的“灵活”方法,与诸如 Java 之类的面向对象语言的能力和灵活性结合在一起,或许刚好就是答案。最流行的灵活方法称作极端编程(Extreme Programming),或简称 XP,但许多人并不真正了解它。对软件开发项目使用 XP 可以大大提高成功的机会。由 Roy Miller 撰写的这个新专栏从重访他受欢迎的文章“XP 精华”开始,将消除谣言和误解,帮助您理解 XP,并解释为什么它这么重要。

    自从我和 Chris Collins 共同编写“XP distilled”以来已有一年了,那以后发生了很大的变化。极端编程(XP)有些成熟了,而且与以前相比,更多人在他们的组织中实现它。尽管 XP 得到了发展并由此产生了各种议论,但对于 XP 是什么和不是什么还是有许多混淆和争论。不必惊讶,甚至微软也把其最新的操作系统贴上“Windows XP”的标签,这更增加了人们的疑惑。

    我从事软件行业中的某些工作已有大约十年了。在此期间,我从未看到或使用过象 XP 那样令我兴奋的软件开发方法。我相信这是一种自然的编程方法 — 当人们开始使用时,可能并不是每个人都能感觉到自然。但如果有机会使用它,您就会惊讶于您以前怎么会使用任何其它方法进行工作的。

    当然,XP 并不是开发优秀软件的唯一方法,但我深信两点:

    . XP 运用到实践中的原则是正确的原则。

    . 我从未使用过象 XP 那样将软件开发的所有部分结合起来的软件开发方法。

    所以,如果您还不了解它,那么我将怀着极大的热情介绍 XP。最后,我希望您也会被它所吸引 — 但并不是因为高明的市场营销。我认为让其他人信服 XP 的非常好的方法是据实演示 XP,然后让他们自己决定 XP 方法是否比他们正使用的方法更好。

    业务问题

    在发表“XP 精华”的那一年,企业管理面临的最大问题(IT 业内和业外)一直未改变过:企业领导人如何利用他们的 IT 资产和能力获得竞争优势?在许多情况下,我们讨论的这些“资产和能力”与软件和开发软件有关。那是问题的症结所在。

    50 多年来程序员一直在艰苦地编写代码。这期间,写出的代码“堆积如山” — 有些很好,但大多数很糟糕。平均起来很糟糕的原因很简单:传统的软件开发方法会导致项目的失败。最糟糕的是拥有满腔热情、努力工作的优秀人员看到他们大量的项目都失败了。在“XP 精华”中,我们给出了有关项目成功的一些数字。图 1 显示了 2000 Group CHAOS Report 中更新的一些数字。(顺便提一下,我的编辑问我是否介意定义一下“CHAOS”。我回答说,我不会介意,但 Standish Group 拒绝透露缩写词的含义。正如我告诉编辑的那样 — 不,我没骗您。您可以在参考资料的 Keeping CHAOS quiet 中读到有关的介绍。)

    图 1. 软件项目过去和现在的成功和失败

    


    我在一本软件杂志的文章中第一次看到与此类似的图。作者将该图称作“项目显示稳步的提高(Projects Show Steady Improvement)”,而且他们说明,1994 年只有 16% 的项目成功了,而在 2000 年有 28% 的项目成功了。尽管 28% 当然要比 16% 好,但是结果还是非常糟糕的。正如我以前说过的,如果您使用标准软件开发方法,那么即使开发 Java 应用程序,也要做好失望的准备。尽管自 1994 第一次发布 CHAOS Report 以来,已有了一些提高,但几乎四分之三的项目还是失败了。难怪公司领导人不愿在软件项目上进行投资。

    为什么这些数字这么糟糕?有多少人问此问题,可能就有多少种观点,但我认为有几个主要原因:

    . 人们不相信他们有问题。

    . 人们知道有问题,但是担心采用其它方法来解决此问题可能会带来风险。

    . 人们知道有问题,也愿意设法解决它,但误解了设法解决的问题。

    . 人们知道有问题,愿意设法解决它,也理解该问题,但受现状约束。

    让我们简要讨论这三个原因。

    不相信他们有问题

    人们总是喜欢自欺欺人。公司和项目的领导人也不例外。软件开发项目正逐渐消耗着企业资产,而每个人还确信一切进展顺利 — 或至少它们看上去如此,这是非常可能的。我在前面提到的数字已很明显地指出组织中的软件开发不顺利。当然也有例外,但许多组织对他们自己存在的问题一片茫然。

    在您的组织中,IT 团队和“业务人员”之间的关系是否很僵?组织中的企业领导人是否说过这样的话:“如果技术真的是这样好的话,为什么我从 IT 团队听到的只是‘不’呢?”如果是这样,那么您就有问题要解决了。如果您不解决,那么“惯性”或许会使您可以暂时继续工作,但失败已隐约可见了。

    知道存在问题,但担心解决它会带来风险

    更为常见的是,组织中有才能和观察敏锐的人意识到他们目前的软件开发方法不起作用。他们只是担心尝试采用使情况好转的其它方法可能会带来风险。这可以理解。尝试新事物需要勇气,而且通常要冒一些风险。而在我们急功近利的文化中,对您的职业生涯来说,失败会产生不利影响,或者甚至是致命的。

    由于成功的机会渺茫,大多数人就采用阻力最小的捷径。这种方法在短期内可能会保护所从事的工作,但它仅仅推迟了问题的出现,并使之更复杂。如果等待时间太长,小的问题也会变得难以克服。最终将没有方法激励人们变得勇敢,去冒更多风险,但本专栏及相关论坛中的思想可能帮助您使组织中的人(包括您自己)战胜对失败的恐惧。

0
相关文章