数字项目涉及复杂的协作网络,当它们利用参与者必须分享的许多不同类型的专业知识时,它们是最强的。与此同时,将所有这些不同的信息、需求、需求和想法汇集到一个地方可能具有挑战性。我们如何在这些团队中弥合技术、文化和学科知识的差异,并创建能够在项目的整个生命周期中有效发展的共享文档?
在过去的几个月里,数字奖学金组一直在尝试将功能规范(一种起源于软件应用和系统开发的写作类型)作为项目沟通的工具。作为东北大学图书馆最近的Lib雷竞技app最新版raybet雷竞技Con活动(部门间的项目和想法的分享)的一部分,DSG的成员提出了一个小组会议,从不同的角度探讨了这项工作的各个方面。这篇文章利用这些演讲来概述数字人文应用研究小组的功能规范的特征、挑战和可能性。
“功能规范”的类型在其原始上下文中涵盖了几种不同类型的领域。正如DSG高级开发者Rob Chavez和系统副总监Patrick Murray-John所描述的那样,它非常重要上下文信息关于项目的目的和目标特性和功能正在开发的工具(从特定用户及其需求的角度),以及行动者和实体(例如用户、角色和数据)。
在项目开始时收集这种级别的详细信息有很多好处。在实际规划的层面上,它提供了具体的信息,反过来使开发设计规范、技术规范、开发计划和测试更容易,以确定项目何时成功完成:如果功能规范描述了一个搜索功能,该功能返回根据相关性排名的结果,那么我们知道,在它工作之前,我们还没有完成。也许对DSG同样重要的是,创建功能规范的过程促进了项目组成部分之间的参与式协作,并促使人们深入思考项目真正想要完成的是什么,并帮助项目在努力构建工作版本之前就它真正需要什么达成一致。它还收集了可能对其他目的有帮助的信息(如撰写拨款或宣传)。
功能规范也包含在更广泛的工具网络中。Patrick Murray-John展示了书面文档如何提供特定功能的细节(如搜索、查看地图或上传新文件),然后将其转换为存储在问题跟踪器等项目管理工具中的特定编程或设计任务。虽然功能规范提供了路线图,但问题跟踪器提供了正在取得的进展的视图,并支持协作团队中非常必要的任务和工作的日常协调。当一个给定的特性原型化并最终完成时,功能规格书就可以再次用于确认项目的实际需求已经得到满足,它还可以作为记录超出范围的未完成工作的地方——这反过来可能会为项目开发的未来阶段提供支持,或者支持未来的筹款工作。
在软件开发行业的原始环境中,功能规范通常在一个具有许多共享技能和知识的相当统一的技术团队中运行。因此,这种类型的常见实践和熟悉的特征主要集中在其实际和技术方面:数据目录、用户事例、用例、前提条件、给定功能上下文中一步一步操作的逻辑流。对于DSG来说,功能规格的实验主要集中在从几个不同的方向构建游戏类型。首先,正如DSG主任Julia Flanders以美国印第安人语言保护和坚持数字档案(DAILP)项目为例所描述的那样,如果功能规范包含更深层次的上下文信息,就可以更有效地充当项目团队不同部分之间的桥梁:不仅是用户故事,还有关于特定用户社区的动机和投资的详细信息,这反过来帮助团队理解项目数据的形成方式和原因。在DAILP项目中,了解切罗基部落中语言学习者、学术研究人员和语言专家的不同需求对于技术设计和各级决策至关重要。随着DSG为项目团队编写功能规范开发模板和指导,我们更加强调这些主题,并敦促项目使用功能规范作为早期对话的提示。DSG也一直在尝试让项目团队更充分地参与功能规范本身的创建,而不是将其视为纯粹的技术流派。DSG副主任Amanda Rust讨论了她与项目团队的工作民权和恢复性司法项目(CRRJ)对项目的工作过程和研究进行了详细的描述,这一过程使团队能够更具体地想象功能的可能性,并加强了他们在开发过程中的参与感和投资感。
正如高级数字图书馆开发人员David Cliff在他对小组的贡献中所指出的,功能规范的一个重要作用是使项目范围变得清晰和一致,并避免沟通不畅或可怕的“范围蔓延”,当功能需求在一开始就没有清楚地列出时,就会发生这种情况。与此同时,正如他和其他人所指出的那样,这样的研究项目在探索新的可能性时,从本质上讲容易发生变化。同样,DSG作为一个应用研究小组,总是冒险进入不熟悉的领域,在那里很难精确估计时间。
因此,功能规范必须谨慎行事,一方面是试图太过紧密或过早地确定事情,另一方面是让事情过于不明确,以至于项目永远不会完成。迭代在这里扮演着重要的角色:有时项目团队需要看到搜索结果显示的原型,然后才能想象出使其真正有用的全部方面和选项集。为了发挥最大的作用,功能规范需要能够建立可实现的中期目标,同时还能跟踪项目的最大愿景。因此,它始终是一个活生生的、不断发展的文件,正如一位听众在小组讨论中指出的那样,它需要使这种发展成为可能。
到目前为止,数字奖学金小组已经制定了三个功能规范草案和一个模板草案,其中还记录了我们在这一领域的新兴实践。在未来的一年里,有几个领域将需要进一步的研究和实验。首先,我们希望创建一个更完整的模板和更详细的文档,说明功能规范的不同部分如何以及何时最有用。其次,我们希望继续尝试让项目团队参与创作过程。第三,我们需要开发有效的方法,将规范中的特定功能转化为具体的开发任务(通过GitHub跟踪)。最后,我们需要解决版本控制的问题,并创建透明的机制,允许规范在不失去其文档价值或造成混乱的情况下演进。