开发人员应该接受Excel宏完成的工作量估算吗?


12

在一个新项目中,一个朋友必须编写测试,编写测试所需的时间是由他的非开发人员经理编写的Excel宏计算出来的。

在这种情况下,开发人员是否应承担在计算的时间内编写和运行测试的责任?这些测试的结果值得信赖吗?

为了提供信息,我的朋友拒绝对他未做的估算负责,要求成功完成另一个项目,并由经验不足的校外“老兄”代替。


7
“接受”“估计”是什么意思?如果您估计需要30天才能完成某件事,那么如果我“接受”该怎么办?我在乎您估计我需要花费多长时间才能完成工作?您可以估计我会在一分钟内完成所有操作,会错的,而不是我。
大卫·史瓦兹

2
@David接受估计通常是指检查估计并确保共识。例如,如果使用了参数估计工具,则可能需要使用第二种方法(例如宽带Delphi)让项目工程师检查该数据以确保一致性。
Thomas Owens

12
听起来应该寄给Scott Adams制作Dilbert漫画。
MetalMikester,2011年

1
只要有评论。我这个特殊的例子没有。
Nelstaar 2011年

5
请记住:估算,承诺,目标和达成目标的计划是四件事。确保每个人都清楚这些东西是什么,以及Excel输出是这四个东西中的哪一个。
nlawalker 2011年

Answers:


14

这取决于他们对开发人员的敏感程度以及他们所基于的数据/逻辑。(它们可能基于几年来收集的统计数据,该统计数据表明该开发人员本人和/或其他人过去需要多少时间才能解决类似的任务...或者它们可能完全基于其经理的权限-正确或不正确-假设。)

理想情况下,他应该与他的经理讨论不能合理地期望一个人去承担和承担别人估计的任务。

完全拒绝承担这些估计确实可能会导致他迅速被替换,因此最好是采取一种较柔和的方法,并尽可能避免直接对抗。


7

假定宏正在某种输入数据上运行,这不只是一个随机数生成器吗?因此,为了回答您的问题,我们需要知道什么是输入数据以及宏的功能。没有这个答案,答案就毫无意义。

或者,您的问题真的是关于接受缺乏相关经验的经理产生的估计值吗?在这种情况下,答案是否定的,您(或您的朋友)应提出自己的估计并将其提交给经理。如果两个数字不匹配,那么他们需要共同努力,找出最佳的前进方法-可能同意编写更少的测试,或者花费更长的时间编写所有测试。

点空白拒绝不会帮助任何人,并且在无法满足的时间范围内工作也不是一件有趣的事,解决方案在于采取专业方法并做出妥协,以使工作能够继续进行。


将测试切成小部分(几乎是原子的),并进行少量估算。
Nelstaar 2011年

我认为使用这种方法最终的测试人员不会看到/测试全局。
Nelstaar 2011年

1
“大概该宏正在某种输入数据上操作,而不仅仅是一个随机数生成器。”它也可能是随机的,因为它们无法捕获使这种算法准确的每个变量。
maple_shaft

1
@maple_shaft:这就是为什么他们称其为估计 -它不是(或不应该)期望是准确的。无论您是使用Excel中的某些计算还是使用铅笔和纸来进行估算,都没有任何区别。使用Excel进行估算比我在使用中看到的其他一些“技术”更有意义……
Treb,

鉴于不确定性锥度,@ Treb估算值应与所提供的数据和当前项目状态所允许的准确度一样。
Thomas Owens

5

绝对没有。

一个小程序,甚至是一个大型,复杂的程序,都无法估计任何编程工作将花费多长时间。有关原因,请参见软件估计的数学限制。也有较长的,经过同行评审的论文,《软件估计的大限制》

我还要重新考虑对经理的看法:他或她为什么认为过去没有尝试过电子表格宏,因为过去尝试过其他所有方法来估计软件任务持续时间。


1
我还没有完整阅读这些论文(但是),但是假设输入数据有效,参数化方法已经被广泛用于20年以内15%的软件项目估算。此外,诸如宽带Delphi之类的协作方法可以(并且已经使用)来确认参数模型的准确性。请参阅软件工程经济学(Boehm),以获取有关参量方法的讨论以及在软件项目上应用宽带Delphi的情况(以及有或没有参量模型)。
Thomas Owens

我同意托马斯的观点。虽然您无法准确预测整个项目的每个任务,但在整个项目过程中,并使用特定组织的历史数据,您都可以从中获利。有些任务将花费更长的时间,而有些则需要较短的时间,但最终它们平均了。特别是如果项目类似于组织已经完成的项目。话虽这么说,但估算并不能说明真正糟糕的意外情况,例如硬件/软件不能像广告中所宣传的那样工作,新技术比预期的要难得多,开发人员短缺,领导能力和管理能力很差。
邓肯

1
你们需要阅读和理解本文。一个简单的电子表格宏无法正确估算。软件是数学,数学系统有时会遇到一个称为不完整性的小问题。我向您保证,相关经理正在欺骗他或她自己,并且该宏的结果与实际情况无关。
布鲁斯·埃迪格

1
@布鲁斯:使用公式(包括Excel电子表格)成功进行项目估算后,我可以肯定地说,托马斯,经理或我本人都没有在自欺欺人。正如我所说,每个单独的任务都会有所不同,但是在整个项目过程中,它们往往趋于平衡。我发现使用公式(随时间开发和修改)比单个开发人员的估计要精确得多。通常,开发人员过于乐观或过于悲观。当然,只有在给出合理数据的情况下,公式才有效,技能当然是一个因素。
Dunk

我昨晚看了那些论文。他们在项目管理中有40多年的证据,在软件项目管理中有30多年的证据。参见iiasa.ac.at/Admin/PUB/Documents/RM-75-071.pdfsunset.usc.edu/csse/research/COCOMOII/cocomo_main.html
Thomas Owens

4

啊!

这是巨大的“工作气味”。这是令人难以置信的微观管理。

如果他们不信任自己的员工提供估计,那么他们不信任您吗?


1
99%的开发人员甚至无法根据任何客观目标得出错误的估计,更不用说准确的估计了。因此,我看不到任何表示“工作气味”的信息,因为其他人提出了一个估计。特别是如果他们使用实际数据来证明其数字合理。如果人们要对每项任务都要达到估计的责任,那么这就是工作的问题。但是,如果该工具大大低估了所有任务,那么所有开发人员都将错过这些估计。OTOH,如果其他所有人似乎都满足大多数估计,而另一个开发商从未做到,那么这就是开发商的气味问题。
扣篮

@Dunk-我的观点是,在开发软件时达到这种程度的微管理是一种“工作气味”,我不想在那里工作。
ozz 2011年

1
您所说的微管理是在许多行业中开展业务的唯一途径。如果您无法为大型项目提供合理的成本和进度估算,那么您的公司将很难获得合同。与敏捷理想相反,如果许多行业的客户不知道最终会得到什么,他们就不会承诺签订数千万美元的合同。他们对金钱已经耗尽,拥有有效的产品这一想法不会感到满意,但是它只能满足他们需要或想要的东西的50%。
邓肯

@dunk-如果您对管理层为您提供估算值感到满意,请继续。我希望开发团队能够提供估算值。荒谬的管理估算(连同不断变化的需求,以及其他整个讨论)是为什么许多软件项目无法按时按计划交付预算的原因。我宁愿相信从事这项工作的人。
ozz 2011年

这不是管理层进行估计或由工作人员提出估计的问题。这是一个将估算值从您的屁股上拉出来或试图将估算值基于某些客观数据的问题。根据我的经验,在将管理估算与开发人员估算进行比较时,您会发现管理估算往往会花费较长的时间才能完成。开发人员往往会感到乐观.....
Dunk

3

绝对没有。

我向您保证,经理并不会因此而认为他的Excel宏可以准确地预测估计值。我什至没有争论一个众所周知的事实,那就是涉及太多变量,无法在算法中准确预测这样的事情。如果他发明了这样的算法,他应该为它申请专利,并且在我看来可以赚到数百万美元。

真正发生的是,经理正在使用这个假定的Excel宏作为掩盖的伪装,以掩盖他逼迫不切实际的期望和对开发人员造成不当压力的事实。

他知道这是BS,并且不在乎,这是借用过多的资源并试图通过使所有“毫无价值的”开发人员永久地“延迟”来更快地完成工作的借口。

这位经理听起来像个剥削性的混蛋。


1
嗯,仅仅是因为经理正在为开发人员生成估算值,并不意味着它们不准确,而且如果没有更多信息,我们真的无法得出结论。如果经理有能力,他们应该认识到现实与不现实相对容易地进行相应调整。
rjzii

1
@Rob,您忘记了OP提出的要点,即它们被保留在这些估算值之内(严格地假设是因为团队中以前的开发人员提到“不想保留这些估算值”并已被重新分配)。估计模型没有错,但是它们应该是一个粗略的指导方针,并且没有“束缚开发人员的意愿”,我很不幸地看到,管理层对很多人都这样做。
maple_shaft

2
这里的问题是这些估计直接在客户的发票中移动。为什么有些管理人员一直称其为估计?
Nelstaar 2011年

