如何评估一个需求开发通常需要多长时间?

news2024/12/26 23:35:32

业务人员和产品管理者有时候会想要知道在他们即将进行的项目中,“处理需求”的环节会花费多长时间。但这个问题并没有固定的答案,因为这会取决于很多因素。

有许多已经公开的行业平均数据可以提供参考,它可以提示我们在一个典型项目中应该花多大比例的精力去进行需求开发,这包括需求收集(也被称为需求引发)等活动。但是,不同来源的基准数据并不总是能够达成一致,而且这些“典型”的项目是否和你自己的项目类似也是一个未知数。

在这篇文章中,作者会基于他的书籍内容提出一些建议,关于你应该如何确定在需求收集等活动上投入多少适当的时间和精力。

一、行业基准

这里提供了一些行业基准数据的示例,这些数据显示了在几种不同类型的项目中,平均有多少比例的总工作量和时间被用在了需求搜集和原型设计上。这些基准数据来自Capers Jones的“软件评估,基准和最佳实践”,主要针对非常大型的项目,这些项目规模大约是10000个功能点(大约一百万行代码)。读者需要去思考他们自己的项目是否与这些基准数据相似。

但是,使用这种类型的行业基准数据存在一个问题,那就是这些数据并未表示出这些项目有多成功,或者每个项目中“成功”的定义是什么。这些数据也没有指出,比起不那么成功的团队,更成功的团队是否投入了更多的工作在需求搜集活动上——这些数据只是真实情况的平均值。

通常,项目团队可能只在需求收集等活动上花费10%或更少的工作量,但是增加投入会有很大的收益,只要团队不陷入分析过程中无法行动的状态。与许多人的看法相反,投入更多的工作去改进需求开发流程实际上可以加速开发过程。

作者在柯达公司工作时参与的一些小型项目中,他们的团队通常会在需求活动上投入占总工作量的15%-18%。他们发现这种投入减少了项目交付后需要返工的情况。尽管很难确定原因和结果之间的确切联系,但作者认为他们维护需求的水平较低的主要因素是他们培养了广泛的用户参与。

作者无法告诉读者在他们的下一个项目中,他们应该预计花费多长时间在需求收集上。但是,文章中的图表1指出了一些可以加速需求过程的条件,以及一些其他因素,这些因素会增加开发有效需求所需的时间。

图一

二、自身经验

对于初学者来说,最好的办法是收集一些数据,了解你自己的项目工作量有多少花在需求收集上。

这将有助于你评估你过去的需求开发过程的表现如何。在估计未来项目的需求工作量时,你可以参考这些历史数据。你可以使用图1中的考虑因素来调整你的初始估计,以弥补你的下一个项目与基准项目之间的差异。考虑任何可能影响你自己项目的其他因素。你可以将图1中显示的每个因素在0(无影响)到5(重大影响)的范围内进行打分。这种分析可以帮助你找出可能会延长你的需求开发工作的风险因素。

另一个需要考虑的因素是项目所遵循的开发生命周期。并非所有的需求搜集工作都应该在项目的早期阶段完成,就像在顺序或瀑布生命周期模型中那样(参考图2中的虚线)。不要把需求搜集工作想象成一个离散的“需求阶段”,而应该考虑一系列贯穿项目生命周期的需求相关活动。特别是,一旦系统需求规范(SRS)的一组需求基线被确定,并且开始出现变更请求,需求管理就会变成一个持续的操作。

图2

三、迭代和增量方式

一些遵循敏捷开发方法的项目,如Scrum,因为使用了一种增量方法,所以能快速构建产品的小部分。这使得用户能够快速看到可能有用的功能,同时这又能帮助团队更精确地确定他们的需求,同时开发者可以跟上不断变化的商业需求。敏捷项目会有频繁但规模小的需求收集工作(参考图2中的实线)。

与传统项目的需求工作不同,敏捷项目的需求工作贯穿于整个项目周期。初始的需求探索会产生各种优先级的待开发功能。当某个特性或功能被安排到一个特定的迭代中时,团队会将该功能的需求细化到足够让开发和测试有信心进行的水平。

比如,许多年前,我们的软件开发团队在一个成功的项目中就采用了这种增量方法。这个项目每三周向公司的内部用户社区发布有用的功能。每个三周周期的第一部分时间被用于项目计划、开发以及为该周期内的增量收集需求。团队仅为该增量做了足够的需求开发,以便快速实现它,并逐渐向用户提供新功能。用户对这些增量的反馈有助于指导项目的其余部分,以提供最大的价值。

