为什么软件预算经常会改变和膨胀

作为一名软件开发人员(抑或架构师?),我发现我总是在不断地与客户和项目经理讨论预算的不准,以及需要改预算。我已经数不清有多少次在我给出预算 之后,又不得不因为一些看似细微的变化却最终导致出现了bug而修改预算。有许多变量都会增加预算的风险,下面我将简要谈谈一些主要因素。

https://yqfile.alicdn.com/006191022844e15772199436a2bd3c30d0ea3e69.png" >

主要因素是:

  • 不断变化的需求/前提条件——告诉你一个基本事实是,任何改变都会导致成本的增加。哪怕是删除需求的行为也是需要改设计的……记住,即使是简化设计也是工作。
  • 改变团队结构——经验丰富的开发人员总是比新手的效率更高。而深谙某种特定解决方案的人又比经验丰富却并不熟悉现有代码的人要来得高效。对于一支并不清楚的团队,想要精确预算是很难的,而且往往会导致更高的预算膨胀的风险。
  • 合理安排时间——如果你给开发人员40个小时去完成任务,那么他们至少用的时间就是40个小时。因为哪怕看上去似乎是一个非常简单的任务,他们也会额外花费时间用于分析、测试,以及干点别的方面的事情来耗用这些时间,即使他们原本有能力完全可以在4小时之内搞定任务。
  • 预算仅仅只是个开始——告诉你一个残酷的事实就是,对于那些不平凡的软件,预算只是个开始,后期会随着可用信息的增加而变化。在没有获得更多的信息之时你分析得越多,基于错误信息而得出的预算结果与事实的差距也就越大(尤其是当它还涉及上面几个因素的时候)。

简单地说就是,“所有的软件开发都是设计”。任何变化的发生都会改变设计,衍生更多的工作量。敏捷理论的支持者意识到这一点(也可能是潜意识的)之后,通过锁定设计时间来帮助推动事情的发展(至实际交付)来解决这一问题。漫长的设计周期,往往会导致不为人知的额外工作量。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-07-30 06:30:56

为什么软件预算经常会改变和膨胀的相关文章

vs2010-在 用VS2010中,创建画图软件,用鼠标改变所画图形大小

问题描述 在 用VS2010中,创建画图软件,用鼠标改变所画图形大小 用vs2010做了一个程序可以实现画图,其中可以画矩形圆等,现在想用鼠标实现对所画出的矩形圆等改变大小,希望可以帮忙提供以下思路,最好可以是源代码.

OpenStack温哥华峰会首日——科技推动世界,软件改变生活

又是一届OpenStack Summit开幕了,Keynote第一天,OpenStack 基金会执行官Jonathan Bryce在美丽的加拿大温哥华欢迎全球 6000名开发者的到来,这次峰会,有超过500个主题演讲,有精心布置的marketplace大卖场,有结合了运维与开发的决定OpenStack发展的设计峰会,Jonathan相信这短短的一周时间,对于每一个OpenStacker将是非常有意义和有收获的,最后,Jonathan还回顾了过去一个开发周期中OpenStack社区发生的大事件.

《善用佳软:高效能人士的软件应用之道》一2.5 PDF:跨平台文档解决方案

2.5 PDF:跨平台文档解决方案 善用佳软:高效能人士的软件应用之道 2.5.1 全面接触PDF:最好用的PDF软件汇总1 本节旨在介绍最实用的.以免费软件为主的PDF相关工具,同时消除对PDF的常见误解,较为系统地介绍PDF应用操作,包括PDF虚拟打印机.格式转换.阅读及注释.属性及页面编辑.图文编辑等. 1.关于PDF及本节内容的一些基本说明 (1)关于PDF. 什么是PDF?PDF是由Adobe公司发明的文件格式,是Portable Document Format的缩写,意为"便携文档格

阿里云联合百家软件厂商发“金盾宣言”

