在敏捷开发中如何处理用户界面设计和相应的功能支持?


11

在敏捷开发过程中,通常主要侧重于用户故事,但是有时一个需求可能跨越多个用户故事。

例如,客户端可以为论坛中的所有用户请求搜索页面,并且在每个用户上可以执行多种操作,例如禁止用户,删除用户,重置密码等。

我们可以将此功能至少分为4个用户故事:

  1. 搜索用户
  2. 禁止用户
  3. 删除用户
  4. 重设密码

用户界面设计者将如何实现这样的用户界面?他/她是否应该处理第一个用户故事,然后开始为UI增加更多功能?但是,我认为最终的UI会搞砸了!

如果他决定使用整个功能(搜索+动作),那么如果这些动作的优先级较低,并且将在搜索功能完成后进行多次迭代,该怎么办?


6
这突显了一些人所怀有的错误观念,即敏捷(无论您如何定义)都不是项目管理工具。您仍然需要有人从体系结构的角度看待整个产品,并确保您所有的故事加在一起。
Blrfl

下选民请解释为什么?!
Songo 2013年

@Songo:不,投票人通常不解释,这是太多的努力。:-(
乔治

Answers:


13

反复进行。您是直接与用户合作,对吗?因此,它永远不会真的一团糟。

首先进入搜索页面。您和用户应该记住,他们希望能够对结果进行操作。用户喜欢吗?好的,您已经找到了。

现在添加“更改密码”(或下一个优先级)。糟糕,我们需要稍微更改搜索页面-好吧,更改通常是游戏的一部分。用户喜欢它的结果吗?好。

现在添加下一个项目,然后下一个...

敏捷的方法表示您总是可以立即获得反馈,因此您应该很好。

就是说,没有真正的理由使您可能无法在同一迭代中攻击其中两个故事(添加删除用户和禁止用户)。关键是始终与客户合作以确保它是正确的。

在最初的“设计”完成并实现之后,您常常(总是?)最终会导致用户在搜索屏幕上想到他们想做的其他事情。因此,无论如何您最终都会对其进行修改。只要以这种期望接近整个事情,您就应该很好。


8

我觉得我说了很多。敏捷并不意味着您就需要盲目地忽略未来并自己设计一个角落。敏捷是关于如何交付功能的,与设计功能的方式几乎没有关系。

换句话说,在设计时,只要您不希望在短期内推迟交付功能,就可以将其放眼未来。

在您的特定示例中,这意味着您要继续设计用户界面,以便以后可以轻松添加操作。但是,如果着手进行正确的动作设计会延迟一次迭代的基本用户搜索的交付,那么最好先进行无动作的设计,前提是没有任何动作的搜索对客户有价值。

要问自己的问题是:“这项设计工作是否延迟了我的首次交付时间?” 在大多数情况下,答案是“否”。无论如何,您都必须进行设计,只需更改一些设计标准即可。


+1:很好的答案:“敏捷与您如何交付功能有关,与您设计功能的方式无关。” 我认为,经常将敏捷作为借口以证明缺乏前期设计(例如,如果开发人员不愿意或不愿意这样做)。相反,应该在总体计划和体系结构准备好之后安排活动(用户故事和冲刺)(当然,在进行项目时,您可能需要调整体系结构)。
Giorgio

1

第一个用户故事可能是整个界面的设计-他们不必只设计其中一个。整个设计可以增加业务价值。

话虽如此,我在这里至少看到两个不同的功能:搜索用户的能力以及对一个或多个用户执行功能的能力。如果这更有意义,那么设计师可以巧妙地解决每个问题。

请记住:目标是交付高质量的软件,而不是盲目地遵循某些方法。问问自己,将设计分解成碎片是有助于还是阻碍了这一目标。没有混乱的警察,只有高兴或不满意的顾客。


1

我有机会在敏捷/极限编程工厂实习。他们使用故事卡来驱动迭代开发过程。每个故事卡都会推动实现或更改。关键是用户交互。如何在不与软件用户交互的情况下成功设计出一种面向用户的界面?

一种可能的方案是从用户交互开始,以确定用户首先想要什么。然后,基于增加的反馈,用户优先级以及用户必须拥有的内容来迭代设计UI。

用户故事可以驱动用户如何交互,以何种级别和方式交互。但它们只是与用户互动之前的近似值。如果有很多用户都希望有特定的东西,那么可能需要对人进行一次小型调查,以便为UI定义一些基线。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.