【IT168 分析评论】
节选自Walker Royce的白皮书《Improving Software Economics》,2009年5月
在当前全球经济形势下,企业越来越需要依靠高效软件交付,为市场提供具有更高经济效益的软件。通过数十年的软件开发非常好的实践研究,我们认识到,软件生产不仅是一项高技术含量的工作,更是一项需要考虑成本因素的复杂工作。
一直以来,软件项目的日常决策都会受到价值评判、成本权衡、人力因素、宏观经济趋势、技术趋势、市场形势和时机等传统经济因素的制约。软件项目活动很少涉及数字、材料属性、物理法则或已有的成熟工程模型等工程技术因素。"软件经济"与"软件工程"之间的主要差异在于处于开发中的产品固有的不确定性因素数量。正确处理不确定性应以当前的非常好的实践作为基础;我们的经验表明,能否减少不确定因素是决定软件实践是否出色的关键。
大多数需要仰仗软件提供业务支持的企事业单位正在努力将其生命周期模式从"以开发为中心"的模式转变为"以交付为中心"的模式。"开发"和"交付"这两个词的微妙差异,象征着管理理念和治理模式的重大变革。换而言之,以"软件开发"为导向注重的是在开发过程中涉及的多种活动,而以"软件交付"为导向则侧重于开发过程的最终结果。成功实现这一转变的企业(据我们统计,这样的企业已达企业总数的30-40%)均承认--在大多数软件密集型工作中,经济因素已然抢占了技术的主导地位。
软件开发:工程技术主导型 | 软件交付:经济因素主导型 |
区分出不同开发阶段 | 持续改进的系统 |
区分开发团队到维护团队 | 适用于开发和维护工作的常用流程、平台和团队 |
一系列分明的、按顺序进行的工作:从要求、设计到代码,再到测试、运营 | 一系列价值不断提升的可用功能 |
针对各阶段和角色的流程和工具 | 包含集成工具和流程的协作平台 |
并列团队 | 遍布全球各地的基于Web的协作 |
尽早完善计划和要求 | 随着不确定性的消除而不断提高的准确度 |
通过测量生产情况和活动完成情况实现治理 | 通过测量增量成果和流程/质量趋势实现治理 |
工程规范:准确制定全部要求/计划,随后追踪静态计划的进度和范围 | 经济规范:减少不确定性,管理变量,衡量趋势,通过持续不断的目标协商实施调整和控制 |