任务开发和测试的术语估计(不需要)

我测试了12年,曾在Naumen和Yandex工作。 现在,我领导巡回赛的150名测试部门,并继续在其中一个团队中担任测试人员。


经过六个月的绩效评估后,来自不同团队的经理告诉了他们为测试人员设定的目标。 五分之一的受访者表示:“学会评估测试任务的时间表。” 通常,不仅需要测试人员,而且需要开发人员提供这样的“最后期限评估”。



95%情况下的术语估计。 谢谢xkcd


我认为,当承包商评估单独任务的截止日期时,实践绝对有害。 这直接与缺乏系统教育和对管理人员的要求低有关。

现在,我将解释它是如何工作的。


论经典作品


Maxim Dorofeev-缩短期限的影响


我引用《 绝地技巧 》一书中的内容,尽管有人可以引用帕金森定律


一个男人来找我们,提出任务并询问完成任务需要多长时间。 评估任务时,我们当然想确定可以确定的时间期限,并且由于可能会发生很多事情(并且我们怀疑肯定会发生某些事情),因此我们在评估中花了一定的时间。

我们不是立即开始执行任务,而是“应付紧急情况”,因为“此任务尚未完成”-我们也有上述库存。

任务开始“吸烟”,我们继续进行。 如果什么都没有发生,那么我们会按时赶上,但是如果发生了某些事情……我们已经将储备金花在了这件事上,结果来晚了。

结果,任何称为截止期限的截止期限都将成为任务无法完成之前的截止期限。 当需要不同的专家和不同部门的合作来完成一项任务或项目时,这在团队合作过程中会导致特别不愉快的后果。


人体作为整流器(和二极管)是《绝地技术》的插图。 还有一个视频


汤姆·德马科- 人为因素


在第一章的第五部分中,有一些链接指向有关生产率对执行时间评估的依赖关系的研究。



简而言之:评估的事实对最坏情况的影响约40%。


我建议阅读。 第五章中列出的所有因素仍然相关。


Deming and Nive- 带有红色珠子的实验


在过去的一年中,我两次听到管理人员的话:“我们已经学会了按时完成任务评估,现在这样的程序员或测试人员没有违反我指定的时限。”


我认为这是一个非常严重的问题,因为这意味着该程序员或测试人员会系统性地故意夸大截止日期,放松工作并向经理撒谎 。 在现实世界中,对特定任务的估计存在差异且不违背,这意味着对此类人员的评估始终在实际工作期限的分布曲线的右侧。


标题中提到的作者说,估计截止日期的唯一真实方法是通过统计方法。 应评估一揽子典型任务。 “我们有不同的任务吗?” 这是谎言。 每隔一年就不会有太多不同的任务。 通常,这样的声明表示对流程缺乏反思,并且无法执行练习:分解,MVP,原型,标准化。


关于需要截止日期的客户


首先,应该指出的是,大多数情况下-这本身很有趣-一切都没有取决于承包商的回应,因为已经有截止日期。 经理感兴趣的不是不是我们要完成多少时间 ,而是我们是否会在截止日期前准时到达,以及 我们将会及时 到来 。 这些是不同的问题,需要以不同的方式回答。


通常,“我们将在截止日期之前及时”问题的答案是分析和MVP,高质量的开发基础架构以及技术债务的规模,即重构的难度和自动回归测试的存在。


再一次:时间估计会阻止表演者赶上最后期限。


其次,正在开发一系列练习。 并非所有这些都很简单。 他们没有直接提供“功能准备就绪的时间”问题的答案。 但是,它们减小了交付的大小,降低了开发和测试的复杂性,并最终减少了条款的可变性。


  • 最有价值球员
  • 任务分解
  • 未完成工作的限制(程序员不会执行新任务,直到旧任务出来)
  • 重构和后续功能的单独发行
  • 分别发布产品的后端,前端和其他部分
  • 金丝雀发布
  • 使用功能标志
  • 测试人员区分重要缺陷和不重要缺陷的能力
  • 团队释放不重要缺陷的能力

如果团队进行了这些练习,并且经理有资格,那么回答客户就不需要要求执行者指定截止日期。 如果不进行练习,那么经理指定的任何条件很可能都是谎言。


关于无能的经理


很容易混淆术语的估计(何时完成任务)和人工成本的估计(开发功能需要多长时间)。 正如我们已经知道的那样,术语的估计如果不是有害的,那么至少是没有意义的。 但是,人工成本的评估是一个相当有用的练习。


完成任务时需要评估人工成本,这使我们可以进行上述有用的练习:主要是分解任务。


但是我们必须记住,在一个无能的经理的团队中对人工成本评估很容易变成对条款的估算 。 它涉及上百万的认知扭曲,并且缺乏对生产链运作方式的理解。


生活例子:
-您将花费多少时间使用此功能?
-我将写一个半星期的时间,并修复三天的错误。
-即在3-4周内准备好了吗?

也就是说,“我将把这一天花在这项任务上”和“任务将在一天内完成”之间的区别是多重且根本的。


你教生活,你实现了什么?


是的,让我们谈谈我和我的团队。 我们成功地做了一些列出的练习,有些是学会做的。 有些不是,这很可悲。


我认为我们已经学会了限制未完成的工作,进行初步的重构版本以及将重要的错误与不重要的错误分开。


估算测试条件的方法是这样做的。 我们将任务分为小任务,大任务和其他任务。 大约一半的小任务是由值班的测试人员在业余时间完成的。 如果没有并发症,则在YouTrack中将小任务标记为“一个小时”,并以一种方法(从半小时到两个小时)完成。


大型任务标有“项目”标签,并且很明显它根本不会。 每个大型任务都有一个功能领导,其任务是确保完成上面列表中的练习。


其余任务没有任何标记。 如果清单上的工作时间超过2周的任意选择和变化范围,则开始执行清单中的练习。


如果队列中有紧急任务,则需要删除所有内容并执行。 无需评估。 但是,弄清楚截止日期以了解哪些缺陷和缺陷可以被释放将是有用的。 这样紧急的任务不到百分之十。


两年多前,我最后一次因经理的要求被推迟工作以释放紧急任务。 在此之前,在2015年和2016年曾两次。


PS我们工作中最重要的技能之一就是不要做不必要的垃圾。 包括不从事“术语估计”和自欺欺人。 我也希望你。


在Telegram订阅我们的频道 ,很高兴。)

Source: https://habr.com/ru/post/zh-CN444484/


All Articles