2008年10月15日星期三06:21

在短时间内定义要求

由Martin Crisp撰写
最近的行业研究表明,现代软件项目平均每花费40%的效率。因此,超过60%的软件项目过度预算,小姐计划并大大减少了交付的功能。如果没有清楚地了解如何设置要求,大多数软件开发项目将面临重大返工或完全失败。 在过去的几年里, 敏捷方法似乎有助于减少这个问题。 这款白皮书将探讨捕捉敏捷团队中的需求的技术。

维基百科说,“这个词 敏捷软件开发 是指一组软件开发方法,促进开发迭代,开放协作和整个项目生命周期的过程适应性。“

因此,如果我们应用体育比喻,使用敏捷方法开发软件就像一系列Sprint比赛。开发人员仅集中在成功完成下一次迭代,这通常在几周内到期,他们在确定其要求实现这一短期目标的情况下为零。

换句话说, 敏捷团队不会产生任何要求规范,这些规范对于使其在短期内将其预期的群体清晰绝对至关重要。所以,问题变成了:如何确定什么要求“足够”以完成下一次迭代? 

当决定在定义敏捷团队的要求时,需要考虑一些需要考虑的因素。 这些考虑因素应包括: 

  • 团队规模和团队成员的邻近
  • 团队的技能和经验
  • 团队以前有过吗?
  • 要求的复杂性
  • 软件的复杂性。

请记住上述考虑,您需要决定使用哪种技术以及您希望在使用这些技术的同时提供多少细节。

常用技术包括:

口头传播。口头通信,或许使用白板捕获关键思想,通常是定义要求的最快方法。 但是,这种方法以初始速度弥补,它不会确保所有利益相关者都在循环中。此外,参与者可能并非全部记得在会议破坏后确定的决定。 两周前讨论的细节不同,这一切都太容易了解。 这可能导致在开发和测试期间对需求的误解,并将反映在不准确的产品用户指南和培训材料中。所以你可能最初节省了时间,但长期以来浪费了更多的时间。

所以口头比书面沟通更好? 敏捷方法促进面对面的相互作用,但在球队分散在全球甚至在城市中的情况下,这可能是不切实际的。 只有在口头通信的依赖是一个最后的手段,只有在短期时间收益价值超过长期问题时,这种方法可以创造。 

故事卡.  敏捷开发团队中的流行和有价值的技术是创建一个故事卡。 这些故事卡倾向于提供基于文本的描述,谁想为屏幕和一些测试场景的图片和某些测试场景一起做什么以及为什么。 这种技术适用于非常小的功能,但对于集成并取决于其他功能的更大或更复杂的功能,可能无法扩展。 

要求列表。通常从产品范围开始的一个共同的地方,创建一个分层“需求列表”,其在文本中捕获了一个有组织的功能要求,技术要求,业务驱动程序等的组织和分组列表。 通常这些文本描述可能足以清楚地表达要求的要求 例如,技术要求,例如,“应用程序必须支持IE 6和IE 7,”并不真正需要任何额外的解释。 然而,诸如“应用程序必须能够定义哪些用户可以访问特定功能和数据”的要求,还需要更详细的详细信息。 关键是仅扩展真正需要更多细节的要求。 

用例流动。有时要真正了解更复杂的需求用例的整体流程或模拟需要捕获“足够的”要求。 但是,从我的角度来看,它通常不是使用“用例”来记录复杂逻辑或业务规则(如授权逻辑)的好主意。这些类型的要求通常以文本或表格格式更好地记录。例如,一个简单的2x2表,显示一个轴上的角色以及它们在另一个轴上可以执行的东西是一种更有效的方式来传达授权业务规则,而不是将替代流入使用情况。

模拟。模拟可以增加伟大的价值来真正带来一个概念,但在模拟中添加每个细节都可以花费太多时间。并且,坦率地说,开发人员有时难以反向工程师模拟和提取离散的要求。 敏捷团队成员更容易阅读一个简单的表格,显示谁可以做些什么,而不是通过模拟和反向工程师相同的信息。此外,可以花费太多时间进行精心制作的模拟,这些模拟不会增加足够的价值,以便他们可以采取的时间和努力。 

每个人都会有他们的个人偏好,何时使用用于沟通要求的技术,但关键是团队一起工作,同意使用不同的技术并且不会“强制”一种技术,当它显然可以更容易做另一种方式。

常规存储库。无论您如何决定用于记录要求的技术,将这些要求在中央存储库中保留详细信息/工件,并以有组织的方式将其彼此联系起来对您的敏捷团队的集体成功至关重要。 依靠人们跟踪无休止的电子邮件路径和简单的文档存储库,手动维护链接不是答案。 人们太忙了,无法做到,而且,最有可能的是数据存储库不会保持最新。 因此,只要有可能根据伪像所组织的方式自动创建和维护这些链接时,任何存储库都需要执行。例如,如果用例是指在给定步骤的屏幕上,则应自动链接到存储库中的该步骤。

那么你怎么知道什么是足够的细节? 当事情需要更多细节时,您的团队会通知您。 在敏捷团队内工作的一部分是期望在整个项目中澄清需求的需求。 在传统的瀑布中,这几乎令人沮丧,在变革管理的良好意图下。 但是,在敏捷中,预计并拥有它,这需要一些习惯于敏捷新手。

搭档

这个话题比这篇小文章所涵盖的话要要更深,但关键点是

  • 对您想要的细节水平进行有意识的决定,但期待在开发期间调整。
  • 为您尝试描述的要求选择合适的技术。  
  • 确保保留一个集成的中央存储库,将多个要求伪像链接在一起。 


马丁脆 是蓝图系统的首席技术官。他可以到达 [电子邮件 protected]

 

©ba time.com 2021

MacGregor Logo White Web