Questions tagged «estimation»

估计是寻找估计或近似值的过程,即使输入数据可能不完整,不确定或不稳定,该估计值也可用于某些目的。

17
当要求您做出估算时如何应对?
作为程序员,我们经常被问到“需要多长时间”? 而且,情况几乎总是这样: 要求不清楚。没有人对所有含义进行深入分析。 新功能可能会破坏您在代码中所做的一些假设,并且您立即开始考虑可能需要重构的所有内容。 您从过去的工作中还有其他事情要做,您将不得不做出一个将其他工作考虑在内的估算。 “完成”的定义可能尚不清楚:何时完成?就像刚刚完成编码一样是“完成”,还是像“用户正在使用它”那样是“完成”? 无论您对所有这些事情有多有意识,有时您的“程序员的自尊心”都会使您付出/接受的时间比您最初预期的要短。特别是当您感受到截止日期和管理层期望的压力时。 其中许多是组织上或文化上的问题,这些问题不容易解决,但最终,现实是您被要求提供估计,他们希望您给出合理的答案。这是你工作的一部分。你不能简单地说:我不知道。 结果,我总是最终给出估计,后来我意识到自己无法实现。它发生了无数次,我始终保证不会再发生。但是确实如此。 您确定和提供估算的个人流程是什么?您发现哪些技术有用?

15
为什么估算用户故事时我们使用故事点而不是工时?
在敏捷方法(例如SCRUM)中,用户故事所需的复杂性/工作量是在故事点中衡量的。故事点用于计算团队在一次迭代中可以获取多少个用户故事。 引入一个抽象概念(故事点)有什么好处,在这里我们可以使用一个具体的度量,例如估计的工时?我们还可以使用估计的工时来计算速度,估计迭代的覆盖范围等。 相反,故事点更难使用(因为概念很抽象),也很难向涉众解释。它提供什么优势?

21
有什么方法可以防止销售人员永久超额使用?[关闭]
我似乎反复陷入这样的情况,即发布日期的确定不是基于任何技术因素,而是因为Sales某个人当时已经承诺要与客户联系。根据与其他公司开发中的朋友的讨论,似乎发生了同样的事情。 “这里是承诺的功能集,这里是承诺的发布日期”,很难争辩,因为在这一点上有钱可赚,而这一切都胜过一切。 总的来说,有没有办法解决这个问题? 如果不是此版本,将来如何?我的问题是,我看到这样做的唯一方法是尽我所能,但是可以说按原样发布软件。 我不想发布臭虫缠身的软件,因为它是我的名字,但是一次连续80小时工作几个月,一次就证明了任意设置的发布日期。 编辑:记录下来,我现在不每周工作80个小时,这是我想到的,因为要满足发行日期之前预期的功能集需要什么。

20
想要通过签订的合同锁定时间估算的项目经理
在以前的工作中,项目经理(PM)对我所在的项目中的代码交付时间不满意。项目负责人告诉我,项目经理正在考虑让我签署一份合同,以锁定我为任务和交付日期提供的时间估计。 该项目的情况是我们正在使用新技术,代码库,编码标准以及非常容易更改的要求。我正在学习新事物,并根据不断变化的需求尽最大可能应用它们。整个迭代过程中的需求增长了2-3倍,而我估计要完成的需求增长了约5-8倍。唯一不变的是估算和交货日期。 是的,我确实错过了大多数截止日期。我正在研究一些非常新的技术,整个开发团队中没有其他人可以真正提供帮助,因为他们对此并不熟悉。至少不容易。 在我看来,项目经理希望将他的数字加起来,因此希望我签署一份合同以“确保”我将始终按时交付工作代码。我想如果我不能按时交货,PM可以通过签订的合同对我不利。 我相信接下来发生的事情是其他项目经理和/或项目负责人为我辩护,并且没有让这种情况发生。 我的问题是,这是否应该引起经理的危险信号?经理通过签署的合同锁定软件开发人员的时间估计是否是惯例?或者在这种情况下,请尝试。 请注意,我是全职员工,而不是独立顾问。 更新:我想补充一下,我确实每周都会提供新的估算值,但是看来原始的估算值和交货日期正是PM所确定的。

