人机交互 (Human Computer Interaction,简称HCI)领域的设计就是通过与用户交流来理解问题,并提出整个系统的用户界面方案(一般是画在纸上)。如果是在事先大量设计(BDUF)方式下,通常设计好以后才交给团队的其他人实现它。那么, Robert Biddle 怎么宣称 HCI 具有与敏捷非常相似的自产实践呢?
在 XP2007 的一次研讨会中, Frank Maurer , Jeff Patton 和 Robert Biddle 宣讲了关于 HCI 和 Agile 如何协作的三个不同观点。
Jeff Patton 讲述了在发布周期的开始阶段,他的团队如何进行时长为一个星期的迭代。这些迭代的目标是阐明用户方的典型工作流程,并在纸上画出用户界面。典型的迭代开发都从这个初始步骤开始。这种方法使他们可以满足最终用户的同时,也满足了客户或产品经理(product owner),而这在传统的敏捷团队中不一定做得到。
Frank Maur 指出,业务价值并不总是等价于可用性。敏捷中的“客户或产品经理(product owner)”的概念并不一定等于 HCI 的“最终用户”。敏捷所指的“客户”有责任(也希望有能力)决定需求的优先次序,并能够作出妥协,将一些需求放进延迟列表,以后再逐步实现。HCI 所指的“最终用户”是那些真正使用这个软件的人——HCI 专家与这些软件的最终使用者一起工作,把画在纸上的用户界面展示给他们,并研究他们反馈的信息。所以,尽管 Agile 和 HCI 都将焦点放在增加产品的价值上,但 Agile 关注“业务价值”,而 HCI 关注“最终用户的可用性”。
Maur 也对比了 HCI 和敏捷的几个实践:
- HCI 专家在开发团队中代表用户,而敏捷包括一个来自业务领域的客户,并把他作为团队的一部分。
- HCI 专家是专才,而敏捷方法更喜欢通才。
- HCI 是事先 UI 设计,而敏捷方法鼓励尽早尝试。
- 在 HCI 中,可用性来自于“UI 设计师”,而在敏捷中,质量是整个团队的责任。
- HCI 依靠可用性测试和收集度量数据,而敏捷依靠展示可工作的软件。
Robert Biddle 和他的学生研究了几个包含 HCI 小组的敏捷团队。他们发现,由 HCI 小组提出的 UI 方案是通过用户的反馈迭代设计出来的。这些迭代每次都用很多纸上模型(以套为单位的模型开发),最终确定的一套 UI 规范再交给开发团队。开发团队用敏捷实践进行开发,HCI 专家则随时候命,根据开发团队的需要一起进行讨论。HCI 专家随时听取来自开发团队的技术反馈并提出替代方案.。所以,尽管大部分的 UI 设计是 BDUF 的,但却不是一成不变的。这些就是从现今的真实工作中观察到的。Biddle 认为 HCI 和敏捷走到一起的机会很大。它们都聚焦于用户,都进行迭代并对迭代中的反馈做出响应。
所以,尽管在 HCI 和敏捷实践之间有很多差异和不匹配之处,但是它们在聚焦于用户的价值和迭代式的检查 - 改进循环方面还是一致的。把 HCI 专家纳入到团队的做法会使敏捷方法获益,但还是有很多问题需要克服。
查看英文原文: Human Computer Interaction (HCI) and Agile compatibility
评论