@maple_shaft-不知道估计数是什么,很难说它们是否不合理,因此反对保留这些估计是有效的。如果它们是合理的估计(即“写Hello World的八个小时”),那么坚持使用它们就不会超出哲学范围。
rjzii

3

在一个新项目中,一个朋友必须编写测试,编写测试所需的时间是由他的非开发人员经理编写的Excel宏计算出来的。

存在用于估计项目(包括软件项目)完成时间的参数估计模型。通常,估算是针对生产代码的,但是我不明白为什么不能将其外推到估算编写测试代码将花费多长时间。但是,这些估算值仅与输入的估算值一样好。

假设所使用的方法是有效的估计模型,并且数据准确且有效,则没有理由不能由非开发人员经理编写的Excel宏得出良好的估计。

在这种情况下,开发人员是否应承担在计算的时间内编写和运行测试的责任?

在任何情况下,都不应盲目接受任何估计。不管是如何产生的,没有一个估算是完美的。由工程师来审查所有估计,确定潜在问题,评估其影响以及根据需要讨论和完善估计。

这些测试的结果值得信赖吗?

测试仅与设计和实施它们所付出的努力一样好。如果测试人员进行的测试质量低下,则缺陷会贯穿测试并进入项目的后期阶段。理所当然的是,进度压力会导致测试质量低下,因此,如果时间不足以设计适当的测试用例,然后再实施这些用例,则测试将不会有用。


3

听起来您在问两个不同的问题:

这些测试的结果值得信赖吗?

Excel是与我们合作的任何其他工具一样的工具,计算的编写内容实际上不会对算法本身的结果产生影响。估计来自Excel宏的事实与计算结果(即估计的有效性)是否有效无关。如果您在基础模型中有错误的假设,则使用什么方法都可以,因为基础假设不正确。

在这种情况下,开发人员是否应承担在计算的时间内编写和运行测试的责任?

如果开发人员要求在指定的时间内完成工作,那么只要估算是合理的,他们就无济于事。这就引出了下一点:如果计算给出了合理的时间,并且它们与开发人员将给自己的估计相似,那么没有理由不反对给出的时间表。实际上,这可能对开发人员有利,因为开发人员可能会影响模块中使用的假设,而与给定任意时间表无关。

如果时间表对于所需的工作量似乎不可行,那么显然他们应该提出这个问题,并尝试与经理合作以获得更切合实际的时间表,但是如果时间表可行,那么他们将很难反对。

是的,就项目管理和估计时间表而言,是可以做到的,但它高度依赖于所完成工作的性质。与编写针对测试用例的用例编写新代码相比,您可能会看到编写单元测试代码所需的时间(假设开发人员理解框架并已编写过)的准确估计数更高。对于。


我同意只要项目参与者之间存在对话,就可以/可以使用此方法。
Nelstaar 2011年

1
@Nelstaar-我在项目管理和估算方面所读过的几乎所有内容都包含一个运行的对话框并随着时间的流逝进行调整。通常,最可靠的估计值与击中指示目标的几率相关(即,任务有8小时的90%机率)。
rjzii

2

我不想轻描淡写编写测试,但是该项目以前可能已经有多个开发人员编写了测试。如果基于这些数据进行估算,则它们可能比您的朋友所假设的更为准确。由于您的朋友离开了该项目,没有尝试创建相反的估算或查看它们是否可以按预期完成,所以我们永远不会知道。

他要做的就是完成一两个测试,以查看估计的准确性,然后带着合理的辩解回到经理那里。可能还有其他团队成员可能对估计的可靠性或落后的后果提供了反馈。有时候,一个经理不得不给老板一些“东西”,以使每个人都开心。开发人员将其视为一种错误的安全感。也许如果开发人员有一种运动来提供估计并显示完成任务的意愿,那么管理层可能会建立更多的信任。

我的猜测是,如果他能够在更短的时间内完成测试,他什么也不会说。再说一次,将自己从他不相信的实践中解脱出来,可能表明他的诚信水平很高。


+1用于在完成与估算有关的任务时提供反馈。
rjzii

1

简单而简短的答案:

您不在乎估算的来源。

您真正关心的是估算本身。它同意或不同意,并解释为什么又有多少会估计。那是最重要的。


1
您应该注意估计的来源。具有有效和合理输入的参数模型,随机数生成器,计算机科学专业的大一学生,具有5年从业经验,在该领域不到6个月的软件工程师以及由软件工程师转变为具有25年经验的项目经理该域中的所有域具有产生有效估计的不同能力。这也可以回溯到我对以前的回答所作的评论,即软件工程师在道德上/职业上负责恰当地代表,捍卫和挑战估计的责任。
Thomas Owens

