我正在与一个团队开始一个项目,我们正在使用SCRUM作为方法。这是我第一次使用SCRUM。我们列出了我们的功能,并制作了我们的故事(用户故事和技术故事以及他们的任务)。
我有一个严格的UML方法来启动任何开发项目,对我来说,在列出所有功能之后,下一步是让用户案例图让每个人都看到应用程序要做什么以及谁将要与之交互它。但是我的团队表示没有兴趣在SCRUM中使用UML。
我可以使用UML的用户图来表示SCRUM中的用户故事吗? SCRUM中可以使用哪些其他图表? (这可能是一个愚蠢的问题'因为我无法想象没有类图或序列图的应用程序,但我真的想看到SCRUM专家的建议)
感谢。
答案 0 :(得分:12)
我可以使用UML的用户图来表示SCRUM中的用户故事吗?
用例图会很有帮助,因为它非常简单,并且可以高度了解项目的内容。
但是我不建议在scrum中使用任何其他UML图。我同意其他人的意见,在敏捷项目中,代码经常变化,以至于您的图表在几天后就会过时。在这种情况下,你必须重绘它们,这是一种浪费。
例如,如果您使用eclipse进行开发,那么简单的重构步骤可能会破坏您的类图: - (
SCRUM中可以使用哪些其他图表?
我建议使用mindmaps。最近,我们开始创建自己的用户故事,绘制大型思维导图并将它们放在办公室墙上。
我们在中间有一个功能,我们将子用户故事连接到它 - 以及子用户故事连接到它们 - 以及我们拥有的每个可用信息在这一刻。通过这种方法,我们可以将所有内容集中在一个地方:用户故事,技术信息,问题等。
当然思维导图日益增长,我们越来越了解我们必须实现的功能。
实际上我们正在执行此agile dzone article中描述的类似内容,但由于您使用的是scrum而不是xp + kanban,因此我讨论了用户故事而不是 MMF 。
答案 1 :(得分:7)
您可以在Scrum中使用任何您喜欢的内容,以帮助您的团队有效沟通。 Scrum不会对哪些工具对该团队有效做出任何决定,判断或指导。它只要求您反映执行Sprint时使用的工具和实践,并相应地进行调整。这是检查和适应循环。
在讨论用于提供价值的工具和技术的好处时坦诚开放,需要个人成员付出很多努力和意愿才能改变。
答案 2 :(得分:3)
我曾经告诉过一段时间以来一直在使用Scrum的人(即:这是意见),因为你的开发方法很灵活,你的需求可能会非常耗时在第一次sprint的show-and-tell之后容易彻底改变,这意味着你可以进行相当大的重新设计。
当然,要抓住你在sprint backlog中处理你的任务的方法 - 你当然可以随时记录,但维护类图等的中央存储库可能会略微浪费资源。
答案 3 :(得分:2)
我不确定你在项目中的角色是什么,我猜你是PO。在这种情况下,如果有意义,请使用其他文档。将用户故事视为提醒团队与PO就此进行对话。
如果您认为用户案例图将阐明您要求的功能,那就没关系。事实上,把它放在scrumboard和burndown图表旁边的墙上。
根据我的经验,为每个故事指定一个“如何测试”场景就足够了。例如,假设我有一个Stackoverflow的故事:
“作为用户,我可以发布新问题”
“如何测试”场景可能是:
“单击”提问“按钮,将显示一个表单,其中包含用于问题文本的文本区域和用于标记的文本字段。用户同时输入后 - 他们是强制性的 - 用户被重定向到问题列表。用户可以在列表中看到问题标题,以及标签“
因此,可能并不真正需要用例图。我建议尝试“如何测试”,看看它是如何进行的。这对团队非常有用,因为从功能的角度来看,他们知道你对故事的期望。而且你不会为每个故事做文件。
如果你不喜欢它,请使用用例图,但最好给团队提供比故事描述更多的东西。
现在,关于你提到的技术故事。这些是什么?为什么技术要求与功能要求混在一起?也许这是项目的真正要求,但通常不是,并且可以重写为功能性故事。除非您的产品类似于框架或库。
例如,技术故事“为'获得问题'查询创建索引”可以被重写为“加速问题列表页面”。
答案 4 :(得分:1)
我只使用Scrum的类和序列图,因为这两个图与java代码实时同步。 我当然不会创建UseCase或其他图表,甚至尝试从图表生成代码(例如MDD),因为只要在我的项目和代码中更改某些内容,更新我的图表就会非常痛苦。图表应自动更新,无需任何人为干预。我用Omondo EclipseUML完成了许多项目,它运行得非常好。
答案 5 :(得分:0)
SCRUM是一个应用程序生命周期管理框架,而不是您所说的方法。请参阅scrum.org
用例被抽象化。如果他们在改进过程中帮助您的团队,那就太好了。但是,一旦你的团队致力于这个故事,就会受到欢迎,一旦故事完成,就没有必要保持这些变化。目标始终是用户可接受的工作软件!
答案 6 :(得分:0)
UML状态机图在Scrum中非常有用,可用于重新设计UI同时保留业务逻辑的项目:
状态机建模是一种动态建模技术,专注于识别系统中的行为 - 在这种情况下,是特定于单个类实例的行为。我的风格是在一个类根据其状态表现出不同的行为时绘制一个或多个状态机图。例如,Address类非常简单,表示您将在系统中显示和操作的数据。另一方面,研讨会对象相当复杂,因此为它们创建状态机图是有意义的。
<强>参考强>