然而,并非所有项目都适合进行如此细粒度的增量交付。例如,当对现有应用进行重新设计时,新系统需要具备一定量的功能,用户才能转向使用它。无论你的团队在每个项目周期中处理多大的增量,他们都需要理解该增量的需求,以避免对设计、代码和测试进行大量的修改和返工。

需求的规划和发掘

在收集需求时候,考虑以下活动是否必要:

  1. 组织研讨会和访谈
  2. 审查现有的文件和产品
  3. 准备、发放和分析问卷调查
  4. 创建并评估原型、分析模型以及其他需求视角
  5. 进行可行性、风险、安全、故障分析
  6. 将需求信息输入到数据库中
  7. 审查需求规格说明书
  8. 基于需求开发测试用例,并测试用例
  9. 在审查或测试分析后修改需求规格说明书

你的团队可能不会在每个项目上执行所有这些活动,他们可能也需要执行其他任务作为需求引发、分析、规范和验证的一部分。你所学到的关于分析师实际执行的任务以及那些任务需要多长时间的任何信息,都将提高你对未来项目所需的需求开发工作量的估计能力。

需求管理

 需求管理指南: 

需求管理: 需求管理主要内容  |  需求管理的重要性  |  采用敏捷方法进行需求管理  |  如何克服需求管理的 5 大挑战  |  更多 

需求编写: 功能需求的示例和模板  |  采用 EARS 方法来改进需求工程  |  如何编写一份优秀的产品需求文档(PRD) |  功能性需求与非功能性需求的区别  |  有效需求的特征  |  更多 

需求收集和管理流程: 需求工程概述  |  产品团队的需求分析指南  |  敏捷产品团队的 11 种需求收集技巧  |  定义和实施需求基线  |  更多  需求的可追溯性: 什么是需求可追溯性  |  可追溯性在现代产品和系统开发中的关键作用  |  如何创建和使用需求追溯矩阵  |  更多 

需求确认和验证: 产品团队的需求验证和确认  |  更多 

需求管理领域文章:

 做好需求分析的4大关键认知  |  盘点国内9款热门需求管理系统  |  构建产品路线图的方法与工具  |  做好需求优先级判断的7种主流模型  |  采用敏捷方法进行需求管理  | 更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/937846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本质矩阵E推R和T

https://zhuanlan.zhihu.com/p/500798616 https://zhuanlan.zhihu.com/p/435306687

在vue项目中引入vuex使用(引入到vue项目中)

项目下新建store文件 // npm下载后 导入 import Vue from vue import Vuex from vuex// 注册在vue实例上 Vue.use(Vuex)// 定义结构 export default new Vuex.Store({state: {},getters: {},mutations: {},actions: {},modules: {} })//main.js import store from ./storenew …

LLMs参数高效微调(PEFT) Parameter efficient fine-tuning (PEFT)

正如你在课程的第一周所看到的,训练LLMs需要大量的计算资源。完整的微调不仅需要内存来存储模型,还需要在训练过程中使用的各种其他参数。 即使你的计算机可以容纳模型权重,最大模型的权重现在已经达到几百GB,你还必须能够为优化…

windows系统 Fooocus 图片生成模型 ,4-6GB显存即可玩,27S/p

安装步骤: 1.下载程序代码框架,大小2GB ,下载 ​​​​​​https://github.com/lllyasviel/Fooocus/releases/download/1.0.35/Fooocus_win64_1-1-1035.7z 2.下载模型文件sd_xl_base_1.0_0.9vae.safetensors ,大小6GBhttps://huggingface.co/stabilityai/stable-diffusion-x…

【C++】—— C++11之线程库

