25-项目需求如何有效梳理

现在我们的需求梳理方式,基本上就是一句话。什么意思呢?就是有一个需求文档,项目负责人把要做的事情依次列出,再对其进行评估,如果需要设计原型,就安排产品进行功能原型设计,如果需要提供解决方案,那么就先安排自己或其他开发成员提供解决方案。 好像没有什么问题?其实,真正的产品需求文档,也就是俗称的 PRD 文档,是很规范的,就不说什么形式上的问题,比如文档信息、版本更新历史、名词解释等等。就光内容的要求,就很精细。就拿 APP 的 PRD 文档来说,是需要把原型的图片贴到文档里的,然后要对每个功能和交互进行说明,比如点击这个按钮,会出现什么弹窗,弹窗的布局是什么样子的,内容是什么,文本是什么颜色的,是使用什么字体的等等。比如,XiaoPiu 的官方示例: 这样详细的好处是,在之前的文章《16 - 项目的任务质量如何保证》中已经有过类似的叙述,那就是避免需求边界不清晰,导致后续的返工。 但是,对于我们现阶段而言,项目的需求应该怎么梳理呢?这个怎么说呢?如果是在大公司,分工比较明确,那么这样做无可厚非,精益求精未尝不可,但是,如果是中小型公司,或者只是一个部门,要自负盈亏,考虑到实际工作中的产出,或者说性价比,那么就感觉有点过度精细了,说好听点,是追求极致与差不多这个度怎么把控的问题,说直白点,是怎么利益最大化的问题。 所以,从实际情况出发,虽然 PRD 文档规范化,有诸多好处,但是投入产出比显然很低的,因为没有那么多人手把这个需求做到这么精细的程度,加上平时沟通也很及时,有什么问题及时沟通处理就行,而且,PRD 文档规范化还有一个重要的目的是,为了和其他部门或其他公司进行沟通交流使用的。 可是,只是我们部门内部使用的需求文档,就没必要这么精细了,只要能做好这件事情就行。但是,虽然是一句话需求,但还是有优化空间的,我们做不到整个文档规范化,但对这一句话的需求,可以规范化。 上面说的是 PRD 文档的规范问题,但其实,对于需求的整理,可以遵循需求的 INVEST 原则。需求的 INVEST 原则最早由 极限编程(XP)的倡导者 Bill Wake 提出。这一原则旨在指导敏捷开发中用户故事的拆分与编写,帮助团队更高效地管理需求,确保故事的可交付性和价值性。 INVEST 原则主要用于优化用户故事的描述,使其满足以下特性: 独立性(Independent):故事之间减少依赖,便于单独开发和测试。 可协商性(Negotiable):避免过早锁定细节,鼓励通过沟通逐步完善需求。 有价值(Valuable):每个故事必须为用户或客户提供明确价值,避免资源浪费。 可估算(Estimable):团队能评估工作量以制定迭代计划。 短小(Small) :单个故事工作量控制在几天内,以降低风险。 可测试(Testable):明确验收标准,确保功能可验证。 结合我们部门自身情况,需求来源其实很多的,所以可分为两种,一种是部门外,另一种是部门内,如果是部门外,需要加上角色;如果是部门内,角色可不加。可以简化为,是谁?要做什么?为什么? 这里就以设备管理功能,写一个示例参考: 深圳客户希望能看到自己有多少台设备,方便统计和日常维护。 是谁:深圳客户 要做什么:看到自己有多少台设备 为什么:方便统计和日常维护 通过这种方式,既能保证需求的清晰性和可操作性,又能在现有资源条件下实现需求梳理的优化,为项目的顺利推进奠定基础。

2025-05-15 · 1 分钟 · 45 字

24-项目测试流程漏洞分析以及改进

1. 前言 项目发起测试时,首先要在 OA 填写软件测试申请单。填好之后,由项目负责人准备当前版本的测试用例,交给测试部门,同时沟通确定测试周期,之后才正式开始项目功能测试。 2. 线上版本出现明显的问题 最近有个线上平台,客户反馈说平台里有个列表的按钮怎么点都没反应,而且弹窗的样式也错乱了。可这个版本明明是测试通过才上线的,这就说明测试环节肯定出问题了。 3. 问题产生的原因分析 为什么会出现这种情况呢? 主要还是测试流程有漏洞。因为项目负责人提供给测试部门的测试用例,只包含了当前迭代的需求。所以测试的时候,测试人员就只测了新增加的功能,而出问题的那个功能是旧功能,因为不在迭代的需求范围内,所以压根就没测。 按理说,这个旧功能没做任何改动,怎么会出问题呢? 后来发现,在开发当前迭代需求的时候,有可能开发人员不小心动到了这个功能的代码,或者是在修复其他小问题的时候影响到了它。 还有可能是当前迭代需求其实和这个功能是有关联的,但我们只关注了迭代功能有没有完成,根本没管那些关联功能,这才导致问题在实际使用的时候暴露出来。 4. 测试流程改进办法 为了解决测试覆盖不全,又不想每一轮都全部测一遍浪费时间的问题,我们优化了测试流程: 项目负责人这边要提供完整的测试用例,还要标注清楚当前版本里哪些功能必须测试,哪些不用测试。 测试人员分三轮进行测试: 第一轮,不管标注的是不是必须测试,把平台所有功能的测试用例都过一遍; 第二轮,专门验证已经修复的 Bug,同时再把那些必须测的功能测一遍; 第三轮,等所有 Bug 都修好了,确定没什么大问题了,再把平台全部功能的测试用例再过一遍。 这样一来,既能保证测试全面,又不会做太多无用功。