9
估算旧版代码库中的时间成本
最近,我开始从事一个项目,该项目将一个非常古老的单片应用程序迁移到基于微服务的体系结构中。 遗留的代码库非常混乱(“意大利面条代码”),并且通常一个看似简单的函数(例如,命名为“ multiplyValueByTen”)随后将自身显示为“涉及3个不同模式的10个表的数千行验证代码”。 现在,我的老板(正确地)要求我估计在新架构中编写功能X所需的时间。但是我很难提出一个现实的估计。由于上述原因,我常常大大低估了任务,并因为无法及时完成而感到尴尬。 明智的做法似乎确实进入了代码,注意到每个分支并调用了其他函数,然后估算了时间成本。但是在记录旧代码与实际写下新版本之间确实有微小的区别。 我应该如何处理这样的情况? 尽管我完全理解了遗留代码重构的工作原理,但我的问题不是关于“如何进行重构/重写?”。但是要给出一个现实的答案:“重构/重写X部分需要多长时间?”

11
DRY是软件项目管理的敌人吗?
DRY是软件开发中最基本且被广泛接受的原则之一(请不要重复自己)。同样清楚的是,大多数软件项目都需要某种管理。 现在有哪些易于管理的任务(估算,计划,控制)?正确的重复性任务,正是按照DRY应该避免的任务。 因此,从项目管理的角度来看,最好通过将现有代码复制100次并根据需要对每个副本进行一些较小的改动来解决任务。在任何时候,您都确切知道您已经完成了多少工作,还剩下多少。所有的经理都会爱你。 相反,如果您应用DRY原理并尝试找到某种或多或少消除重复代码的抽象,则情况有所不同。通常情况下有很多可能性,您必须做出决定,进行研究,发挥创造力。您可能会在较短的时间内提出更好的解决方案,但是您也可能会失败。大多数时候,您无法真正说出还剩下多少工作。您是项目经理的噩梦。 我当然在夸张,但显然存在两难选择。我的问题是:决定开发人员是否过度使用DRY的标准是什么?我们如何找到一个妥协的解决方案?还是有一种方法可以完全克服这一难题,而不仅仅是找到折衷方案? 注意:此问题基于与我上一个主题相同的思想,即软件开发中的日常工作量及其对估计的影响,但我认为这使我的观点更加清楚,非常抱歉重复我的一遍:)。

19
处理可怕的估计
我最近从事的一个项目被建筑师严重低估了。估计至少超出了500%。 不幸的是,在与客户签署估算之后,我才被带入该项目。作为高级开发人员,我很快意识到了功能和技术规范。包含一些巨大的差距和不确定性。 结果,我感到不得不与业务和技术主管召开紧急会议,让他们了解现实。作为开发人员的首要任务,我发现这是一个非常压力和困难的情况。“企业”指责IT不称职,是我收到的一些“子弹”使者。 客户威胁要取消该帐户,但是迄今为止该项目仍未完成,我不再直接参与其中。 这位建筑师在社交上是一个好人,但基于这一事件,他要么完全无能,要么存在巨大的销售/业务压力,影响了他的估算。 因此,作为程序员,您对这种情况有何经验?您会如何建议处理这种情况?

5
如何向非技术人员解释为什么任务将花费比他们想象的更长的时间?[关闭]
几乎每个开发人员都必须回答业务方面的问题,例如: 为什么要花两天的时间来添加此简单的联系表? 当开发人员估计此任务时,他们可以将其分为以下步骤: 对数据库进行一些更改 优化数据库更改以提高速度 添加前端HTML 编写服务器端代码 添加验证 添加客户端JavaScript 使用单元测试 确保SEO设置正常 实施电子邮件确认 重构和优化代码以提高速度 ... 这些对于非技术人员来说可能很难解释,他们基本上将整个任务看作只是组合一些HTML并创建一个表来存储数据。对他们来说,最长可能需要2个小时。 那么,有没有更好的方法可以解释为什么对非开发人员来说估算值很高?

