《软件需求》读书笔记

news2024/11/25 15:55:00

商业的本质是供需和交换。软件行业也一样,生产别人所需要的软件并获得相应回报,就是成功。《软件需求》这本书是一本软件需求领域的工具书,很全面且具体,可以跳读。

在我所工作或了解的软件公司中,发现不论是初创企业还是中大型企业,他们都存在一个相似的严重问题,那就是没有摸清用户需求。这个问题既会导致初创企业迅速失败,也会导致成立多年的公司被拖垮。

在软件领域,我充分相信国人的智慧,如果摸清楚用户需求并确认利润巨大,那么实现它并不是一件多难办的事情。但确认需求问题会难倒绝大多数企业和个人,需求问题是软件企业的第一问题,也是主要矛盾,不解决这一问题,后续问题就难以展开。

那么软件企业首先要分析用户需求,需求问题是如此重要,它关乎到企业的生存,因此必须由 CEO 进行分析和判断,优秀的 CEO 也一定是位卓越的需求分析师,对于初创企业更是如此。当分析确定这是一个真正的需求后,则需要以最低成本和最高质量给出一个仿真原型,必须让用户能够看到,因为用户可能不知道自己想要什么,但他们一定知道自己不想要什么。且需求分析问题不是一个阶段性工作,而应该贯穿始终,因为用户的需求会随着各种因素不断变化和成长。

验证需求是否为真的唯一群体是用户本身,他们是软件的使用者和付费者。我所经历的公司似乎都没有重视需求验证这一过程,导致一家公司走向项目制并面临破产,一家公司迟滞不前不得不研发第二款产品,这难道不是个很重要的问题吗?试问下自己费劲吧啦的研发一款软件既没有用户需要用,也没有用户愿意付费,这不是闭门造车的自嗨行为吗?这既不成熟,更是愚蠢。

需求是如此重要,但有的老板竟然口头表达,试想下两军交战,将军的指挥都是以口头命令和传达的,这难道不会乱套吗?需求问题对后续的工作都是引导性质的,一个需求错误很多人的工作都白干,就像一个将令错误就会死很多人。需求问题必须要以非常完整具体的文字表达出来,并让员工参与进来,进行详细的需求评审和现实验证,在这个问题上非常值得花费较多的时间,若更完善一些,应该让更多的用户参与进来,求同存异,需求问题会解决的更好,需求文档会更加具体全面,这一步做好能让所有人事半功倍。

当需求问题明确后,需要明确开发模式,我比较倾向于敏捷开发和模块化开发。这个过程中需要排列优先级,有些研发团队会从头开始研发,不分优先级,这会降低效率,我们会将优先级分为三个等级:非常重要,重要和一般。先从最重要的问题开始着手,一鼓作气,再二竭,三而衰。严格执行这样的顺序会让研发同事越来约有信心,并且很多代码和功能可以实现重用,提升效率。

在研发过程中,可能会出现突发需求问题,这时候如果这个需求是重要或一般的需求,就应该先放到一边,如果是非常重要的需求,那么就应该和研发同事沟通交流,告知为什么会出现突发需求,能否降低新需求的等级,并记录情况以避免这种情况再次发生,同时,在研发开始之前,也应该告知团队,会存在这种情况的发生,因为完全获取用户的全部重要需求很困难。

在软件企业中,我认为:需求>商业价值>产品>代码质量>测试>研发,我发现很多企业不是这个顺序,或者完全相反。这个问题在我的经历和认知中会耗死很多中小软件企业。需求排第一无可争辩,因为做的东西别人根本不需要那就别谈别的了。第二是商业价值,能验证有庞大的用户需求了,就需要验证产品的商业价值,因为若想研发极高质量的软件,必须能有商业价值,若用户连几十块钱都不愿意付,那么这个产品早晚要失败。第三个是产品,产品需要完整清晰的让用户使用,解决其问题。第四个是代码质量,很多程序员可能都经历或见过“屎山”代码,能跑就行,但对于企业层面,这是一个定时炸弹,要么倒塌要么重构,任何后果对于企业都是巨大的成本付出,甚至能搞垮这个企业。因此,宁愿给研发两倍的研发时间来编辑和优化代码,也要比重构屎山好的多的多,成本低的多,可悲的是老板们似乎大都只要效率不要质量。第五个是测试,这是规范研发质量的前置动作,测试应该与研发并行,以求及时快速的找出 bug。最后是研发。

这个过程中,我认为任何步骤犯错都将造成下一步二次方的失败,并且会让后续错误成本相加。例如现在犯了一个 2 元的需求错误问题,那么成本应该是 2>4>8>16>32>64,并将其相加,也就是 126 元。如果你在测试阶段犯错,那么就是 96 元,这还没有考虑犯错后的用户体验问题带来的成本丢失,只会更多。因此越早在源头解决问题,越能节省人力和经济成本。和书中的需求错误 1 美元,用户体验丢失 100 美元类似。这就像是去一家饭馆吃饭,难吃且贵,你不会再去第二次,也不会让朋友去。

