grpc错误应该是什么错误
全世界的团队为此花费了无数的时间进行辩论。 但是真的,你应该吗?
没有人可以为您回答这个问题,但是无论如何,让我们提出问题并准备一些有争议的评论。 那么,我们首先有哪些估算选项?
专门的错误修复时间 有些团队没有预先估计错误,而是仅在每个冲刺/天/周/月为每个月留出一些时间来修复错误。 这并不意味着他们从不估计错误。 如果在初步调查后发现它是一个更大的解决方案,或者需要更改产品的性能,他们仍然会对其进行估算,但是最有可能将其几乎像一个功能一样对待,如果需要,可以通过规范,设计,开发,测试,发布的完整过程。
默认估算 进行错误评估的另一种方法是对每个错误使用一些占位符,例如0.5–1天。 这个想法实际上来自Scrum的创始人之一Jeff Sutherland。 这些占位符可能非常精确,因为大多数错误都不需要花费一天多的时间来解决-Steve McConnell在他的书(现在相当老)中,Code Complete提到85%的错误需要不到几个小时的时间来解决。
我们还看到某些团队将其发挥到极致并以这种方式对待所有门票。 其背后的原因是,在足够长的一段时间内,不仅事情平均了,而且人们学会了更好地合作,并且所创建的票证大致相同。
无论您是否也想仅针对错误或功能使用此技术,都可以从0.5天的占位符开始,并随着获得更多有关开发人员解决问题实际需要多长时间的数据而对其进行调整。 回顾是保持追踪的好方法。
如果您想更进一步,并获得更详尽的估计,则可以按类型划分错误,例如,编码错误,设计错误,数据库,业务逻辑,状态机等。这样,您就可以在每个位置使用不同的占位符分别键入和迭代它们。
您拥有的数据越多,获得的估计就越好,这将我们带入下一个方法。
用历史数据估算 如果您有足够的数据,可以通过估算来完成一些很酷的事情-比按类型拆分问题和分配单个占位符的粒度要大得多,就像我们在前面的示例中看到的那样。 您可以创建一个更上下文相关的系统,该系统将使用问题跟踪器(Jira,Trello等)中的历史数据来预测使用机器学习,自然语言处理和其他方法进行某种修复所需的时间。
实际上,早在2007年就进行了一组研究。 他们想出了一个系统,可以自动预测修复工作。 在有足够数量的问题报告的情况下,他们对错误的自动预测仅用了一个小时,就比人工预测高出四倍。 您可以在此处了解更多信息。
没有估计 我们将要谈到的最后一个思想流派认为,既然您无法找到问题的根源就无法估计修复错误所需的时间,并且大部分时间都花在了解决这个问题上,估计是没有意义的。
那么您应该估计错误吗? 不幸的是,这里没有“千篇一律”的解决方案,这不会阻止我们试图回答这个问题。
在决定是否估计错误以及是否估计错误,使用哪种方法方面,有许多因素会影响您的决定。 举个例子:一家银行的处理方式与社交网络不同,一个公司或国家/地区的文化和动机可能影响决策,甚至利益相关者也很重要。如果您有一个项目经理,如果没有估计就无法生存,那可能是有道理的只是与之并驾齐驱,并拥有良好的团队氛围,而不是不断地为估算而战。
对您是否应该估计错误的最大影响是团队和公司的规模,因为这两个因素会影响很多其他因素,因此让我们看一下几个不同的设置以及您可能想要做的事情在每种情况下。
独奏创始人
您正在构建小型产品或仅是个人项目。 彼此之间没有依赖关系,精确的计划并不是真正必要的,因为您知道进度可以快得多,下一步需要做什么。
解决方案 :您可能没有对功能进行形式上的估计,因此也无需估计错误。 只需专注于输出并在那里获得代码!
小公司
您有一个5-10人的开发团队,而没有其他工程团队依赖它。 您正在计划冲刺和跟踪速度,以大致了解您的进度如何。 有些错误是由内部人员捕获的,而有些则是由用户报告的。
解决方案 :为了更好地计划Sprint的容量,您应该对错误进行半天的默认估计(除非您拥有有关特定缺陷的更多信息并且可以更准确地估计),而且-不要计划100%的容量对于sprint,请留一些缓冲-这将使您能够:a)准备一些错误修复所需的时间更长,更重要的是b)随时准备快速修复重要的不可预见的bug,而又不牺牲sprint目标。
之前,我们已经构建了一些早期产品,随着时间的流逝,我们开始进行此设置。 当产品是新产品时,您没有太多的历史数据可作为决策依据,也没有真正合适的质量保证团队,因此您需要保持敏捷并准备好应对眼前的需求,同时仍然保持指导和沟通您对其他团队的目标和进度(销售,市场营销等)。 此设置还有助于建立良好的客户关系,因为当您能够在报告后立即解决问题时,总是会给用户留下深刻的印象。
当然,您在产品上工作的时间越长,您估计的能力就越好。 特别是如果您按类型(即后端,前端等)划分错误,那么默认估计值将不断提高。
大公司
您有几个开发团队,至少其中一些相互依赖。 您拥有手动的质量检查和质量检查工程师,但是直接与用户交谈的能力非常有限。 存在许多利益相关者和多层管理,您需要与他们沟通目标,因此,您确实需要确保兑现承诺。 通常,您更关心软件的可靠性和开发输出的可预测性,而不是速度和敏捷性。
解决方案 :估计所有可能的错误。 至少从有根据的猜测开始,但尝试使用历史数据进行更好的预测。 在大型组织中,建立这种预测模型的工作不会白费力气—其他团队将使用它,如果运行良好,它将节省计划会议的时间,但也可以使速度更加可预测,您的管理层将不胜感激。
总结一下 -在许多情况下,至少一名工程师确切地知道错误的根源以及确切的修复方法。 没有理由不进行估算。 另一方面,某些错误是完全模糊且不可预测的。 假装我们知道这些修复需要多长时间是不明智的。 在这种情况下,请使用默认估算,或者完全不估算。
-错误的评估在许多情况下要比没有评估要好,尤其是因为在很长的一段时间内,评估的平均值可能非常接近修复错误的平均时间。 不要害怕错了,只需要确保团队中的每个人都明白估计不是最后期限。 它适用于功能,但更适用于错误。
-有时高估有时低估是可以的,但如果始终低估,则应该进行一些调整。
-不幸的是没有银弹。 上面描述的内容对我们来说只是一个不错的设置,但是每个团队都需要找到一种在特定情况下最有效的方法。 不过,它不一定是上述解决方案之一。 您永远不应遵守给定框架的所有规则-最好找到最适合您的技术组合,甚至提出完全不同的技术,这总是更好的选择。
翻译自: https://hackernoon.com/should-you-estimate-bugs-4ocf37t2
grpc错误应该是什么错误