将软件开发和价值创造联系起来,同时优化投资回报率。软件开发从本质上说是在创造价值,但是在现实中,各种应用软件往往难以交付客户所需要的商业价值。本书直接将软件开发和价值创造联系起来,有助于开发人员改变这种状况。通过学习本书,您将学会如何确定哪些特性能够增值,而哪些不能,并将整个开发过程的重点重新方到更快更多地交付价值的层面上。本书前言“您绝对应该写这本书!”这就是我的经理,StuStern,Sun公司专业服务中心副总经理对这本书的热情回应。这本书吸收了应用开发方法中的最新观点,并将这些方法主要应用于获取经济利益而不是技术利益。尽管我们在创造开发方法这一过程中作出了努力并取得了成功,但只有少数创业者认识到了利用这些技术使经济利益最大化的潜力。毕竟经济利益在软件开发中通常是成功的永久度量,至少在商界中是如此。本书采用了近几年来在赢得几个富有竞争性的系统集成和应用开发项目的合同方面的经验。虽然赢得这样的合同无疑是利用创新的方法在竞争中取胜,但是同样事关利润的获取。价格必然存在于用户的预算之中,那么投资者要想得到高额利润,就必须尽量降低开发成本,并且必须在应对风险时调整利润值。这些观点并无新意,它们对于任何竞争采购都是正确的。有关软件开发的不同之处是我们恰好学会了理解价值创造。最普遍的看法是软件开发要承担风险和损失。尽管如此,即使最顽固的反对风险的开发机构都会意识到软件开发会带来固有的价值。如果不能创造价值,就没有人会投资软件开发。遗憾的是,开发机构的所有创造热情和商业热情通常都集中于降低成本和风险。无论是在投标阶段还是在实际运作阶段都是如此。开发人员运用最新的软件方法,创立最新的项目管理策略,并且不断地发展风险缓解技术,主要只是为了实现一个目标:即控制成本。相反,大部分的运作过程对客户来说是不可见的,在这些范围内,客户很少参与作出重要项目决议的商讨。在20世纪90年代,我为东南亚某国政府做大规模的竞争性采购工作。这个项目的本质是,由于评估参数被紧紧地束缚住了,因此技术创新过程中的区别就很有限,我们得用另外一种不同的方法赢得竞争。最后我想到,如果我们对将价值返还给客户的时间进行优化,而不是仅仅关注控制风险和成本,也许能够提出一种与众不同的价值方案。于是,我们根据价值单元,对客户的要求进行重新分析和分类,最后发现我们确实可以调整开发次序,这样一来,与优化总成本相比,我们就可以更快地交付实际价值。同时,我们可以将成本分为更多可控部分来分期偿还,每一部分都与它的利润值有关。客户的介入是很有影响的。此方案能有效地降低借款底线和利息支出,便于产品更早地进入市场,并且依据经济前景创造一个更好的模式。商业银行需要重新计算项目经费数目,开发人员需要理解为什么我们明显要对用户的要求重新排序,当然,客户自身也要看到、理解并会计算这种方法带来的好处。在这段时间内发生了极不寻常的讨论。开发人员就投资利润的问题参与到与银行家的讨论中;项目经理将数据分析表与金融家和投资者进行交易;分析家根据“价值的转化”而不是根据功能效率来衡量此体系结构;在这个过程的结尾,不需要分别向客户做技术方面和经济方面的两种陈述,只需给出一种涵盖这两方面的陈述,包括这一组讨论所表现的所有方面。我们赢得了时间,赢得了业务!这就是渐进投资软件开发的起源,此后诞生了本书所要介绍的渐进投资方法(IFM,IncrementalFundingMethodology)。自然,这个方法要用几个月的时间才能产生效果。任何观点的酝酿都是一个不可预知的过程,在它产生作用之前谁都不清楚会发生什么。虽然渐进投资软件开发的观点已经初步显示出了一些成功的迹象,但是还需要更全面地加以证实。1999年末我受命负责SunMicrosystems公司的纽约“Java中心”。这个Java中心是Sun公司的全球Java咨询机构的一个实践,为客户提供体系结构和设计方面的的专业知识来解决在Java和J2EE中遇到的问题。很快我们就会看到,通过将最初的IFM观念写成应用软件开发工作的提议,就能够获得并成功交付几宗大合同,特别是有关金融产业的用户。然而,我们了解到渐进的投资和早期的价值发布严格依赖于需求本质和价值优化的重分配能力。需求工程本身就是一门学科。本书的宗旨是希望它能给开发人员、经理、商业主管和风险投资者的成功提供一定的帮助。如果它提供了一个所有开发机构都能用来交换观点的通用的专业词汇表,这些观点是以提高经济上的成功率,降低应用程序开发项目的风险为目的的,那么它就达到了它最主要的目标。可以进一步帮助读者的是,本书有一个相关网站http://www.softwarebynumbers.org,在这个网站上您可以得到更多的信息和可下载的工具来帮助您取得进步。我们相信您会发现本书的内容富有挑战性,能让读者轻松愉快地学习。我们欢迎您通过网站给我们发来反馈信息。祝愿您所有的软件项目都取得成功,并且有利可图。