本文讲的是阿里云联合百家软件厂商发"金盾宣言"[IT168 云计算]6月27日,阿里云旗下软件交易与交付第一平台--云市场联合用友畅捷通.东软.驻云.数梦.安恒等上百家知名软件服务商,共同发布金盾宣言,为云市场用户提供"不满意退款"."全程担保交易"."软件交付全程监管"."6道关卡筛选优质商家与商品"等四个100%承诺,开启了软件行业的体验式购物时代. "服务"诟病多 完善服务体系刻不

《系统分析与设计方法及实践》一2.4 软件过程模型

2.4 软件过程模型 软件过程是整个软件生命周期中一系列有序的软件生产活动的流程.为了能高效地开发一个高质量的软件产品,通常把软件生命周期中各项开发活动的流程用一个合理的框架--开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型.所以,软件过程模型是一种软件过程的抽象表示法,"建模"是软件过程中最常使用的技术手段之一.软件过程模型是从一个特定的角度表现一个过程,一般使用直观的图形标识软件开发的过程,主要根据软件的类型.规模,特别是软件的开发方法.开发环境等多种因素确立过程

《系统分析与设计方法及实践》一1.1 什么是软件

1.1 什么是软件 软件分析与设计的主旨是以工程化的思想进行软件开发,以便生产出高质量和高效率的软件系统,即软件分析与设计研究的基础就是软件.那么,软件是怎么定义的呢?它有哪些特性呢? 1.1.1 软件定义与特性 软件是计算机系统中与硬件系统相对应的部分,包括一系列程序.数据及其相关文档的集合.在这里,程序是按照特定顺序组织的计算机数据和指令的集合:数据是使程序能正常执行的数据结构:文档是与程序开发.维护和使用有关的图文资料.软件系统的核心是程序,而文档则是软件系统不可分割的组成部分. 要理解软

Gartner:四大关键因素正在变革安全软件市场

据Gartner称,四大关键发展正在推动着安全软件市场经历巨大变革:使用高级分析.扩展的生态系统.采用软件即服务和管理服务,以及惩罚性法规的前景,这些都导致企业重新考虑他们的安全和风险管理软件要求及投资.   Gartner首席研究分析师Deborah Kish表示:"由于向基于云的数字业务和技术模式的快速转型,使得整个安全市场正在经历颠覆期,这种转型正在改变风险及安全功能在企业组织内提供价值的方式.与此同时,威胁形式以及影响力较大的安全事件也助推了对安全技术及提供更高效率的创新的需求.&quo

软件下载站如何应对迅雷的P2SP流量

中国用户在使用众多类型的下载软件中,使用迅雷软件的用户一定会对迅雷的下载速度印象深刻,普通ADSL线路下,大多数软件或者电影都能达到数百K的下载速度,即使相对冷门的软件也不例外,下载体验远远优于先前流行的P2P下载软件. 迅雷软件的下载机理 从原理上讲,P2P(Peer to Peer)是基于点对点(对等网络),一端的下载速度和另一端的上传速度密切相关,由于中国用户大多使用ADSL上网,ADSL的上传速度并不快,仅几十K速度,一些用户还会人为限制上传速度,这导致了P2P方式的上传带宽资源的缺乏,

布线管理软件在布线管理中的作用有哪些

综合布线系统在中国已有超过10年的历史,布线工程经过10年的发展已日益成熟,传输介质的性能不断提升,布线规模也越来越庞大,但布线系统的管理却常被忽略.我们知道综合布线的灵活性使得用户可以在系统维护中任意增减或者跳接,改变网络连接,而布线系统是影响网络故障的重要原因,但大部分的网络故障是由于跳线的不明确,导致整个网络的不可靠或瘫痪,在规模庞大的布线系统中更是如此.如今网络用户变化很快,所以根据用户的不同需求能进行随时的改变和调整,这对管理人员的要求会很严格.但布线管理软件的作用要远远超过用"WOR