CMF的MSF中的错误和更改请求之间有什么区别?

时间:2023-01-26 09:06:44

I'm currently evaluating the MSF for CMMI process template under TFS for use on my development team, and I'm having trouble understanding the need for separate bug and change request work item types.

我目前正在评估TFS下的MSF for CMMI流程模板,以便在我的开发团队中使用,而且我无法理解需要单独的bug和更改请求工作项类型。

I understand that it is beneficial to be able to differentiate between bugs (errors) and change requests (changing requirements) when generating reports.

我知道在生成报告时能够区分错误(错误)和更改请求(更改要求)是有益的。

In our current system, however, we only have a single type of change request and just use a field to indicate whether it is a bug, requirement change, etc (this field can be used to build report queries).

但是,在我们当前的系统中,我们只有一种类型的更改请求,只需使用一个字段来指示它是否是错误,需求更改等(此字段可用于构建报告查询)。

What are the benefits of having a separate workflow for bugs?

为bug提供单独的工作流程有什么好处?

I'm also confused by the fact that developers can submit work against a bug or a change request, I thought the intended workflow was for bugs to generate change requests which are what the developer references when making changes.

我也对开发人员可以针对错误或更改请求提交工作这一事实感到困惑,我认为预期的工作流程是针对错误生成更改请求,这是开发人员在进行更改时引用的。

5 个解决方案

#1


12  

@Luke

I don't disagree with you, but this difference is typically the explanation given for why there is two different processes available for handling the two types of issues.

我并不反对你,但这种差异通常是为什么有两种不同的过程可用于处理这两类问题的解释。

I'd say that if the color of the home page was originally designed to be red, and for some reason it is blue, that's easily a quick fix and doesn't need to involve many people or man-hours to do the change. Just check out the file, change the color, check it back in and update the bug.

我要说的是,如果主页的颜色最初被设计为红色,并且由于某种原因它是蓝色的,那很容易快速修复,并且不需要让很多人或工时来完成更改。只需检查文件,更改颜色,重新检入并更新错误。

However, if the color of the home page was designed to be red, and is red, but someone thinks it needs to be blue, that is, to me anyway, a different type of change. For instance, have someone thought about the impact this might have on other parts of the page, like images and logos overlaying the blue background? Could there be borders of things that looks bad? Link underlining is blue, will that show up?

但是,如果主页的颜色设计为红色,并且是红色的,但有人认为它需要是蓝色的,无论如何,对我来说,是一种不同类型的变化。例如,有人想过这可能对页面的其他部分产生的影响,比如覆盖蓝色背景的图像和徽标吗?可能有看起来不好的东西的边界?链接下划线是蓝色的,会出现吗?

As an example, I am red/green color blind, changing the color of something is, for me, not something I take lightly. There are enough webpages on the web that gives me problems. Just to make a point that even the most trivial change can be nontrivial if you consider everything.

举个例子,我是红/绿色盲,改变某些东西的颜色,对我来说,不是我轻描淡写的东西。网上有足够的网页给我带来麻烦。只是为了说明如果你考虑一切,即使是最微不足道的改变也是非常重要的。

The actual end implementation change is probably much of the same, but to me a change request is a different beast, precisely because it needs to be thought about more to make sure it will work as expected.

实际的最终实现变化可能大致相同,但对我来说,变更请求是一种不同的野兽,正是因为需要考虑更多以确保它能够按预期工作。

A bug, however, is that someone said this is how we're going to do it and then someone did it differently.

然而,一个错误是有人说这就是我们要做的事情然后有人做了不同的事情。

A change request is more like but we need to consider this other thing as well... hmm....

更改请求更像是,但我们还需要考虑其他事情......嗯....

There are exceptions of course, but let me take your examples apart.

当然也有例外,但让我把你的例子分开。

If the server was designed to handle more than 300,000,000,000 pageviews, then yes, it is a bug that it doesn't. But designing a server to handle that many pageviews is more than just saying our server should handle 300,000,000,000 pageviews, it should contain a very detailed specification for how it can do that, right down to processing time guarantees and disk access average times. If the code is then implemented exactly as designed, and unable to perform as expected, then the question becomes: did we design it incorrectly or did we implement it incorrectly?.

如果服务器设计为处理超过300,000,000,000次网页浏览,那么是的,这是一个它没有的错误。但设计一个服务器来处理那么多的综合浏览量不仅仅是说我们的服务器应该处理300,000,000,000次网页浏览,它应该包含一个非常详细的规范,说明它如何做到这一点,直到处理时间保证和磁盘访问平均时间。如果代码然后完全按照设计实现,并且无法按预期执行,那么问题就变成了:我们是否设计错误或者我们是否错误地实现了它?