5
您如何估算主要用于解决问题的任务的时间?
虽然有经验的开发人员可以相对容易地估计出在解决了代码所解决的模式和问题时需要花多长时间来实施代码,但是当最终目标得到了很好的理解时,如何才能做出正确的估计呢?实施是95%的理论/问题解决方案,并且实施量很少? 我的工作通常由完成明确目标的任务组成,但是我必须找到实现该目标的方法,直到我理解解决方案为止,它尚不清楚可能存在哪些其他障碍。更具体地说,我经常研究代码生成或自动代码操作工具。解决方案完全解决并完善工具后,它将非常快速地直接完成实际更改的95%。但是,我没有任何方法来估计可能需要解决多少其他问题才能使生成或分析工具处理无法预料的边缘情况。 出于计划目的,我的公司希望更好地了解将花费多长时间,但是由于我不知道在解决解决方案的每个步骤时可能还会遇到多少其他问题。我不确定如何才能给出更好的估计。

8
Scrum-如何将部分完整的用户故事延续到下一个Sprint,而不会导致积压
我们正在使用Scrum,偶尔发现我们无法在计划的sprint中完成用户故事。无论如何,我们都会以真正的Scrum风格交付软件,并考虑在下一个Sprint计划会议期间的下一个Sprint中包括用户故事。鉴于我们要继续执行的用户故事已部分完成,我们如何在下一个Sprint计划会话中对其进行正确估算?我们考虑过: a)向下调整故事点的数量以仅反映完成用户故事所需的工作。不幸的是,这会使报告产品积压工作变得混乱。 b)关闭部分完成的用户故事,然后提出一个新故事来实施该功能的其余部分,这将减少故事点。这将影响我们回顾性地查看在该冲刺中未完成的工作的能力,这似乎很耗时。 c)不用理会a或b,并在Sprint Planning期间继续猜测,诸如“用户故事可能是X故事点,但我知道它已经完成了95%,所以我确定我们可以适应它”。

14
如何学习做出更好的估计?[关闭]
我估计不足。当有人问我要花多长时间时,我什至不敢猜测,因为我将完全失去能力。通常我太乐观了,应该将我的猜测乘以一个较大的X因子... 如何学习做出更好的估算?我的大学没有教它,即使我们为所有的劳动都有最后期限,但我从未想过实际花费多长时间。我应该。为了大家的缘故(尤其是我的)。

7
如何解释很难估计更大的软件项目所需的时间?
我是一名初级开发人员,发现很难估算完成一个较大的软件项目需要多少时间。我知道一般如何构造体系结构,但是我很难知道我必须做哪些细节以及必须解决什么问题。因此,很难估计完成一个较大的项目将花费多少时间,因为我不知道我需要解决什么问题以及解决它们需要多长时间。 我如何向非软件开发人员解释?

6
什么是故事积分的最佳解释是什么?
我们在这里开始使用Story Points进行敏捷开发,但是我很难解释,也找不到任何明确的答案。我能做的最好的事情是指向其他站点(例如http://blog.mountaingoatsoftware.com/tag/story-points),并对它们的含义进行一些模糊的概括。我正在寻找一些使用示例的良好解释,这些示例将对其他使用示例有所帮助。有没有很好的资源可以解释故事要点?

9
等待审核时该怎么办?
在提出问题之前,我必须说明情况。 我在一家公司工作,担任初级软件工程师。当我完成了自己的发展并想要投入时,其中一位年长者总是阻止我。 他总是希望我等待他对其进行审查。可以,因为通常他会发现一些错误并进行一些优化。 但是,我必须在截止日期之前提交我的代码。完成后,我打电话给他,说结束了。他通常迟到。所以我的代码也迟到了。 我的问题是,我该怎么办?我应该等他复习吗? 编辑:除了问题。我很好奇另一个问题。 编码时我想自由。我如何获得对发展自由的信任? 一些解释: 我已经和他谈过了。但这没有帮助。我们已经使用了问题跟踪器,但是没有任何审查任务。只有开发和测试任务。

7
您如何确定软件成本?[关闭]
如果您是单独开发人员,或者在软件公司中扮演领导角色,则可能必须决定您的软件一天或另一天要花费多少……您为客户计算软件成本的经验是什么?为什么这种方法对您有用?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.