热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

什么是敏捷又不被技术嫌弃的需求文档?

本文摘自PM圈子网—PM牛人聚集地(www.pmleader.cn)转载请注明来源先问几个问题,大家觉得写文档是一件必要的事吗?你喜欢写文档吗??你写的文档程序猿和测试会看吗??假如你自己能独

本文摘自PM圈子网—PM牛人聚集地(www.pmleader.cn)转载请注明来源


先问几个问题,大家觉得写文档是一件必要的事吗?你喜欢写文档吗??你写的文档程序猿和测试会看吗??

假如你自己能独立设计和开发一个产品,你甚至根本就不需要写文档。文档的存在很大程度是因为团队协作需要进行信息传递。但负责传递信息的文档会存在几个问题,信息传递会有损失。

存在写文档的成本。

存在阅读理解成本。

而在一个变化万千的互联网行业里,大家应该知道有一种绝望叫做,当你还在写文档的时候,别人已经在收集用户反馈了。

关于信息传递在知乎我找到一个图表,大概表达的是“沟通成效和沟通渠道的关系”,我们可以发现右上角面对面交流的效率是最高的,左下角用纸来交流效率最低。

当今的世界是敏捷开发的天下。传统开发过程中,人们通过交付文档来获得价值。但这样做的结果仅仅是撰写了产品的附加件而已,对于产品本身的交付没有太大的帮助。在经典的敏捷软件开发宣言中,我们会发现很有名的一句话,工作的软件高于详尽的文档,你写再多的文档也不如用一个哪怕简陋却可运行的软件来阐述明白你的问题。

当然文档也有它存在的必要,比如说它的“记录”功能,若干个月后,项目换了负责人,他就可以通过这份文档了解项目的来龙去脉,从而更好的传承设计思路。文档也有益于解决纷争,当传递过程中信息流失太多,事后追究过错,看一看文档就能找到问题所在。

因此在互联网行业,无论是大企业还是创业公司,文档有其存在的必要,但这个文档应该是一份轻量且高质量的文档。那么一份敏捷有效的文档应该遵循怎样的原则呢??

最最基本的有两条:

敏捷性

可读性

什么叫敏捷的文档,我的理解就是“精简易迭代”。

所谓精简,就是指你的文档只讲重点,什么标题目录复杂的专业术语统统都先抛掉,只写当前任务的核心要点。有些需求文档会先讲行业和业务背景,还会有名词解释的类别,专门有一块来解释后文难懂的专业术语,而对于一份敏捷的文档来说,这些细节应该在MRD或者BRD里说明,不应该在PRD里废话。如果程序猿需要了解业务背景知识,当面讲给他听。

所谓易迭代,就是这份文档要有一个易于迭代的形式。一是编写人员不应该花费过多的时间去注意排版和规范,思考的重心在需求内容。二是要有迭代记录的区域,需求变更频繁,变动的原因、时间、提出人、处理情况还是有必要记录下来的。当然大家可以将这部分统一进PRD的文章开头,也可以另外用专门的软件或文档来管理。

关于“敏捷性”还有一个要点要提一提,就是编写文档的时机。我们要知道,不是先写文档,才做产品。合理的顺序应该是先有产品,需要的时候才写文档,当然这一点比较难把握,实际操作中大家需要综合考虑。

接着说可读性,我的理解也是两个要点:

形式易读

考虑阅读对象

关于形式易读,其实它会增加编写人员的写作成本,但还是有一些很基本的技巧和方法可以快速的达到目标。最起码,我们要用上设计四原则的前两个,亲密性和对齐,再用简单的色块区分开文档的不同要点,就能很大的提高阅读人员的理解速度,同时不会增加太多的编写成本。

接着就到了本文浮夸标题的内容了T.T,也就是写一份考虑阅读对象尤其是程序猿的文档。写文档的人其实最怕写完文档却没人看,所有的努力仿佛都被浪费了,而产品需求文档最主要的阅读人员就是开发工程师和测试工程师。那究竟怎样的文档才是他们喜闻乐见的呢??