I agree that in this case, wether it is to be considered a design flaw or a implementation flaw depends on the actual reason for why it fails to live up to expectations. For instance, if someone assumed disks were 100x times as fast as they actually are, and this is deemed to be the reason for why the server fails to perform as expected, I'd say this is a design bug, and someone needs to redesign. If the original requirement of that many pageviews is still to be held, a major redesign with more in-memory data and similar might have to be undertaken.

我同意在这种情况下,它被认为是一个设计缺陷或实施缺陷取决于它为什么不能达到预期的实际原因。例如,如果有人认为磁盘的速度是实际速度的100倍,这被认为是服务器无法按预期运行的原因,我会说这是设计错误,有人需要重新设计。如果仍然要保留那么多页面浏览量的原始要求,则必须进行具有更多内存数据和类似内容的重新设计。

However, if someone has just failed to take into account how raid disks operate and how to correctly benefit from striped media, that's a bug and might not need that big of a change to fix.

但是,如果有人刚刚没有考虑raid磁盘的运行方式以及如何正确地从条带媒体中获益,那就是一个错误,并且可能不需要那么大的修改。

Again, there will of course be exceptions.

同样,当然会有例外。

In any case, the original difference I stated is the one I have found to be true in most cases.

在任何情况下,我所陈述的原始差异是我在大多数情况下发现的真实差异。

#2


4  

Keep in mind that a part of a Work Item Type definition for TFS is the definition of it's "Workflow" meaning the states the work item can be and the transitions between the states. This can be secured by security role.

请记住,TFS的工作项类型定义的一部分是它的“工作流”的定义,表示工作项可以是状态以及状态之间的转换。这可以通过安全角色来保护。