确实:最重要的是讨论估算。如果对Microsoft宏所做的估算比25年的经验工程师更正确,我将很乐意批准使用Excel宏。重要的是估算,以及导致估算的原因(工作量,可用资源,难度),而不是根据公布的人员或方式。
克莱门特·赫雷曼

您同意我的说法,您的答案有误?给定相同的输入(例如工作量,资源,难度等),谁和什么以及为什么一样重要。归结为信任因素。我更信任COCOMO(由软件成本估算的一些领先者制作和维护),而不是Excel宏(由成本估算方面的经验和知识有限的人制作,更不用说应用领域了)。确定概算的可信度与全局有关。
Thomas Owens

不,我想我还不够清楚。进行估算真的不重要。重要的是估算的准确性。每当我得到估算时,我都会将其与估算值进行比较,如果我同意或不同意,请与我的项目经理讨论。如果他们的论点足够好,那么我同意他们,并接受估计。看到?我从未谈论过,也从未想过谁在估算。
克莱门特·赫雷曼

如果您不知道谁来估算以及他们使用了什么方法,您如何确定准确性?我可以将相同的数据提供给两个人-一个是软件工程专业的一年级学生,目前正在学习他的第一门计算机科学课程,另一个是具有15年经验和5个领域的高级软件工程师。两者都使用相同的估算方法(别忘了-输入通常也是估算值)。学生可以说这需要6个月的时间才能达到95%的信心。高级工程师可以说,这需要15个月的时间才能达到80%的信心。我更相信高级工程师。
Thomas Owens

1

从理论上讲,开发人员永远不应该接受任何其他人做出的估算,无论它是如何得出的。原因之一是,给出比您的经理满意的更长的估计数会立即暴露出潜在的进度问题,或者可能会误解要完成的工作范围。

人们通常会发现编程时间估计比编程本身还要困难,因此,如果您的经理可以编写一个Excel宏可以解决问题,则他可能可以构造一个宏来编写代码(不太可能)。

现在,在实践中,如果您理解这项工作并且估算看起来合理,则只需对通过的方法表示一些担忧,然后临时同意看看您是否可以满足他们,这是有道理的。稍后,如果这项工作花费的时间超过了估计的时间,则应尽早提请经理注意。准备根据您的实际实施经验讨论确切原因。希望到那时,您的经理不会变得不合理,并继续坚持要求您以机械方式生成估算值。


-1

敏捷是最新的软件开发方法之一,而scrum是著名的敏捷框架之一。但是在这种方法中,开发人员(Scrum团队)负责计算完成任务或实现用户故事所需的时间。

我肯定地说NO。因为:

  1. 非开发人员经理无法估计完成工作所需的时间
  2. 估计完成任何工作所需的时间需要一些人的智能,而Excel没有
  3. 通过接受这样的工作习惯,经理逐渐习惯于在估计时间上取代开发人员。这可能会导致灾难。考虑这种情况,您的经理说:

我想启动一个新的在线销售自行车项目,我知道您和约翰需要3周的时间才能完成。


5
OP没有提到他的朋友使用敏捷方法的团队。我认为敏捷规则与使用其他方法(或根本没有方法)的团队没有任何关系。但是,常识应该:-)而且,很明显,不是Excel来决定估算,它只是根据一些(我们不知道的)假设和数据(每一个都是正确的或不正确的)执行某种计算。 。如果我输入我们每个团队成员对给定任务的估算,然后设置Excel以计算这些平均值,Excel是否进行估算?
彼得Török

3
1和2显然是错误的。参数估计模型已在软件项目管理中被广泛接受,并且已经使用了20多年,并且任何接受过项目管理培训的人员(无论是否具有软件工程师)都可以接受使用这些工具的培训,前提是他们(或者最好是项目工程师) )能够提供输入的准确估算值。
Thomas Owens

3
-1-这不能回答问题,有明显的错误(“ ...最新的软件开发方法是敏捷的”),并且似乎没有增加任何相关性。我不确定投票或接受的答案是什么。
Morgan Herlocker 2011年

1
我们当然不能从这个问题中知道参数估计是否是这家公司的规范,和/或是否基于其业务的良好历史;如果是这种情况,比我不愿说的那么多,拒绝按照该组织公认的操作程序(不遵循合理的质疑途径)去做某件事是不明智的。
StevenV

2
@托马斯,我同意,我只是认为我们对情况不了解太多,无法明确地回答是或否。无论如何,在没有进行充分讨论以确保了解情况和推理的情况下,全力以赴的拒绝很少良好的职业发展。
StevenV 2011年
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.