因此,为避免这种情况发生,最好把问题尽可能的扼杀在摇篮中,不要等到呈现在用户面前再去纠错。内部同事审查和 debug 环节十分重要,尤其对于研发阶段,因为代码只需要写一遍,但是后续看和审查不止十遍,这会造成极高的人力和经济成本的浪费。因此着重强调代码质量既是个必须要做的事情,也是个省钱的事情。

软件行业从业者往往有很多自信且有才华的年轻人,他们的思维活跃且有自己的判断,这会出现一个问题,就是沟通问题,并不是说他们不能理解同事的话,而是在他们的理解可能与原本话的目的有所不同,或者看重点不一样。类似于你说“这座古桥上的月亮真圆”,有人会关注桥,有人会关注月亮,有人会关注圆不圆,沟通成本就这么来的,更不要说复杂的研发过程了,研发过程中的一个需求包含着许多信息,很多时候都会理解错误或偏差,两个人之间是这样,多人之间就更多了,巨大的沟通成本就这么悄无声息的来了。因此非常建议落实到文字中,并规范其用词,这会节省巨大的沟通成本。

还有一种情况,管理者的愚蠢命令会让研发任务陷入泥沼。这时候我们就要化身成为一名需求分析师了,要充分了解为什么管理者要这么做,目的是什么,并动之以情晓之以理,注意态度,不卑不亢,不能因为他们的愚蠢和拍脑袋的决定让自己和团队的辛苦付之东流。

最后,书中有很多需求分析、需求管理、需求验证等实用知识,有兴趣的朋友可以看一看。


我们正在做一款面向个人股票投资者的决策辅助工具「棱镜」,它能够将你的分析决策逻辑由文字和框架转化为算法,让计算机和算法辅助你共同决策,欢迎来看看。

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

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

相关文章

一个R包完成单细胞基因集富集分析 (全代码)

