6

作为软件开发人员,我们创建了很多……嗯……代码。我们生成的大部分代码都可以用于新功能或现有功能的增强。在这种情况下,我们如何知道此功能何时完成

在功能的上下文中,完成意味着什么?例如,对于 A 公司来说,这可能意味着许多不同的事情,例如,

  1. 满足客户要求(这本身就很棘手)
  2. 没有已知的错误
  3. 文档已编写
  4. 等等
  5. 等等

为了更好地帮助理解完成对不同开发人员和团队的意义,请列出最多五个(但不超过 10 个)项目。此列表将是您作为开发人员或您的团队可能会经历的事情,一旦所有项目都被选中,该功能就被认为已完成

更新

这些是一些很好的答案。我试图弄清楚如何确定最好的,因为我猜这个问题有点主观。我想我仍在寻找更完整的图片。

4

15 回答 15

14

当客户/用户在测试后签署 UAT(用户验收测试)时。那是我们的官方量尺。

当然,这并不意味着什么,因为几周后总是会要求提供该功能的 2.0 版本,但这比我们的要多。

编辑 - 如果你想详细了解它,我们是这样做的:

  1. 要求由系统分析师和客户批准
  2. 设计由首席程序员批准
  3. 代码审查由同行程序员批准
  4. 代码在 QA 部门的单元测试中标记为已测试。
  5. UAT 由客户亲自测试后签名。
  6. 代码在 QA 部门的系统测试中标记为已测试。
  7. 代码发布。
于 2008-09-25T21:04:16.560 回答
5

如果您的意思是“我们将永远不必再碰它”的意义上的“完成”,那么唯一的答案是:当系统过时;-)

如果您的意思是“当它准备好发布时”,那么大概是当所有商定的单元测试都通过时,当然假设是 TDD/XP/Agile 方法。

于 2008-09-25T21:09:35.673 回答
2

当用户满意时。

于 2008-09-25T21:04:10.990 回答
2

当它解决了它所设想的问题时。这带来了足够的测试、文档、可用性等的负担——不是太多,但足以满足它的需要。

于 2008-09-25T21:06:04.543 回答
2

令人反感、政治上不正确但务实的答案:(至少)在一项功能的演变过程中存在一个关键点。

  • 在此之前发布该功能,您会因为客户不接受该功能而失败。修复的成本——时间、材料、声誉——比“完成”它的成本更高。

  • 在此之后发布该功能,您会因为机会成本而失败。通过将注意力集中在其他事情上,您将获得更多收益。

该功能在达到此临界点时完成。

于 2008-10-28T02:32:39.597 回答
1

当里面有叉子时。

  • 代码符合书面规范
  • 代码通过代码审查
  • 代码具有并通过单元和集成测试
  • 代码通过 QA
  • 包含代码的包由所有利益相关者签署

-亚当

于 2008-09-25T21:06:51.997 回答
1

对我们来说,一个功能已经完成,这意味着我们可以在满足两个条件时发布它:

  1. 一个功能通过了我们在发布开始时编写的所有单元测试和手动测试。这是由 QA 或开发人员在没有 QA 的情况下确定的。
  2. 对功能进行未完成的更改请求/错误修复提供的价值低于完成它们所需的资源(时间)。这是由产品所有者决定的。
于 2008-09-25T21:10:26.153 回答
1

每个项目都划分为 sprint。Sprint 可能具有一个或多个功能。当该 sprint 的这些阶段完成时,一个 sprint 或功能就完成了

1.US->用户故事-> UI-用户界面->开发->开发->QA->质量保证->UAT->用户验收测试完成。

于 2015-06-03T10:03:10.700 回答
1

关于“完成”的含义似乎仍然存在差异。对于许多人(大多数?),比如Scrum Alliance的 Mayank Gupta ,完成意味着产品或功能可以产品负责人自行决定是否可以交付。

对于其他人,比如上面的 MattC(和我自己的组织),“完成”意味着产品或功能已经交付。

于 2015-08-12T15:14:26.530 回答
0

发货的时候。

于 2008-09-25T21:04:56.637 回答
0

当没有什么可以带走的时候。

于 2008-09-25T21:05:53.917 回答
0

当与它相关的所有测试都通过时,您的功能就完成了。当需求发生变化时,添加更多测试和代码,直到它们也通过。

于 2008-09-25T21:08:08.687 回答
0

我认为这取决于看它的人。开发人员自然希望将代码提升到第 n级,而客户将对它有远见。

所以,

  • 客户,当他们停止要求更改时。
  • 开发人员,从不:)
于 2008-09-25T21:08:56.330 回答
0

简单的回答:当它满足客户(或您正在为其实施该功能的人)的要求时。

不是那么简单的答案:当它满足人们/客户期望的所有内在要求时:隐藏的质量要求、可扩展性、文档、稳定性、易用性等。

于 2008-09-25T22:12:20.810 回答
0

当它按照团队定义的 Done 定义完成时。完成的定义应该是 Scrum 团队同意的可见文档,每当出现“完成了吗?”这个问题时,都会参考该文档。被问到。

在 scrumalliance.org 网站上有一篇很好的文章分解了完成的定义

在此处输入链接描述

于 2015-08-20T01:12:04.357 回答