敏捷:机器学习项目的用户故事?
我刚刚完成了一个监督学习算法的原型实现,自动为我们公司数据库中的所有项目分配分类标签(大约500万个项目)。
结果看起来不错,我已经获得了计划生产实施项目的批准。
我以前做过这种工作,所以我知道软件的功能组件如何。我需要一组网络抓取工具来获取数据。我需要从已爬网文档中提取功能。需要将这些文档分成“训练集”和“分类集”,并且需要从每个文档中提取特征向量。这些特征向量自组织成簇,并且簇通过一系列重新平衡操作。等等等
因此,我制定了一个计划,其中包含大约30个独特的开发/部署任务,每个任务都有时间估算。第一阶段的发展 - 忽略了我们希望长期拥有的一些先进功能,但尚不足以将其纳入开发计划中 - 预计将进行大约两个月的工作。 (请记住,我已经有了一个工作原型,所以最终的实现比项目从头开始要简单得多。)
我的经理说这个计划看起来不错,但他问我是否可以将任务重新组织成用户故事,原因如下:(1)我们的项目管理软件完全是围绕用户故事组织的; (2)我们的所有调度都是基于将整个用户故事编入sprint,而不是单独调度任务; (3)其他团队 - 比如Web开发人员 - 已经充分利用了敏捷方法,并且他们从将所有软件功能建模为用户故事中受益。
所以我在项目的顶层创建了一个用户故事:
作为系统的用户,我想按类别搜索项目,这样我就可以在庞大而复杂的数据库中轻松找到最相关的项目。
或者这个功能的更好的顶级故事可能是:
作为内容编辑器,我想自动为数据库中的项目创建分类标识,以便客户可以在我们庞大而复杂的数据库中轻松找到高价值数据。
但这不是真正的问题。
对我来说,棘手的部分是弄清楚如何为机器学习架构的其余部分创建从属用户故事。
举个例子......我知道该算法需要两个主要的架构细分:(A)训练和(B)分类。我知道架构的培训部分需要构建一个集群空间。
我读过的所有敏捷开发文献似乎都表明用户故事应该是“提供任何商业价值的最小可能实现”。在设计一个最终用户软件时,这很有意义。从小处开始,然后在用户需要其他功能时逐步增加值。
但是,集群空间本身就是零业务价值。爬虫或特征提取器也不是。在部分系统中没有商业价值(不适用于最终用户,也不适用于公司内部的任何角色)。只有爬虫和特征提取器才能使用经过训练的集群空间,并且只有在我们开发了附带的分类器时才能使用。
我想可以创建用户故事,其中系统的从属组件充当故事中的用户:
作为一个监督学习的集群空间构建例程,我想要使用特征提取器中的数据,以便我可以存在。
但这似乎很奇怪。作为开发人员(或我们的用户,或任何其他利益相关者),我为这样的用户故事建模有什么好处?
虽然主要故事可以很容易地沿着架构组件边界(爬虫,训练器,分类器等)划分,但我不能从用户的角度考虑任何有用的分解。
你们有什么感想?您如何为复杂,不可分割,非面向用户的组件规划敏捷用户故事?
没有找到相关结果
已邀请:
3 个回复
屡倒雷图
宠封钞轰
禽兢玫坞劲