2025-05-14 · 1 分钟 · 27 字

23-项目当前版本中修复上个版本测试反馈 Bug 的时机

1. 前言 项目当前版本(假设为1.0)开发完成之后,会提交给测试组进行测试,然后,开始进行下一个版本(假设为2.0)的研发工作。 但是,测试组测试周期可能要一两个月,期间会不断的反馈 Bug 到系统里,等项目当前版本(1.0) Bug 修复完成之后,再进行下一轮的测试。 这时,项目新的版本(2.0)功能开发进行中,每个人都已经有自己的开发任务了,时间也排好了,应该怎么安排? 还有,在 A 功能模块上修复 Bug,而同时又在 A 功能模块上开发新的功能,代码合并可能会冲突等等问题怎么处理? 2. 权衡任务调整的利弊 因为测试反馈 Bug 数量不是一个可控的事情,有时第一轮测试完成,都没几个 Bug,有时第一轮测试就反馈好几十个 Bug,完全可以衍生新的任务,评估个两三天去处理。 所以,如果你打算,暂停或推迟当前版本(2.0)的开发任务,而去执行修复上个版本(1.0)的 Bug 的任务,很有可能收益不大,因为可能都没有几个 Bug 让你修复。 但是,如果你完全对第一轮反馈的 Bug 不管不顾,又会影响到测试组的测试进度。 3. 基于测试周期的任务调整 上面说的,虽然测试反馈 Bug 的个数是不可控的,但庆幸的是,测试周期是明确的,比如第一轮具体是什么时间段,第二轮又是什么时间段,这些都是前期沟通好的,虽然偶有变数,但是大体上问题不大。 在这个基础之下,项目负责人就要根据测试轮次结束的时间,对当前反馈的 Bug 情况,进行任务上面的调整,比如第一轮测试反馈了 50 个 Bug,然后按功能模块划分清楚,以及哪些功能模块对应的负责人是谁,修复这些 Bug 需要多少工作量,新增一条修复 Bug 的任务在项目当前版本(2.0)计划中。 4. 测试环节的漏洞 但是,如果 Bug 特别多,花费了大量的时间,甚至影响到了当前版本(2.0)的开发进度怎么办? 这个时候,是否需要延长修复 Bug 的任务呢? 缩短开发的任务时间呢? 加加班? 这些方式可以解决这个问题,但是,治标不治本。 因为在这个功能到测试组介入参与测试时,其实,已经有过三个环节,对功能进行测试了。 一个是功能开发人员自测,编写测试用例,然后对开发的功能点一一测试。 另一个是功能开发任务验收,这个验收的工作就是根据功能开发人员提供的测试用例,验收人自行跑一下这个测试用例,看下有没有什么问题。 最后一个是项目负责人内测,就是项目当前版本(1.0)结束,要给测试组提测之前,把全部功能都测试一遍。 上面这三个环节,为什么不能发现和解决掉一些很明显的 Bug,而一定要测试组测试时才发现? 5. 优化测试流程 理想状态下,每一轮测试都不应反馈那么多 Bug 的,然后需要排两三天的时间去处理的,通过一两天差不多了,甚至在开发当前功能时抽个一天的时间解决掉就行。 所以,回答项目开发中应什么时候去修复测试反馈的 Bug 这个问题,那就是做好下面的流程: ...

2025-05-08 · 1 分钟 · 97 字

22-怎么对反馈的 Bug 进行有效管理