我的想法是写一份符合程序猿思维模式和工作方法的文档。

比如说测试最常见的工作方式是什么,就是撰写测试用例。测试用例如果简化一点,我们可以用写“用户故事”(user story)的方法来写。

用用户故事的方法来编写需求文档,可以让我们将注意力放在需求上,而不是解决方法和实施技术上。过早的提及技术实施方案,会降低对需求的注意力。

这里我上网搜了一下资料,规划业务需求,可以采用“3W模板”,也就是:

谁(Who)

是什么(What)

为什么(Why)

上面的3W实际上就是描述了相关利益者是谁,他们想要什么,他们为什么有这种需求。下面举一例子进行说明:

谁(Who):用户

是什么(What):希望借助一个应用程序在不同服务器间传输文件为什么(Why):为了存储项目数据

为了更加接近“用户故事”,我们可以改写为:

谁(Who):消费者/用户

是什么(What):想将归档过程数字化

为什么(Why):为了增强沟通,提高分享效率

敏捷项目中编写用户故事有一个常用模板:作为一名“用户类型”,我想要“需求”,以便于“原因”。应用到这个例子,就是:作为一名用户,我想要将归档程序数字化,以便于增强沟通、提高分享效率。

多数情况下,需求内容需要更加充实和详细,这一步要放到后面做,开始不要这样。用户故事的方法有时会因过于简短、不断重复而受到批评。这里我们必须明白:需求文档不是散文或诗歌,应该清晰、简明地描述用户需求;需求文档的重点也在于此,不要管形式多变或内容是否重复这样的问题。

然后作为一个不太懂技术的产品,我了解到开发中最常用的一个软件设计框架叫做MVC框架。

它的运作规则我还在学习,但它给我编写需求文档提供了一个重要的指导意义,就是在开发的思维里,用户的输入行为、后端规则和前端交互是独立出来的,我们在撰写文档时是不是也可以按照这种思维方法来区分内容。对此我设计了一个需求文档的模板,欢迎大家提出参考意见啊,这个文档还有很多缺陷,欢迎大家提出修改意见和我交流哦。



推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 大势至服务器文件备份系统是一款专为服务器数据保护设计的安全软件,能够实现自动化的全量备份和增量备份,支持多种备份目标,如服务器其他分区、外接硬盘、其他服务器或NAS存储空间,并提供灵活的备份频率设置,有效保障服务器文件的安全。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 操作系统如何通过进程控制块管理进程
    本文详细介绍了操作系统如何通过进程控制块(PCB)来管理和控制进程。PCB是操作系统感知进程存在的重要数据结构,包含了进程的标识符、状态、资源清单等关键信息。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • 隐藏的威胁:你的供应链是否真正安全?
    在网络环境日益复杂的当下,诸如网络钓鱼、DNS欺骗、勒索软件和中间人(MITM)攻击等威胁手段已司空见惯。这些攻击手段无孔不入,对供应链的安全构成了严重挑战。企业必须加强安全意识,采取多层次的防护措施,以确保供应链的每一个环节都得到有效保护。 ... [详细]
  • 在前一篇文章《Hadoop》系列之“踽踽独行”(二)中,我们详细探讨了云计算的核心概念。本章将重点转向物联网技术,全面解析其基本原理、应用场景及未来发展前景。通过深入分析物联网的架构和技术栈,我们将揭示其在智能城市、工业自动化和智能家居等领域的广泛应用潜力。此外,还将讨论物联网面临的挑战,如数据安全和隐私保护等问题,并展望其在未来技术融合中的重要角色。 ... [详细]
  • 夸克网盘电脑版上线,实现三端同步备份与高效编辑播放功能 ... [详细]
author-avatar
_郭士铭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有