前言: 在本期,我将给大家介绍的是 C11 中新引进的知识,即关于线程库的相关知识。 目录 (一)线程库的介绍 1、线程库的由来 2、线程库的简单介绍 (二)线程函数参数 (三&#xf…

在线外卖平台源码 美团外卖源码 支持多商户+多样化配送费模式+本土外卖平台+支持第三方配送

进云仿美团外卖源码是一个进云源生插件,支持多商户多样化配送费模式本土外卖平台支持第三方配送,运行需要进云框架支撑! 特点: 1、多样化配送费模式; 2、板块-绑定商户分类机制; 3、板块显示时间&#…

应急物资管理系统|库房三维可视化

智慧应急物资管理系统(智装备DW-S300)是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 政府相关部门设立的应急物资库是防灾救灾、…

javaCV实现java图片ocr提取文字效果

引入依赖&#xff1a; <dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.5</version></dependency> 引入中文语言训练数据集&#xff1a;chi_sim GitHub - tesseract-ocr…

Failed to load ApplicationContext解决办法,spring版本问题

有如下报错&#xff1a; "D:\Program Files\Java\jdk-13.0.1\bin\java.exe" -agentlib:jdwptransportdt_socket,address127.0.0.1:7325,suspendy,servern -ea -Didea.test.cyclic.buffer.size1048576 -Dfile.encodingUTF-8 -classpath "D:\Program Files\JetBr…

飞腾CPU如何使用PXE方式安装麒麟桌面系统?

目前国产CPU(桌面级、服务器级)中,飞腾应用较为广泛,在飞腾CPU架构下,搭载以银河麒麟V10 SP1系统为主,下面我们从环境准备、环境搭建、UEFI PXE功能确认、x86笔记本软件环境配置四部分来介绍国产笔记本电脑飞腾CPU使用PXE方式安装银河麒麟V10 SP1系统的详细过程。 一、环…

【RISC-V】RISC-V寄存器简介

一、通用寄存器 32位RISC-V体系结构提供32个32位的整型通用寄存器寄存器别名全称说明X0zero零寄存器可做源寄存器(rs)或目标寄存器(rd)X1ra链接寄存器保存函数返回地址X2sp栈指针寄存器指向栈的地址X3gp全局寄存器用于链接器松弛优化X4tp线程寄存器常用于在OS中保存指向进程控…

初阶数据结构(五) 栈的介绍与实现

&#x1f493;博主csdn个人主页&#xff1a;小小unicorn&#x1f493; ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的学习足迹&#x1f69a; &#x1f339;&#x1f339;&#x1f339;关注我带你学习编程知识 栈 栈的介绍栈的概念栈的结构 栈的实现…

Spring Framework CVE-2020-5408 CORS 配置漏洞

文章目录 0.前言1.参考文档2.基础介绍3.解决方案3.1. CrossOrigin限制指定来源3.1. WebMvcConfigurer 限制指定来源3.3. 其他用法1. 在方法上使用CrossOrigin&#xff1a;2. 在Controller上使用CrossOrigin&#xff1a;3. 设置多个源&#xff1a;4. 设置所有源&#xff1a;5. …

nginx服务与调优

一、nginx概述&#xff1a; 1.Nginx简介&#xff1a; Nginx是一个高性能的HTTP和反向代理服务器。是一款轻量级的高性能的web服务器/反向代理服 务器/电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;单台物理服务器可支持30 000&#xff5e;50 000个并发请求…

初识umi

一、umi简介 Umi&#xff0c;中文发音为「乌米」&#xff0c;是可扩展的企业级前端应用框架。Umi 以路由为基础的&#xff0c;同时支持配置式路由和约定式路由&#xff0c;保证路由的功能完备&#xff0c;并以此进行功能扩展。然后配以生命周期完善的插件体系&#xff0c;覆盖…

运行命令出现错误 /bin/bash^M: bad interpreter: No such file or directory

在系统上运行一个 Linux 的命令的时候出现下面的错误信息&#xff1a; -bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory 这个是在 Windows 作为 WSL 的时候出的错误。 原因和解决 出现问题的原因在于脚本在 Windows 中使用的回车换行和 Linux …

ANSYS软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 ANSYS是一款全球领先的工程仿真软件&#xff0c;广泛应用于机械、电气、流体、热力学等领域。它提供了强大的建模、网格划分、材料库、边界条件和载荷、求解器、结果后处理、批处理和脚本编程、多物理场仿真、协同设计和教育版等…

深入理解Android消息机制的原理

Handler & Looper & MessageQueue关系简述 一个线程至多有一个looper&#xff1b;一个looper有一个mq&#xff1b;一个mq对应多个message&#xff1b;一个message对应多个handler。消息类型&#xff1a;同步、异步、同步屏障消息。无限循环&#xff1a;在队列中没有消…

【C++从0到王者】第二十四站:多态的底层原理

文章目录 前言一、虚函数表二、一道经典的例题三、深度剖析多态的条件之一&#xff1a;为什么必须是父类的指针或引用四、深度剖析多态的条件之二&#xff1a;为什么是虚函数的重写/覆盖&#xff1f;五、虚函数表的一些总结六、关于Func3的验证七、动态绑定与静态绑定八、总结 …

数据分析作业2

中国在 2020 年开展第七次全国人口普查&#xff0c;截止 2021 年 5 月 11 日普查结果公布&#xff0c;全国人口共1411778724人。单从数据表格看相关数据不够直观&#xff0c;需要进行数据可视化展示&#xff0c;方便查看数据结果。 任务一&#xff1a;链接 MySQL 数据库&#x…