一个项目的 Bug 来源是多方面的。有的是线上功能试用反馈,比如客户在使用平台功能时,发现了影响功能使用的 Bug;有的是项目负责人验收任务时反馈的;还有的是测试人员反馈的。 测试人员反馈的 Bug 一般都记录在 Bug 系统里进行管理,所以问题不大。发在沟通群里的,多个人看到了之后,会给功能负责人带来一定的约束力,通常问题也不大。 最大的问题是那种私底下一对一沟通反馈的 Bug。比如,项目负责人张三给项目成员李四发消息,反馈了一个功能上面的 Bug ,李四说记下来了。 如果李四解决了并反馈给张三,那还好;但如果李四不反馈,张三就不知道这个 Bug 的状态了。除非张三主动去问,否则谁也不知道这个 Bug 是否已经解决。 写到这里,我不由得感叹,要做好一件事情,各方面的协作都要到位。**任何一个流程没有有效执行,都会导致后续的环节发生变化,并需及时提供相应的对策,从而使简单的问题复杂化。**所以,制定清晰的流程并传达到位,是多么的重要。 首先,在推动从流程入手解决这个问题之前,要先分析一下: 为什么反馈 Bug 时要私底下一对一沟通呢? 为什么不直接发到沟通群里呢? 原因很简单,大家都是同事,低头不见抬头见。发现对方开发的功能出现了 Bug,虽然不是什么大事,毕竟,谁都不能保证自己开发的功能,一个 Bug 都没有。只是,发到项目沟通群里,当众指出别人的问题,不管对方心胸多么宽广,总会不高兴的,自然而然,都会觉得没必要做这种不讨好的事情,反正能解决掉这个 Bug 就行,是否是私底下一对一沟通反馈,没有那么重要。 我觉得换位思考,上面这样的原因是可以接受的,但是完全依赖人,而不是依赖流程,是不能彻底解决掉问题的。 所以,我们可以这样规定: 在 Bug 系统上进行管理,为项目创建一个对应的版本。在这个版本的开发时间段内,遇到的所有问题,以及别人反馈的 Bug,都记录在这个上面,而不是私下沟通。这样虽然是公开的,但是不去看就不会知道,不像在项目沟通群里,当众处刑。 因为 Bug 系统是和邮件关联的。比如你是项目负责人张三,在验收李四开发的一个功能时,发现了问题123,那么就在 Bug 系统记录,并分配给李四。 等李四解决掉 Bug 之后,就修改这个 Bug 的状态为 “已解决”,张三就知道 Bug 已经解决了,然后再去跟进,这样就形成了闭环。 那如果张三还是不把 Bug 记录到 Bug 系统,或者李四解决了 Bug 但没有在 Bug 系统上修改状态呢? 那就需要及时介入沟通了,不能听之任之。抓而不紧,等于不抓,出现问题要第一时间解决,表明你对这件事情很重视。 否则,大家都觉得可有可无,慢慢就变成做做样子应付了事,那通过流程化解决对 Bug 进行有效管理的初衷就无法达成了。

2025-04-30 · 1 分钟 · 62 字

21-项目里程碑应有复盘会议

1. 前言 复盘会议通常是在项目某个版本完成开发并正式上线之后才召开的,但复盘工作其实并不是等到最后才开始的。项目负责人应该在项目前期就开始着手准备,在项目推进的过程中,持续记录各种各样的问题,这样在会议上就能有更充分的内容来进行讨论和总结经验。 当项目负责人要召开项目复盘会议的时候,需要把项目相关人员都通知到位,比如产品、后端、前端和测试等等。然后预订一个会议室,在群里发布会议通知,到时候按计划如期进行。 这个复盘会议对于项目负责人来说,一方面能够吸取项目管理方面的经验,另一方面也有助于提升项目团队的凝聚力。 在会议上,把项目开发过程中哪些是做得好的,哪些是做得不好的,依次都列出来,让大家一起讨论一下,有一个总结与反思的过程,也是一个一起分享成果的过程。 对于做得好的地方,那肯定是要表扬的;对于做得不好的地方,大家就再接再厉。 复盘会议上讨论的内容,基本上涵盖了项目版本周期的方方面面,目前主要总结了以下几点。 2. 任务完成情况 这个版本的项目任务计划制定得是否合理?哪些任务有多次变更的?已过期的任务具体原因又是什么? 3. 测试反馈BUG问题 把这个版本测试提出的 Bug 整理和归纳一下,分析一下具体的情况。哪些 Bug 是完全可以通过提前规划来避免的呢?比如输入框的校验,基本都没有,功能开发的时候,只是保证能用就行了,功能的边界完全没有自测。类似这种问题,就可以在会上进行讨论,然后达成共识,加入到开发规范里,后续就可以规避类似的问题了。 4. 会议记录 我们每次开会都有会议记录文档,然后会把反馈的问题都记录下来。这些文档在复盘的时候就会起到作用,可以从中吸取经验。看看有哪些问题是第一次出现的,那有没有对策可以避免再次出现呢?这些都是可以在复盘阶段解决的。 5. 技术笔记 技术笔记是开发过程中对功能难点进行总结的文档。遇到哪些功能解决不了的?后来又是怎么解决的?都可以在复盘会议上进行分享。 6. 群内反馈的问题 群里反馈的问题可不止是项目讨论群里的,还有其他客户群里的。客户反馈了哪些问题,又提出了哪些需求?后续我们的工作要怎么规划? 7. 总结 复盘的目的不是对过去的问责,而是对过去的反思和总结,并着眼于未来如何改善。 项目这个版本的功能已经完成了,事已至此,没必要深究谁没做好,然后让对方有心理负担。我们的目的一向是解决问题,这次没做好,下次做好不就行了,谁都有没做好的时候。 更重要的是,今天比昨天做好一点。更重要的是,着眼于未来,这个项目下一个版本能不能比上个版本做得更好一点?

2025-04-28 · 1 分钟 · 32 字