敏捷开发还需要PRD吗
一、PRD有什么用
prd提升与RD或者未来接手人的沟通效率
二、为什么会有PRD
首先来说说为什么会有PRD文档。
1、稍微大一点的团队产品经理未必能向每个人传达产品需求,这就需要有一个文档的形式来向项目的所有成员来传达需求,这就是文档的来源。
2、由于产品经理经常会变更需求,经常爱拍脑袋,容易变卦,所以程序员就想到用一个文档来约束产品经理。
3、测试人员需要根据产品需求文档来验收产品质量。
4、当你的项目有新人进入的时候,可以让新人更快的了解产品。当你离职的时候,继任的产品经理也可以根据你的文档来熟悉产品迭代的内容。
三、什么是敏捷开发
埃德蒙·伯克说过[我们担心人们会依照自身的理性主导起生活和交易,因为我们怀疑每个人的理性是相当有限的。]
应用到产品经理身上,我们可以把它翻译为:[我们担心产品经理们会依照自身对用户和社会的理解,来固执的设计产品,因为我们怀疑每个产品经理对用户的理解都是相当有限的。]
这就是敏捷开发的起源,那么我们该如何做到敏捷开发呢?
1、快速迭代。
产品通过短周期的迭代交付,通过不断的迭代完善产品。
2、快速尝试
避免长时间的需求分析和用户调研,快速进行尝试。快速验证市场和需求的真伪,抢占市场。
3、快速改进
在地带周期过后根据客户反馈快速改进。因为产品迭代很快,肯定会有不完善的情况,产品上线后需要收集用户需求,方向错了就调整方向,有bug就快速改bug。
4、充分交流。
团队成员的无缝交流,如每天短时间的站立会议。交流尽量扁平化,团队成员可以在坐的近一些,这样交流起来比较方便,而不是像大公司一样,一件事情需要走很多流程。
5、简化流程
拒绝一切形式化的东西,使用简单易用的东西开始工作。例如;把冗长的word文档去掉,代指在原型上简单的标注,其实说实话,你写的很长篇幅的PRD文档,开发的兄弟妹妹也不一定会看,白白浪费写文档的时间。
三、敏捷开发PRD文档该怎么写
既要敏捷开发,又要保证开发质量,这个时候PRD文档就显得重要了。
1、做好版本控制
版本历史记录要有。你的原型可能会更新好几次,这个时候你需要做好版本控制。每次更新的时候在版本命名上显示是那个几点几版本。同时在版本控制上显示每一版本更新了那些内容,这样别人一看就会一目了然。
2、feature list要有
feature list 告诉项目成员我们这一版本迭代那些内容,前台需要做那些,后台需要做那些,这样开发即使没有文档,也可以根据feature list来,而不会有遗漏,测试也可以根据你的feature list。feature list可能会更新,每一次更新可以用不同颜色的文字给表示出来。
3、功能说明直接在原型图上标注
程序猿一般都是看着原型开发,你之前写的冗长的PRD文档根本不看的。那么遵循敏捷开发的“尽量减少文档原则”,可以直接讲功能说明和需要注意的东西标注在文档上面,对于减少PM和PD的工作量都很有帮助,当然前提是你的PRD需求完整且逻辑清晰。
4、产品全局结构图以及一些重要的流程图不能省略
首先,全局结构图。产品全局结构图相当于房子的骨架,相当于文章的目录,别人看过你的全局结构图就知道你的产品大概分成那几个部分,这样别人阅读接下来的原型设计和文档的时候就会思路清晰。
其次,一些重要的功能流程图需要写。一些基本的流程图可以不写,但是一些重要的功能流程图,例如:充值、提现、购买这些流程。这样项目成员在会议以后也可以通过文档来重新温习一下。同时你把流程图整理好,也有助于开发人员的开发思路的建立,大大提升开发速度。
5、需要把规则和异常情况写上去
很多时候产品经理开需求评审会挨批的原因就是没有考虑周全,只考虑正常的流程,而没有考虑异常流程情况,无网络的情况等。例如:网贷平台用户支付系统你只想到用户输入支付密码,完成购买。但你没想到新用户用户如果没有实名认证是不是先要实名认证,认证完成以后要不要设置交易密码,如果交易密码输入错误怎么办?是提示他忘记密码还是让它重新输入?同时交易密码错误次数需不需要进行限制?如果支付金额不足怎么半…等等。这些只有考虑的细,考虑的全面。开会的时候才能少被喷,才能有气场。同时你考虑全面了,开发人员也会节省时间,不会在做的过程中给你发个邮件说出现某某情况怎么办。只有让他们信服你,减少他们的工作量,你和他们沟通起来,才会顺畅。
6、重要的名词需要清晰简洁的定义
重复出现的名字就不需要解释了。例如用户,当然如果你的目标用户变更了就需要重新解释一下,当然解释的词语的原则就是第一次出现而且比较重要,同时尽量用简洁精炼的语言把名词解释出来。
总结:其实实现敏捷开发文档只是一个手段,更重要的是多沟通,减少因为沟通少而产生的误解。当然一个好的PRD文档可以增加你们的沟通效率。
相关文章:

敏捷开发还需要PRD吗
一、PRD有什么用 prd提升与RD或者未来接手人的沟通效率 二、为什么会有PRD 首先来说说为什么会有PRD文档。 1、稍微大一点的团队产品经理未必能向每个人传达产品需求,这就需要有一个文档的形式来向项目的所有成员来传达需求,这就是文档的来源。 2、由…...

完整教程:使用Spring Boot实现大文件断点续传及文件校验
一、简介 随着互联网的快速发展,大文件的传输成为了互联网应用的重要组成部分。然而,由于网络不稳定等因素的影响,大文件的传输经常会出现中断的情况,这时需要重新传输,导致传输效率低下。 为了解决这个问题ÿ…...

数位dp-- 数字游戏
题目 思路 也是一道比较典型的数位dp的问题,关键的思想跟我上一篇博客很像, 首先把区间值变成[1,Y]-[1,X-1]的值,然后单独计算得到结果。 总的来说就是把这个数的每一位都单独拿出来,然后根据选0-an-1和选**an**两种方案单独计算&…...
Linux脚本 启动、重启、停止、授权
在jar包所在目录 vim start.sh | reload.sh | stop.sh输入以下命令 然后保存,进行授权 1.启动 nohup java -jar -Dfile.encodingutf-8 IntegrationFrame-sso-1.0.0-SNAPSHOT.jar & echo "started"2.重启 pid$(ps -ef|grep IntegrationFrame-sso-1.…...

Pytorch深度学习实战3-8:详解数据可视化组件TensorBoard安装与使用
目录1 什么是Tensorboard?2 Tensorboard安装3 Tensorboard可视化流程4 Tensorboard可视化实例4.1 常量可视化4.2 特征图可视化1 什么是Tensorboard? 在深度学习领域,网络内部如同黑箱,其中包含大量的连接参数,这给人工…...
华为OD机试 - 旋转骰子(C 语言解题)【独家】
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 使用说明本期题目:旋转骰子…...

如何做SpringBoot单元测试?
前言单元测试(unit testing),是指对项目中的最⼩可测试单元进⾏检查和验证的过程就叫单元测试,对于Java来说或者是在SpringBoot项目中,最小的可测试单元就是一个方法。做单元测试就是为了证明某段代码的执⾏结果是否符…...
ZZULI训练: 数组和字符串专题
ZZULI训练:数组和字符串专题ZZULI训练: 数组和字符串专题ZZULI训练:数组和字符串专题 部分多实例没写循环多次是因为在main里面循环了, 你们写的时候要加上只提供大概思路和核心代码建议多尝试一下c, 并没有想象的那么难 7-1 个位数统计 可以开个数组来存一下每个数组出现的…...
ElasticSearch如何解决深分页问题?
文章目录 前言From/Size参数Query阶段Fetch阶段深度分页问题Scroll遍历数据基本使用遍历优缺点缺点:优点:」Scroll Scan基本使用Scroll Scan与Scroll的区别Sliced ScrollSearch After基本使用基本原理优缺点总结ES7版本变...

JDK8新特性宝典
JDK8新特性 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台 课程内容的介绍 了解Java发展史Lambda表达式…...

【C++】关于C++模板的分离编译问题
文章目录1.阐述模板的实例化和重复定义问题2.分离编译可能出现的问题3.解决方法将函数模板的定义放到头文件中模板定义的位置显式实例化模板总结1.阐述模板的实例化和重复定义问题 C模板是一种非常强大的工具,可以为我们提供通用的代码实现方式。然鹅,在…...

小应用记账本-第2章-数据库设计
小应用记账本-第2章-数据库设计 在上一章《小应用记账本-第1章-需求分析》已经罗列了我们需要的功能,因为很简单,所以这一章就来设计数据库吧。 Account表:账户表 字段名类型说明取值idint账户idaccount_namevarchar账户名称remaining_sumd…...

Spring Boot+Vue前后端分离项目练习06之网盘项目创建vue项目
1.安装环境 构建vue项目,需要提前安装相应的环境,这里主要就是node,npm和Vue CLl。 #1、安装nodejs brew install nodejs #2、再执行下面命令来安装npm(npm是开发nodejs时所用的依赖库) brew install npm #3、安装vue cli npm install -g v…...
Python - 单元测试
python-单元测试1 Unittest2 Pytest3 两者区别断言方面用例执行编写规则前后置操作setUp, setUpclass, setUpmodule 区别4 实战操作unittest:pytest:1 Unittest unittest属于python的内置框架,支持多种自动化测试用例的编写,以及支持用例前置条件和后置…...

特权级那些事儿-实模式下分段机制首次出现的原因
前言: 操作系统的特权级模块在整个操作系统的学习中应该算的上是最难啃的了,提到特权级就要绕不开保护模式下的分段机制;如果想要彻底弄明白就要对比实模式下的分段机制有什么缺陷。这就衍生出很多问题如:什么是实模式?…...

详解Vue安装与配置(2023)
文章目录一、官网下载node.js二、安装Node.js三、环境配置四、idea导入vue项目五、IDEA添加Vue.js插件一、官网下载node.js Vue是前端开发框架。搭建框架,首先要搭建环境。搭建Vue的环境工具:node.js(JavaScript的运行环境)&…...

TypeScript深度剖析:Vue项目中应用TypeScript?
一、前言 与link类似 在VUE项目中应用typescript,我们需要引入一个库vue-property-decorator, 其是基于vue-class-component库而来,这个库vue官方推出的一个支持使用class方式来开发vue单文件组件的库 主要的功能如下: metho…...

linux面试高级篇
题目目录1.虚拟机常用有几种网络模式?请简述其工作原理或你个人的理解?2. Dockerfile中最常见的指令是什么?3.docker网络模式有哪些?4.Kubernetes有哪些核心组件这些组件负责什么工作?5. Pod是什么?6.描述一…...

java 4 (面向对象上)
java——面向对象(上) 目录java——面向对象(上)面向对象的思想概述类的成员(1-2):属性和方法对象的内存解析类中属性的使用类中方法的使用1.举例:2.声明方法:3.说明4.re…...
HTTP报头的2个方法
在采集网页信息的时候,经常需要伪造报头来实现采集脚本的有效执行 下面,我们将使用urllib2的header部分伪造报头来实现采集信息 方法1、 #!/usr/bin/python -- coding: utf-8 -- #encodingutf-8 #Filename:urllib2-header.py import urllib2 import…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...