技术开发 频道

超越工程思维 经济学视野洞察软件开发

【IT168 专稿】

    这场金融危机,将我们真正带到全球化经济面前,真切感受到它的魔力。与此同时,一个新的名词也悄然出现在我们的视野——软件经济学。

    看到这里,我希望有人会跳出来大声说:这可不是一个新名词。很好,作为技术人员,我们不再深埋于代码,与技术相关的交叉学科,诸如管理、经济多少有所耳闻。没错,三十多年前,软件经济学的研究就已在国外兴起,更准确的名称是软件工程经济学,以Boehm提出的结构化成本模型—COCOMO为典型代表。

    而今天所谈的软件经济学则明显有别于此前的软件工程经济学。首先,从名称上很容易发现,软件经济学更为强调经济意义而摒弃了工程概念。软件开发是最典型的规模不经济,也就是说一个项目不是投入的人力越多产出就越高,进度就越快的。相反,如《人月神话》所述,项目焦头烂额,第一反应是加人,但是新进人员两眼一抹黑,对于项目什么都不知道,需求看不明白,分析找不找北,设计不知如何统一,编码不知规范,还需占用其他人月对其培训,显然其带来的经济效应正好是相反的。因此,从经济学角度研究如何有效利用资源,提高经济效益,研究各种技术在使用过程中如何以最小的投入获得预期产出;如何用最低的生命周期成本实现产品以及服务的必要功能,是必须的。

    但是,和任何一项经济活动相同,软件开发的目的是交付产品,创造价值。为了能够获得更多的价值而去进行更科学地开发设计,是软件经济学的目标。而现存的软件工程知识体系过多地关注软件技术细节,对技术标准和价值创造之间的关系并未给予重视和明确说明。因此,提出“软件经济学”思想的Walker Royce认为,传统软件工程学已经不再适应现在的软件开发,或者说这一来源于其他行业的工程概念其实从来也没有适应过软件开发。

    从“软件开发”到“软件交付”

    不知你是否已经注意到,越来越多的团队开始使用“软件交付”(software delivery)来代替“软件开发”(software development)。从开发到交付的微妙差异,象征着管理理念的重大变革——从关注项目过程到关注项目目标——完成交付结果的开发活动。换而言之,以“软件开发”为导向注重的是在开发过程中涉及的多种活动,而以“软件交付”为导向则侧重于开发过程的最终结果。

    据统计,已有30~40%的企业成功将其生命周期模式从“以开发为中心”的模式转变为“以交付为中心”的模式。基于结果的软件管理,最终目标是使用有限的资源达到更好的结果,经济因素已然抢占技术的主导地位。

    为了实现成功交付,需要考虑成本、质量、时间、流程、人力等多方面因素,而正确的处理并减少软件开发中的不确定性因素是开发实践是否出色的关键。而软件工程不适应软件开发的原因也在于此——源自传统行业的工程管理理念无法解决软件开发这一服务产业灵活多变的特点,以至传统工程原则无法再为软件开发企业带来更多竞争优势。而软件经济学则以经济原则为支撑,提高软件交付的灵活性。

0
相关文章