问题标签 [software-estimation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
duration - 软件估计速度和准确性
假设您有一个项目将涉及两个 Web 应用程序(将共享 DAL/DAO/BO 程序集和一些 OSS 库):
- 一个半复杂的管理应用程序,使用 Windows Live ID 进行身份验证,还能够与各种通知服务(电子邮件、短信、推特等)进行通信,目标通知约占功能的 10%
- 一个低到半复杂的用户应用程序,功能较少但更健壮,也使用 Windows Live ID 进行身份验证
我们中有两个人具有中等估计能力,即使我们想要/必须这样做,我们也无法在两天内完成。至少这将是一个遥远的估计。
问题
- 您通常需要多长时间才能做出可靠/有价值的估计?
- 您建议在不牺牲准确性的情况下加快估算速度?
- 根据估算速度,您会增加多少松弛(在成本/时间方面)(当您说:我可以估算更多一点,因为我认为它仍然很差)
project-management - 如何在稀缺的规范项目中竞争以避免团队死亡行军
我正在估算一个半复杂的软件解决方案的时间+成本,它对大约 75% 的功能没有具体要求。我仍然想通过从客户那里获取更多数据来做出尽可能好的估计。由于与其他产品/技术存在太多依赖关系并且缺乏定义,因此仍有部分可能最终无法开发。我也有一个非常紧迫的时间表来产生这个估计。
该项目还将有其他竞争者。客户期望价格+持续时间(可能还有功能),我知道每个人都会离开。我知道这是不可能的,但请告诉营销人员。另一个问题是我正在与中间人交谈,而不是直接与客户交谈。我只能从中间人那里获得信心,但不能从决定性的客户那里获得信心。这完全是一个不同的问题。
我可以在我的价格计划/合同中加入哪些免责声明/信息,以免破坏该项目的团队,所以当项目开始下滑(在成本/时间/功能方面)时,我们将获得某种付款。我当然希望按时间通过冲刺或发布来获得报酬,但我怀疑客户是否会相信这一点。我确信我们可以在截止日期前完成这个产品,也可以创造一个伟大的产品,但我怎样才能说服客户相信我呢?
问题
我能做些什么来获得这个项目并同时避免死亡行军的情况?
欢迎任何建议!
编辑:结果
最后,我们(我和我的同事)说服客户我们至少需要一周的时间来评估产品。所以我们做到了。我们还推动(并获得)与客户会面几个小时的空档,以澄清任何未解决的需求问题。所以我们做到了。会议是在我们做出第一份估算草案后完成的,所以我们确信我们有所有的问题可以指出被完全误解或过于模糊而无法估算的细节。我希望我们能得到这个项目,因为这对我们来说意味着 8 个月的全职工作,加上合理的报酬。我们会在大约一个半星期后知道。
当然,我还指出,我们提供该产品的方式将使他们准确地到达他们想要的位置,并提供他们真正想要的产品。此外,我们只承诺价格和时间,但不承诺功能,因为它会发生变化并且将会发生变化。我认为我们给人留下了足够好的印象。
software-estimation - 软件开发项目中的成本估算,功能点?
我有一个关于使用功能点进行成本估算的快速问题。
我们正在为一家小公司做一个小型(课程项目)项目,当然它是免费的。我们的讲师希望我们使用功能点提供项目的成本估算。
计算功能点有点直接(有点)。
我们现在的问题是推导其他值(指标),例如项目持续时间的长度、每个功能点的项目成本率。
显然,我们没有历史数据可以作为我们估计的依据。每个功能点是否有某种“典型”成本,我们可以在那里遵循?请帮忙。
software-estimation - 如何估计个人对软件项目的贡献?
我从事一个软件项目,并想估计我在软件开发中投入的总贡献的百分比。有什么工具可以做到这一点吗?例如,这样的工具可用于评估或谈判。毕竟,我们为钱而工作(是的,不仅仅是钱,重点仍然存在)。我认为最重要的事情已经足够挥手了。
估计是非常主观的(至少现在对我来说),但我不知道有任何工具甚至可以提供主观估计。我知道 Sloccount 使用代码行说明了总工作量,但不是基于每个开发人员。
我对此目的的理想工具的想法是:
- 衡量代码的复杂度(越复杂就是越努力,但越努力不一定贡献越大)
- 衡量软件的可分解性/灵活性(可分解性越多越好)
- 使用了多少库代码——使用库代码加快了开发过程,增加了相关风险,并要求开发人员从以前了解或了解库。
- 足够聪明地区分“谁编写了代码”、“谁复制了代码”和“谁缩进了代码”。
很难区分实现的复杂性和问题的内在复杂性。如果有的话,也许可以与等效的开源对应物进行比较,或者单独对每个子模块进行比较。
如果没有这样的工具,那么拥有这样的工具就没有优点吗?还是您相信“我工作,我不测量”?毕竟这需要时间。也许项目经理应该连续进行这种估算,比如每周一次。有什么标准吗?是的,标准化很困难,因为每个项目都有不同的目标,但这也许意味着应该有多个标准,而不是根本没有标准。这看起来类似于公司在市场上的估值。
更新:在看到一些初步答案后:想象一个只输出百分比的工具是没有意义的。是否有工具可以帮助人类(尤其是管理者)做出更好的决策?或者什么是做出更好决策的充分统计数据?这些统计数据可用吗?
estimation - 如何估算开源项目的任务规模?
一个开源项目的规模和我在办公室做的项目完全不同。工作是在业余时间完成的,可能不会实现的志愿工作,个人发展资源,而不是公司等。
显然,栗子“做最小的事情”适用,但除此之外,是否有任何更正式的方法来估计开源项目的适当大小,例如,表格的数量、网页的数量,或者——天堂禁止--功能点计数?
哪些估算工具最适合此类项目?
software-estimation - 当有高薪工具可用时,为什么人们要花这么多时间搜索和使用“免费”工具集?
澄清:我指的是专业支付开发人员费用的公司。我理解为什么“爱好”或“为了好玩”的开发人员不想(或买不起)功能齐全的付费工具,并且可能更喜欢修补。我说的是开发人员/公司的最后期限迫在眉睫的情况,开发时间偏离了追求“免费”工具的目标,以完成付费用户可以做的事情。
我最近注意到了一些 Stack Overflow 问题(它们不是新问题,我最近才注意到),人们正在寻找流行开发工具的免费替代品,例如ALM、数据库比较和其他功能有一个非常昂贵的支付选择。Stack Overflow 上的“免费”标签有 350 个问题,没过多久就看到几十个“有没有免费的工具来做 X?”的例子。其次是必须花费询问者数小时来研究和参与的讨论。
这不仅仅是少付钱——我经常惊讶于一些开发人员(或者,更准确地说,他们的公司)为了避免支付某些东西而采取的种种做法——在某些情况下,会避免支付解决方案,而有利于一个文档记录不佳、漏洞百出、功能不完整的开源解决方案,导致数十小时的工作本可以避免。
我理解最明显的原因:
- 公司现金短缺
- 当(功能相当的)免费替代品可用时,不要为某些东西付费
- “爱好”开发人员没有多余的现金,而且由于他们只是在学习,因此为他们只是在修补的工具集付费是没有意义的
然而,我认为“现金短缺”的推理完全是假的——作为一名刚毕业不久的开发人员,我每年赚大约 5 万美元,或每天 200 美元(这意味着我的公司可能每天支付近 300 美元让我加入我的椅子,都考虑过)。当您将该价格与 300 美元的工具进行比较时,显而易见的答案是“如果它会浪费您一天以上的时间,您应该购买它并重新开始工作”。然而,这不是我观察到的——人们似乎愿意花费数十个小时来避免支付仅花费 50 美元的东西。
帮助我理解——作为一名开发者自己,我想有一天会出售工具,我想了解这种心态。在一家不怕花钱的公司工作,我是否被宠坏了?开发人员(或他们的公司)不想花钱是否有根深蒂固的原因?人们不能根据生产力损失准确估计“免费”工具的成本吗?
我指的不是有很好的免费替代品的情况。例如,这些工具中的任何一个都是您不应该付费的一个很好的例子。但是,假设其中一个缺少您需要的关键功能,并且同一库的付费版本提供了该功能-人们似乎倾向于使用免费版本来添加所需的功能(或在所需功能中添加脚手架)放弃免费工具以支持付费(和功能完整)版本。我并不是说这是错误的选择,但这只是我想了解其推理的选择。重要的一点是我想——我的意图不是争论。
javascript - 在新的 IE 8 浏览器上运行旧的 java web 应用程序时有什么严重的问题吗?
我需要对项目进行快速估计(不确定我们得到了):这是一个旧的银行 CMS java web 应用程序,但 UI 旨在接近 winform 样式:
- 服务器:jdk5,weblogic 9(JSP 1.x),只使用weblogic内部servlet(不是strut...)。
- 客户端:winXP、Ie6。
它的设计仅适用于 ie6,但现在我们需要让它在新客户端上也能正常运行:ie8,ie7 在 win7 上。
我理解最大的区别是客户端:DOM 和 CSS。
但是我的问题是我们没有使用ie8,我没有足够的时间来构建测试环境,因为我们的开发环境还没有准备好进行测试(它完全远程,并且由另一个合作伙伴管理)
欢迎任何有助于我权衡此任务需求的经验或建议。
编辑:HTML、CSS 已经过时了,根本不能在 firefox 上运行,JS 几乎是程序,没有 ajax,没有插件。
客户端 PC 仅限于银行和内部使用(用户不应更改配置或选择浏览器)
使用 activeX 操作打印机和创建报告(增加应对安全问题的能力)
software-estimation - 有哪些软件成本估算方法和模型?
我正在和我的几个同事一起对软件成本估算模型和方法进行一些研究,我只是想知道你们是否知道除了下面列出的那些之外的任何具体内容。谢谢!
楷模:
- 计划游戏
- COCOMO / COCOMO II
- 苗条的
- SEER-SEM
- 加权微功能点
- 计划评审技术
- 价格系统
- 宽带德尔福
- 功能点分析
- 循证调度
方法:
- 专家判断法
- 类比法
- 参数/算法方法
- 自下而上/工作分解结构法
- 自上而下的方法
- 分析努力方法
- 基于代理的估计方法
programming-languages - 将应用程序从一种语言重写为另一种语言时,如何估计 SLOC 中的项目规模?
我记得在过去我发现了一些统计数据,这些统计数据表明基于 SLOC 和编程语言的程序的预期大小。
我想对在 Python 中重新实现一个假设 100k SLOC C++ 项目做一个粗略的估计。
有谁知道我在哪里可以找到这些号码?
estimation - 为什么我们在三点估计中将“最有可能的估计”乘以 4?
我在我的一个项目中使用了三点估计。公式是
这意味着,
这里
并且发生最坏情况或最好情况的可能性较小。真诚地,最有可能的估计 (M) 是完成工作所需要的。
但我不知道他们为什么使用 4(M)
. 为什么他们乘以 4 ???. 不使用 5,6,7 等...为什么最有可能的估计值four times
与其他两个值一样多?