【发布时间】:2010-10-17 01:46:37
【问题描述】:
UI 驱动开发的想法是否有意义?我们的大多数客户都喜欢以屏幕的形式表达他们的要求。例如我想要一个屏幕来做这个和那个。有时他们甚至会自己决定屏幕的布局(这可能是因为今天的客户已经在他们的大部分任务中使用了软件应用程序)。
此外,这种需求收集方法似乎可以自动传达数据和相关行为。
你们觉得呢?
【问题讨论】:
标签: user-interface requirements
UI 驱动开发的想法是否有意义?我们的大多数客户都喜欢以屏幕的形式表达他们的要求。例如我想要一个屏幕来做这个和那个。有时他们甚至会自己决定屏幕的布局(这可能是因为今天的客户已经在他们的大部分任务中使用了软件应用程序)。
此外,这种需求收集方法似乎可以自动传达数据和相关行为。
你们觉得呢?
【问题讨论】:
标签: user-interface requirements
其实在这方面确实是有道理的。用例在这里的不同之处在于它们不能以相同的方式使用。用例将有助于提取和形式化需求。
前段时间我在一个 UI 实验室工作,我们玩弄了这个概念,尽管我们没有这样称呼它。这里的基本想法是,我们将使用敏捷迭代方法进行开发,我们将使用可用性测试来帮助收敛到所需的解决方案。
典型的循环是:
当用户要么不确切知道他们想要什么或不能告诉我们时,这种方法特别有用。因此,我们必须设计测试来收集关于软件对用户的实际有用性的客观数据,并因此尝试调整下一次迭代。 (如果我可以这样称呼他们,我们的许多“客户”都严重残障,无法说话,所以我们必须要有创意)。
这种工作方式迫使我们在软件开发生命周期的早期就为客户提供一个 GUI,因为它是我们直接测试的中心点,可以说它是 GUI 驱动的设计,因为它是融合的驱动力是用户与系统的交互。
尽管我们主要针对非常具体的情况开发了这种技术,但我们在普通软件上与普通用户进行了一些测试,并获得了非常积极的结果。设计将很快收敛到用户的需求。此外,他们参与这种设计方法的事实也对目标社区对产品的接受度产生了非常积极的影响。
不幸的是,在我们发表结果并扩大这一研究范围之前,实验室就因内部冲突而解散,真的很遗憾。
因此,UIDD(请原谅这个不好的首字母缩写词)将成为 TDD 系列软件开发方法的成员,其中迭代取决于用户交互。
关于该主题的补充阅读:
http://www.codinghorror.com/blog/archives/001091.html
http://cakebaker.42dh.com/2007/07/07/usability-driven-development/
http://www.springerlink.com/content/l413k76812896gnt/
http://www.agilemodeling.com/essays/agileUsability.htm
http://www.uxbooth.com/blog/how-test-driven-development-increases-overall-usability/
【讨论】:
你在做什么样的开发?当我开发 Web 应用程序(flex 或 php)时,我使用绘图(线框),这样我就可以让客户了解应用程序的流程/外观,而无需编写任何代码。
没有适合每个人的“正确的发展方式”,你只需要找到最适合你的方式。干杯!
【讨论】:
我发现这是收集需求的合理方式。我会小心实际构建屏幕,然后直接开发功能。您会发现代码重用率很低,并且您将拥有一个看起来很漂亮的应用程序,但速度很慢或不能完全正确地工作。它将适用于某些项目,而不适用于其他项目,具体取决于需求的复杂程度以及预测数据瓶颈、缓存问题等问题的能力。
听起来它类似于行为驱动开发、线框图和用户故事。
【讨论】:
故事测试驱动开发我认为这是一个很好的主意,只要你认真对待它的自动化部分。如果你不能自动化你的测试,那么你就有麻烦了。 在这里查看一篇论文:http://www.industriallogic.com/papers/storytest.pdf 听起来您的客户并没有为您提供自动化 UI 测试,但我认为这是最好的方法。
【讨论】:
我认为您在这里真正谈论的是用例 - 请参阅 this article 了解简介。
【讨论】: