阅读更多

0顶
0踩

非技术

转载新闻 为什么软件预算会改变和膨胀

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



主要因素是:

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

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

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

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

    ),我发现我总是在不断地与客户和项目经理讨论预算的不准,以及需要改预算。我已经数不清有多少次在我给出预算 之后,又不得不因为一些看似细微的变化却最终导致出现了bug而修改预算。有许多变量都会增加预算的风险...

  • 软件工程导论(一)软件工程概论

    采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并维护它2.1问题定义问题定义:弄清用户要解决什么问题...

  • 软件工程概述

    超详细软件工程笔记总结

  • 软件工程期末考试速成笔记

    软件危机包含两方面内容: 1、如何开发软件,以满足对软件日益增长的需求 2、如何维护数量不断膨胀的已有软件 (2)软件危机的表现 对软件开发成本和进度估算不准确 用户对已完成软件不满意 软件质量不可靠 软件不...

  • 【软件工程导论】期末复习试题集

    软件测试和调试的区别是什么?5. 说明软件维护的过程6. 什么是软件危机?产生软件危机的原因?怎样消除?7. 软件开发模型有几种?各有什么特点?8. 软件测试有几种方法?每种方法的特点是什么?9. 什么是软件的可...

  • 面向对象软件工程-学习笔记

    2.软件工程:是以质量为核心,为了经济的开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的和可控制的工程原则、方法,设计软件过程、项目管理、开发方法、开发工具,甚至

  • 软件工程总复习笔记

    软件需求是对系统或系统组件的功能和性能的描述,用户希望系统实现的期望结果。软件需求就像是用户对软件提出的要求清单,包括软件应该实现的功能和达到的性能水平。业务需求(Business Requirements):反映了组织...

  • 软件工程第一章

    软件工程复习笔记——第一章(红本书)

  • 软件工程导论

    软件危机的定义:软件危机是在计算机开发和维护过程中所遇到的一系列的严重问题,主要包含两个方面如何开发软件,以满足日益增长的软件需求如何维护软件数量不断膨胀的已有软件软件危机的表现:对软件开发成本和进度...

  • 湖科大 2022大三上 软件工程复习资料

    湖科大 2022大三上 非软件工程专业《软件工程》课程复习资料

  • 【软件工程导论】软件工程学概述

    软件工程学概述(上) 一、软件危机 1.1 计算机系统的发展阶段 1.2 软件危机的介绍 1.3 软件危机典型表现 1.4 产生软件危机的原因 1.5 消除软件危机的途径 二、软件工程 2.1 软件工程的定义 2.2 软件工程的本质特性 ...

  • 软件测试入门基础知识1

    什么是软件 1. 软件的定义 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据和文档的完整集合。 2. 软件与程序的区别(软件=程序+数据+文档) 程序:是使程序能够完成预定功能和性能的可执行的指令...

  • 软件工程复习题

    传统软件架构的优点在于预见性和系统性,能在正式开发前预见软件的功能需求和非功能需求,最大的特点是重视文档和结构明显,主张固定的流水开发,很难响应客户需求的变化,难以保证开发的灵活性。 ​ 原文链接:...

  • 【软件工程】第一章 软件工程概述 考试重点 复习记录

    ​ 随着计算机应用的日益普及,软件的数量也开始急剧膨胀。在程序运行时发现的错误必须设法改正; 用户有了新的需求时必须相应地修改程序; 硬件或操作系统更新时,通常需要修改程序以适应新的环境上述种种软件维护...

  • 软件工程期末总结

    它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 多态 指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或

  • 明天我们该如何为软件付费?

    软件服务化、多核处理器以及虚拟化的...通常用户是被迫接受软件供应商销售软件的方式的,而事实上,用户并不愿意这样,最近美国Aberdeen咨询公司的调查研究结果显示,只有28%的企业对软件供应商的定价和授权方式表...

  • 软件工程考研笔试面试题名词解释、概念总结

    软件概要设计:进入了设计阶段,要把软件“做什么”的逻辑模型变换为怎么做的物理模型,即着手实现软件的需求,并将设计的结果反应在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程...

  • 软件工程

    软件工程——原理、方法与应用(学习笔记)

  • 为什么要使用前端框架以及如何选择

    在本章节我们开始大致了解框架, 简要回顾JavaScript和框架的历史,为什么框架会存在以及它们提供了什么, 如何开始考虑选择一个框架并学习, 以及对于客户端框架还有什么替代方案. 先决条件: 熟悉 HTML, CSS, 以及...

  • 【SEU&SE】软件测试及应用课程笔记

    【SEU&SE】软件测试及应用课程笔记README0. 课程前言0.1. 软件测试的地位0.2.... 为什么会出现软件缺陷1.1.4. 软件测试的意义1.1.5. 软件测试的发展(了解)1.1.6. 软件测试基本概念UNIT-2UN...

Global site tag (gtag.js) - Google Analytics