在当前全球经济形势下,企业越来越需要依靠高效软件交付,为市场提供具有更高经济效益的软件。通过数十年的软件开发最佳实践研究,我们认识到,软件生产不仅是一项高技术含量的工作,更是一项需要考虑成本因素的复杂工作。
一直以来,软件项目的日常决策都会受到价值评判、成本权衡、人力因素、宏观经济趋势、技术趋势、市场形势和时机等传统经济因素的制约。软件项目活动很少涉及数字、材料属性、物理法则或已有的成熟工程模型等工程技术因素。"软件经济"与"软件工程"之间的主要差异在于处于开发中的产品固有的不确定性因素数量。正确处理不确定性应以当前的最佳实践作为基础;我们的经验表明,能否减少不确定因素是决定软件实践是否出色的关键。
大多数需要仰仗软件提供业务支持的企事业单位正在努力将其生命周期模式从"以开发为中心"的模式转变为"以交付为中心"的模式。"开发"和"交付"这两个词的微妙差异,象征着管理理念和治理模式的重大变革。换而言之,以"软件开发"为导向注重的是在开发过程中涉及的多种活动,而以"软件交付"为导向则侧重于开发过程的最终结果。成功实现这一转变的企业(据我们统计,这样的企业已达企业总数的30-40%)均承认–在大多数软件密集型工作中,经济因素已然抢占了技术的主导地位。
软件开发:工程技术主导型 |
软件交付:经济因素主导型 |
区分出不同开发阶段 |
持续改进的系统 |
区分开发团队到维护团队
|
适用于开发和维护工作的常用流程、平台和团队 |
一系列分明的、按顺序进行的工作:从要求、设计到代码,再到测试、运营 |
一系列价值不断提升的可用功能 |
针对各阶段和角色的流程和工具 |
包含集成工具和流程的协作平台 |
并列团队 |
遍布全球各地的基于Web的协作 |
尽早完善计划和要求 |
随着不确定性的消除而不断提高的准确度 |
通过测量生产情况和活动完成情况实现治理 |
通过测量增量成果和流程/质量趋势实现治理 |
工程规范:准确制定全部要求/计划,随后追踪静态计划的进度和范围 |
经济规范:减少不确定性,管理变量,衡量趋势,通过持续不断的目标协商实施调整和控制 |
衡量软件经济性的四个要素是:
1. 复杂性。软件的复杂性一般通过产品数量及其质量来表示。采用源代码、功能点、用例点等方式可衡量和评估数量值。应用越简单、越易于操作,复杂性值便会越低。
2. 流程。流程指数一般在1.0到1.25的范围内,它可显示与所有利益相关方的利益息息相关的治理方法、技术、成熟度、契合性和有效度等情况。流程越高级,指数就越低。
3. 团队合作。这个参数表明团队的技能、经验、心理状态和知识掌握情况以及朝着共同目标协作迈进的能力。团队合作越有效,系数越低。
4. 工具。工具参数可指明流程自动化程度、流程实施情况、仪表化程度和团队同步性。工具越高级,系数越低。
在估算模型中这些参数之间的关系可以表示为:
软件开发成本 =(复杂性)(流程)×(团队协作)×(工具)
结论
1. 提高软件交付灵活性应以经济治理原则为支撑。随着软件交付日益成为大多数产品、系统和服务企业的一项主导性业务流程,在软件管理中应用传统工程原则无法再为企业带来更多竞争优势。
2. 我们拥有十项提高软件交付灵活性的领先原则,它们的共同点在于:认可"经济治理"方法能够减少不确定性因素和成本估算中的变量。
3. 要证实一家企业或一个项目是否已转而采用有效而敏捷的软件交付流程,可查看这个企业或项目的成本变化趋势。软件发布的可调整性可作为是否拥有持续减少不确定性因素和确保项目成功的关键指标。
4. 下一波提高软件经济性和可预测性的技术革新浪潮来自于为实现更优经济治理而提供支持的测量方法和工具领域。
IBM公司和Rational品牌将继续致力于投资研究、实践、测量方法、支持设备及工具,加深对软件经济治理实践的了解,从而帮助客户利用灵活的软件交付业务流程的优势提高业绩。