敏捷:机器学习项目的用户故事?

标签 agile machine-learning scrum task user-stories

关闭。这个问题是off-topic .它目前不接受答案。












想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




我刚刚完成了监督学习算法的原型(prototype)实现,自动为我们公司数据库中的所有项目(大约 500 万个项目)分配分类标签。

结果看起来不错,我已获准计划生产实现项目。

我以前做过这种工作,所以我知道软件的功能组件。我需要一组网络爬虫来获取数据。我需要从抓取的文档中提取特征。这些文档需要被分成“训练集”和“分类集”,并且需要从每个文档中提取特征向量。这些特征向量自组织成簇,簇通过一系列重新平衡操作。等等等等等等等等。

所以我制定了一个计划,大约有 30 个独特的开发/部署任务,每个任务都有时间估计。开发的第一阶段——忽略我们希望长期拥有的一些高级功能,但优先级还不够高,无法将其纳入开发计划——预计需要大约两个月的工作. (请记住,我已经有了一个工作原型(prototype),所以最终的实现比从头开始的项目要简单得多。)

我的经理说这个计划对他来说看起来不错,但他问我是否可以将任务重新组织成用户故事,原因如下:(1)我们的项目管理软件完全围绕用户故事进行组织; (2) 我们所有的调度都是基于将整个用户故事整合到冲刺中,而不是单独调度任务; (3) 其他团队——比如 Web 开发人员——大量使用了敏捷方法,他们从将所有软件功能建模为用户故事中受益。

所以我在项目的顶层创建了一个用户故事:

As a user of the system, I want to search for items by category, so that I can easily find the most relevant items within a huge, complex database.



或者也许这个功能的更好的顶级故事是:

As a content editor, I want to automatically create categorical designations for the items in our database, so that customers can easily find high-value data within our huge, complex database.



但这不是真正的问题。

对我来说,棘手的部分是弄清楚如何为机器学习架构的其余部分创建从属用户故事。

举个例子......我知道该算法需要两个主要的架构分割:(A)训练和(B)分类。而且我知道架构的训练部分需要构建集群空间。

我读过的所有敏捷开发文献似乎都表明用户故事应该是“提供任何业务值(value)的最小可能实现”。这在设计最终用户软件时很有意义。从小处着手,然后在用户需要附加功能时逐步增加值(value)。

但集群空间本身提供零业务值(value)。爬虫或特征提取器也没有。 中没有商业值(value)(对最终用户或公司内部的任何角色都没有)。部分系统 .训练有素的集群空间只能通过爬虫和特征提取器实现,并且只有在我们还开发了一个伴随的分类器时才相关。

我想可以创建用户故事,其中系统的从属组件充当故事中的用户:

As a supervised-learning cluster-space construction routine, I want to consume data from a feature extractor, so that I can exist.



但这似乎真的很奇怪。作为开发人员(或我们的用户,或任何其他利益相关者)为我的用户故事建模有什么好处?

虽然主要故事可以很容易地沿着架构组件边界(爬虫、训练器、分类器等)进行划分,但我想不出从用户的角度来看任何有用的分解。

你们有什么感想?您如何为复杂的、不可分割的、非面向用户的组件规划敏捷用户故事?

最佳答案

利用“垂直切片”概念可能会有所帮助。想象一个简单的 3 层应用程序(例如 UI/Logic/DB)。您不是先构建一层,然后再构建另一层,而是垂直“切片”所有三层。最初的故事可能是“作为用户,我希望能够登录系统,以便我可以访问它。”完成后,这个故事可能是可交付的,因为它提供了完整的功能,但极不可能为客户提供足够的值(value)以使其值得实际交付。垂直切片的一个好处是您已经了解了有关所有层的知识,这些知识可以在 future 的迭代中使用。

如果您不熟悉它,INVEST 模型对于用户故事非常有用:

我 - 独立

N - 面议

V - 有值(value)的

E - 可估量

S - 大小合适

T - 可测试

关于敏捷:机器学习项目的用户故事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663002/

相关文章:

azure-devops - 如何在VSTS中删除冲刺(Visual Studio Team Services)

c# - V 模型测试方法对敏捷开发团队有用吗?

agile - 关于 Scrum 的两个问题

scrum - 您如何将 Scrum 应用于 Web 开发的设计部分?

testing - 为测试目的向最终用户部署预发布 Windows Phone 8.0 应用程序的最有效方法是什么?

python - 如何顺序组合2个 tensorflow 模型?

swift - Apple Vision 错误 – 使用无法解析的标识符 'ObjectDetector'

python - 即使使用显式 cuda() 调用,pytorch 实例张量也不会移动到 GPU

敏捷场景,哪个是正确的?