So - generally speaking - a "Change Request" would be initiated and approved by someone relatively high up in an organization (someone with "Sponsorship" rights related to spending the resources to make a (possibly very large) change to the system. Ultimately this person would be the one to approve that the change was made successfully.

因此 - 一般来说 - “变更请求”将由组织中相对较高的人发起并批准(具有“赞助”权利的人,与花费资源对系统进行(可能非常大的)更改有关。将成为批准变更成功的人。

For a "Bug" however, ANY user of the application should be able to initiate a Bug.

但是对于“Bug”,应用程序的任何用户都应该能够启动Bug。

At an organization I implemented TFS at, only Department Heads can be the originators of a "Change Request" - but "Bugs" were created from "Help Desk" tickets (not automated, just through process...)

在我实施TFS的组织中,只有部门负责人可以成为“变更请求”的发起人 - 但“臭虫”是从“帮助台”门票创建的(不是自动化的,只是通过过程......)

#3


3  

Generally, though I can't speak for CMM, change requests and bugs are handled and considered differently because they typically refer to different pieces of your application lifecycle.

通常,虽然我不能代表CMM,但是更改请求和错误的处理方式和处理方式不同,因为它们通常会引用应用程序生命周期的不同部分。

A bug is a defect in your program implementation. For instance, if you design your program to be able to add two numbers and give the user the sum, a defect would be that it does not handle negative numbers correctly, and thus a bug.

错误是程序实现中的缺陷。例如,如果您将程序设计为能够添加两个数字并向用户提供总和,则缺陷是它不能正确处理负数,因而是一个错误。

A change request is when you have a design defect. For instance, you might have specifically said that your program should not handle negative numbers. A change request is then filed in order to redesign and thus reimplement that part. The design defect might not be intentional, but could easily be because you just didn't consider that part when you originally designed your program, or new cases that didn't exist at the time when the original design was created have been invented or discovered since.

更改请求是指您遇到设计缺陷时。例如,您可能已经明确表示您的程序不应该处理负数。然后提交变更请求以重新设计并因此重新实现该部分。设计缺陷可能不是故意的,但可能很容易因为您在最初设计程序时没有考虑该部分,或者在创建或发现原始设计时不存在的新案例以来。

In other words, a program might operate exactly as designed, but need to be changed. This is a change request.

换句话说,程序可能完全按照设计运行,但需要更改。这是一个变更请求。


Typically, fixing a bug is considered a much cheaper action than executing a change request, as the bug was never intended to be part of your program. The design, however, was.

通常,修复错误被认为是比执行更改请求便宜得多的操作,因为错误从未打算成为程序的一部分。然而,设计是。

And thus a different workflow might be necessary to handle the two different scenarios. For instance, you might have a different way of confirming and filing bugs than you have for change requests, which might require more work to lay out the consequences of the change.

因此,可能需要不同的工作流来处理两种不同的场景。例如,您可能采用不同的方式来确认和归档错误,而不是更改请求,这可能需要更多工作来规划更改的后果。

#4


2  

A bug is something that is broken in a requirement which has already been approved for implementation.

错误是在已经批准实施的要求中被破坏的。

A change request needs to go through a cycle in which the impact and effort has to be estimated for that change, and then it has to be approved for implementation before work on it can begin.

变更请求需要经历一个周期,在该周期中必须估计该变更的影响和努力,然后必须批准其实施才能开始工作。

The two are fundamentally different under CMM.

这两者在CMM下根本不同。

#5


1  

Is my assumption incorrect then that change requests should be generated from bugs? I'm confused because I don't think all bugs should be automatically approved for implementation -- they may be trivial and at least in our case will go through the same review process as a change request before being assigned to a developer.

我的假设不正确,那么变更请求应该是从错误中生成的吗?我很困惑,因为我不认为所有的错误都应该被自动批准用于实现 - 它们可能是微不足道的,至少在我们的情况下,在分配给开发人员之前,它将经历与更改请求相同的审核过程。

#1


12  

@Luke

I don't disagree with you, but this difference is typically the explanation given for why there is two different processes available for handling the two types of issues.

我并不反对你,但这种差异通常是为什么有两种不同的过程可用于处理这两类问题的解释。

I'd say that if the color of the home page was originally designed to be red, and for some reason it is blue, that's easily a quick fix and doesn't need to involve many people or man-hours to do the change. Just check out the file, change the color, check it back in and update the bug.

我要说的是,如果主页的颜色最初被设计为红色,并且由于某种原因它是蓝色的,那很容易快速修复,并且不需要让很多人或工时来完成更改。只需检查文件,更改颜色,重新检入并更新错误。

However, if the color of the home page was designed to be red, and is red, but someone thinks it needs to be blue, that is, to me anyway, a different type of change. For instance, have someone thought about the impact this might have on other parts of the page, like images and logos overlaying the blue background? Could there be borders of things that looks bad? Link underlining is blue, will that show up?

但是,如果主页的颜色设计为红色,并且是红色的,但有人认为它需要是蓝色的,无论如何,对我来说,是一种不同类型的变化。例如,有人想过这可能对页面的其他部分产生的影响,比如覆盖蓝色背景的图像和徽标吗?可能有看起来不好的东西的边界?链接下划线是蓝色的,会出现吗?

As an example, I am red/green color blind, changing the color of something is, for me, not something I take lightly. There are enough webpages on the web that gives me problems. Just to make a point that even the most trivial change can be nontrivial if you consider everything.

举个例子,我是红/绿色盲,改变某些东西的颜色,对我来说,不是我轻描淡写的东西。网上有足够的网页给我带来麻烦。只是为了说明如果你考虑一切,即使是最微不足道的改变也是非常重要的。

The actual end implementation change is probably much of the same, but to me a change request is a different beast, precisely because it needs to be thought about more to make sure it will work as expected.

实际的最终实现变化可能大致相同,但对我来说,变更请求是一种不同的野兽,正是因为需要考虑更多以确保它能够按预期工作。

A bug, however, is that someone said this is how we're going to do it and then someone did it differently.

然而,一个错误是有人说这就是我们要做的事情然后有人做了不同的事情。

A change request is more like but we need to consider this other thing as well... hmm....

更改请求更像是,但我们还需要考虑其他事情......嗯....

There are exceptions of course, but let me take your examples apart.

当然也有例外,但让我把你的例子分开。

If the server was designed to handle more than 300,000,000,000 pageviews, then yes, it is a bug that it doesn't. But designing a server to handle that many pageviews is more than just saying our server should handle 300,000,000,000 pageviews, it should contain a very detailed specification for how it can do that, right down to processing time guarantees and disk access average times. If the code is then implemented exactly as designed, and unable to perform as expected, then the question becomes: did we design it incorrectly or did we implement it incorrectly?.

如果服务器设计为处理超过300,000,000,000次网页浏览,那么是的,这是一个它没有的错误。但设计一个服务器来处理那么多的综合浏览量不仅仅是说我们的服务器应该处理300,000,000,000次网页浏览,它应该包含一个非常详细的规范,说明它如何做到这一点,直到处理时间保证和磁盘访问平均时间。如果代码然后完全按照设计实现,并且无法按预期执行,那么问题就变成了:我们是否设计错误或者我们是否错误地实现了它?

I agree that in this case, wether it is to be considered a design flaw or a implementation flaw depends on the actual reason for why it fails to live up to expectations. For instance, if someone assumed disks were 100x times as fast as they actually are, and this is deemed to be the reason for why the server fails to perform as expected, I'd say this is a design bug, and someone needs to redesign. If the original requirement of that many pageviews is still to be held, a major redesign with more in-memory data and similar might have to be undertaken.

我同意在这种情况下,它被认为是一个设计缺陷或实施缺陷取决于它为什么不能达到预期的实际原因。例如,如果有人认为磁盘的速度是实际速度的100倍,这被认为是服务器无法按预期运行的原因,我会说这是设计错误,有人需要重新设计。如果仍然要保留那么多页面浏览量的原始要求,则必须进行具有更多内存数据和类似内容的重新设计。

However, if someone has just failed to take into account how raid disks operate and how to correctly benefit from striped media, that's a bug and might not need that big of a change to fix.

但是,如果有人刚刚没有考虑raid磁盘的运行方式以及如何正确地从条带媒体中获益,那就是一个错误,并且可能不需要那么大的修改。

Again, there will of course be exceptions.

同样,当然会有例外。

In any case, the original difference I stated is the one I have found to be true in most cases.

在任何情况下,我所陈述的原始差异是我在大多数情况下发现的真实差异。

#2


4  

Keep in mind that a part of a Work Item Type definition for TFS is the definition of it's "Workflow" meaning the states the work item can be and the transitions between the states. This can be secured by security role.

请记住,TFS的工作项类型定义的一部分是它的“工作流”的定义,表示工作项可以是状态以及状态之间的转换。这可以通过安全角色来保护。

So - generally speaking - a "Change Request" would be initiated and approved by someone relatively high up in an organization (someone with "Sponsorship" rights related to spending the resources to make a (possibly very large) change to the system. Ultimately this person would be the one to approve that the change was made successfully.

因此 - 一般来说 - “变更请求”将由组织中相对较高的人发起并批准(具有“赞助”权利的人,与花费资源对系统进行(可能非常大的)更改有关。将成为批准变更成功的人。

For a "Bug" however, ANY user of the application should be able to initiate a Bug.

但是对于“Bug”,应用程序的任何用户都应该能够启动Bug。

At an organization I implemented TFS at, only Department Heads can be the originators of a "Change Request" - but "Bugs" were created from "Help Desk" tickets (not automated, just through process...)

在我实施TFS的组织中,只有部门负责人可以成为“变更请求”的发起人 - 但“臭虫”是从“帮助台”门票创建的(不是自动化的,只是通过过程......)

#3


3  

Generally, though I can't speak for CMM, change requests and bugs are handled and considered differently because they typically refer to different pieces of your application lifecycle.

通常,虽然我不能代表CMM,但是更改请求和错误的处理方式和处理方式不同,因为它们通常会引用应用程序生命周期的不同部分。

A bug is a defect in your program implementation. For instance, if you design your program to be able to add two numbers and give the user the sum, a defect would be that it does not handle negative numbers correctly, and thus a bug.

错误是程序实现中的缺陷。例如,如果您将程序设计为能够添加两个数字并向用户提供总和,则缺陷是它不能正确处理负数,因而是一个错误。

A change request is when you have a design defect. For instance, you might have specifically said that your program should not handle negative numbers. A change request is then filed in order to redesign and thus reimplement that part. The design defect might not be intentional, but could easily be because you just didn't consider that part when you originally designed your program, or new cases that didn't exist at the time when the original design was created have been invented or discovered since.

更改请求是指您遇到设计缺陷时。例如,您可能已经明确表示您的程序不应该处理负数。然后提交变更请求以重新设计并因此重新实现该部分。设计缺陷可能不是故意的,但可能很容易因为您在最初设计程序时没有考虑该部分,或者在创建或发现原始设计时不存在的新案例以来。

In other words, a program might operate exactly as designed, but need to be changed. This is a change request.

换句话说,程序可能完全按照设计运行,但需要更改。这是一个变更请求。


Typically, fixing a bug is considered a much cheaper action than executing a change request, as the bug was never intended to be part of your program. The design, however, was.

通常,修复错误被认为是比执行更改请求便宜得多的操作,因为错误从未打算成为程序的一部分。然而,设计是。

And thus a different workflow might be necessary to handle the two different scenarios. For instance, you might have a different way of confirming and filing bugs than you have for change requests, which might require more work to lay out the consequences of the change.

因此,可能需要不同的工作流来处理两种不同的场景。例如,您可能采用不同的方式来确认和归档错误,而不是更改请求,这可能需要更多工作来规划更改的后果。

#4


2  

A bug is something that is broken in a requirement which has already been approved for implementation.

错误是在已经批准实施的要求中被破坏的。

A change request needs to go through a cycle in which the impact and effort has to be estimated for that change, and then it has to be approved for implementation before work on it can begin.

变更请求需要经历一个周期,在该周期中必须估计该变更的影响和努力,然后必须批准其实施才能开始工作。

The two are fundamentally different under CMM.

这两者在CMM下根本不同。

#5


1  

Is my assumption incorrect then that change requests should be generated from bugs? I'm confused because I don't think all bugs should be automatically approved for implementation -- they may be trivial and at least in our case will go through the same review process as a change request before being assigned to a developer.

我的假设不正确,那么变更请求应该是从错误中生成的吗?我很困惑,因为我不认为所有的错误都应该被自动批准用于实现 - 它们可能是微不足道的,至少在我们的情况下,在分配给开发人员之前,它将经历与更改请求相同的审核过程。