singleseqgset是用于单细胞RNA-seq数据的基因集富集分析的软件包。它使用简单的基础统计量(variance inflated Wilcoxon秩和检验)来确定不同cluster中感兴趣的基因集的富集。 Installation library(devtools) install_github("arc85/singleseqgse…

heic文件怎么转换成jpg?苹果手机照片格式heic怎么改jpg?2024新软件!

HEIC作为一种苹果设备的特殊独有图片格式,以其高效节省存储空间的特性,迅速成为苹果手机用户的首选。然而,对于非苹果用户或需要在Windows系统上查看这些照片的用户来说,HEIC格式却带来了诸多不便。因此,本文将详细介绍…

MySQL的安装和环境配置

1.下载MySQL安装MySQL 选Custom选项为高级自定义模式 2.配置MySQL环境 安装好之后,在桌面右键点击我的电脑(有些是此电脑),然后点击属性,进入系统信息设置,接着点击高级,进入环境变量界面,进入环境变量界面…

MySQL 如何实现将数据实时同步到 ES ?

引言:在现代应用程序开发中,通常会将数据存储在 MySQL 中,用于事务性处理和数据持久化。而 Elasticsearch(ES)则是一种专门用于全文搜索和分析的强大工具。将这两者结合使用的一个常见需求是实时将 MySQL 中的数据同步…

JAVA导出数据库字典到Excel

文章目录 1、查询某张表字段信息2、TableVo接收sql查询得到的数据3、excel导出4、导出案例 1、查询某张表字段信息 select column_name as columnName, -- 字段名 COLUMN_DEFAULT as colDefault, -- 默认值 column_key as columnKey, -- PRI-主键,UNI-唯一键&…

新能源组合灶,一灶两用(电燃灶+电陶炉),电生明火,无需燃料

在科技日新月异的今天,厨房电器的创新不断为我们的生活带来便捷与惊喜。华火新能源电燃灶,以其独特的设计和卓越的性能,成为未来厨房的首选,为您打造全新的烹饪体验。 中国人的烹饪文化源远流长,讲究火候的掌控和明火烹…

linux centos tomcat 不安全的HTTP请求方法

1、页面查看 2、在linux主机可使用此命令查看 curl -v -X OPTIONS http://实际地址 3、进入tomcat conf目录vim web.xml&#xff0c;增加以下内容 <!-- close insecure http methods --> <security-constraint><web-resource-collection><web-resource…

Java SpringBoot MongoPlus 使用MyBatisPlus的方式,优雅的操作MongoDB

Java SpringBoot MongoPlus 使用MyBatisPlus的方式&#xff0c;优雅的操作MongoDB 介绍特性安装新建SpringBoot工程引入依赖配置文件 使用新建实体类创建Service测试类进行测试新增方法查询方法 官方网站获取本项目案例代码 介绍 Mongo-Plus&#xff08;简称 MP&#xff09;是一…

AI写作神器大揭秘:五款你不可错过的AI写作工具

在现实生活中&#xff0c;除了专业的文字工作者&#xff0c;各行各业都避免不了需要写一些东西&#xff0c;比如策划案、论文、公文、讲话稿、总结计划……等等。而随着科技的进步&#xff0c;数字化时代的深入发展&#xff0c;AI已经成为日常工作中必不可少的工具了&#xff0…

Cesium 立式雷达扫描

Cesium 立式雷达扫描 自定义 Primitive 实现支持水平和垂直交替扫描

WebKey备受瞩目的Web3.0新叙事,硬件与加密生态完美融合特性成为数字世界的新入口

在当今迅速发展的科技领域&#xff0c;Web3.0正在引领一场颠覆性的变革。而作为这一变革的先锋&#xff0c;WebKey无疑是备受瞩目的创新项目。它不仅代表了一种全新的技术趋势&#xff0c;更是数字世界中硬件与加密生态完美融合的典范。 硬件与加密生态的完美融合 WebKey的核心…

海豚调度监控:新增依赖缺失巡检,上游改动再也不用担心了!

&#x1f4a1; 本系列文章是 DolphinScheduler 由浅入深的教程&#xff0c;涵盖搭建、二开迭代、核心原理解读、运维和管理等一系列内容。适用于想对 DolphinScheduler了解或想要加深理解的读者。 祝开卷有益:) 用过 DolphinScheduler 的小伙伴应该都知道&#xff0c;Dolphin…

Echarts中的折线图,多个Y轴集中在左侧(在Vue中使用多个Y轴的折线图)

简述&#xff1a;在 ECharts 中&#xff0c;创建一个带有多个 Y 轴的折线图&#xff0c;并且将这些 Y 轴都集中显示在图表的左侧&#xff0c;可以通过合理配置 yAxis 和 series 的属性来实现。简单记录 一. 函数代码 drawCarNumEcs() {// 初始化echarts图表,并绑定到id为"…

Vue组件如何“传话”?这里有个小秘诀!

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-组件通信 目录 Vue组件通信 &#xff08;1&#xff09; props / $emit 1. 父组件向子组件传…

【HDC.2024】探索无限可能:华为云区块链+X,创新融合新篇章

6月23日&#xff0c;华为开发者大会2024&#xff08;HDC 2024&#xff09;期间&#xff0c; “「区块链X」多元行业场景下的创新应用”分论坛在东莞松山湖举行&#xff0c;区块链技术再次成为焦点。本次论坛以"区块链X"为主题&#xff0c;集结了行业专家、技术领袖、…

使用Scrapy进行网络爬取时的缓存策略与User-Agent管理

缓存策略的重要性 缓存策略在网络爬虫中扮演着至关重要的角色。合理利用缓存可以显著减少对目标网站的请求次数&#xff0c;降低服务器负担&#xff0c;同时提高数据抓取的效率。Scrapy提供了多种缓存机制&#xff0c;包括HTTP缓存和Scrapy内置的缓存系统。 HTTP缓存 HTTP缓…

【规范】Git分支管理,看看我司是咋整的

前言 &#x1f34a;缘由 Git分支管理好&#xff0c;走到哪里都是宝 &#x1f3c0;事情起因&#xff1a; 最近翻看博客中小伙伴评论时&#xff0c;发现文章【规范】看看人家Git提交描述&#xff0c;那叫一个规矩一条回复&#xff1a; 本狗亲测在我司中使用规范的好处&#xf…

vue实现左右拖动分屏

效果图如下&#xff1a; 封装组件 <template><div ref"container" class"container"><div class"left-content" :style"leftStyle">/**定义左侧插槽**/<slot name"left"></slot></div>…

接口测试工具Postman

Postman Postman介绍 开发API后&#xff0c;用于API测试的工具。在我们平时开发中&#xff0c;特别是需要与接口打交道时&#xff0c;无论是写接口还是用接口&#xff0c;拿到接口后肯定都得提前测试一下。在开发APP接口的过程中&#xff0c;一般接口写完之后&#xff0c;后端…

SPL-404:如何彻底改变Solana上的NFT与DeFi

在不断发展的数字资产领域中&#xff0c;非同质化Token&#xff08;NFT&#xff09;已成为一股革命性力量&#xff0c;彻底改变了我们对数字所有权的看法和互动方式。从艺术和收藏品到游戏和虚拟房地产&#xff0c;NFT吸引了创作者、投资者和爱好者的想象力。 本指南将带您进入…