我觉得 “砍需求” 是程序员最牛逼的本领

在下认为,不会 “砍需求” 的程序员不是好程序员,工作经验越丰富的程序员,砍需求的本领一般就越高。即使现在我多了一个身份 —— 管理团队,我也会帮开发同学去跟产品砍需求。
没错,从管理者的角度,我希望我团队的同学都能学会砍需求,而不是像个需求机器一样,产品经理或者老板说什么,就去做什么。
为什么?说说我的看法。

1、砍需求的本质

注意,砍需求不是砍产品经理,也不是单纯地 “拽” —— 劳资是大爷、劳资说不做就不做!

这样肯定是不行滴,你这样东哥都不愿意跟你做兄弟。

砍需求的并不是为了推卸责任,而是为了让自己舒服、让团队舒服,确保项目能够按时、按质、按量地完成。

砍需求的前提是对需求有深刻的理解,这就包括理解需求的背景、需求的目标、分析需求的优先级、可行性、以及对用户和业务的影响等等。

虽然需求很多时候是产品经理或者老板提出的,但毕竟他们也只是 “个体”,他们也会犯错、也会出现乱甩需求的情况。作为一名专业的开发,我们有义务理解需求、并且拒绝无意义的需求。毕竟谁也不希望自己做的需求没有任何意义对吧?

比如老板昨天喝高了,临时起意说:“我想让网站炫酷一点”,然后开发二话不说,回去花了一周时间,搞了一堆狂拽炫酷吊炸天的网页动效,什么 WebGL 都给你整上。结果验收的时候,老板说:“我们特么做的是一个信息查询网站,你整那么华丽呼哨干嘛!”

你本想辩解,可辩解又有什么用呢?还不是默默承受。

如果再给你一次机会,问问这几个问题:

● 为什么要把网站做的炫酷?有什么意义?
● 炫酷一点具体是指什么,有没有理想的效果?
● 实现复杂度高不高,如果较为复杂,是不是可以排期到以后再做?

前期多嘴,是为了后期不悔啊!
请添加图片描述
所以理解需求、跟需求提出方保持统一是很重要的,之前我们团队的开发同学,在需求评审会上 “大放豪言”,产品经理说完需求,他就说:“这个简单!好做!”

结果后期验收需求的时候,发现做出来的效果和我们想象的完全不一样,错把一个让用户自主上传内容的页面做成了一个给管理员上传内容的页面。究其原因,就是对需求的背景理解错误了,搞错了需求的目的是为了让用户参与共建,而不是只给用户看管理员发布的内容。

2、砍需求不是乱砍

砍需求不是乱砍,而是要有理有据,有章法。

我发现自己团队的同学不太会砍需求,有时产品经理说完需求后,开发同学要么就默默接受了,结果到后面开发阶段才跟产品 “诉苦”;要么就是一通回怼,典型的就是 “这周时间来不及”、“这个需求我觉得没用” 等等。

换位思考一下,这种理由其实很难说服对方。

怎么砍需求?

第一式、共同目标

表明目前做这个需求对达成目标的帮助不大,可以投入时间做性价比更高、更好实现目标的工作。将个人的意见和想法进行上升,证明砍需求不是因为我不想做,而是确实没啥用。

第二式、数据支持

用客观的数据和事实来证明需求的价值,而不是 “我觉得、我猜测、我认为”。举个例子,现在我们要优化编程导航的搜索功能。技术同学一听,老开心了:“我终于有机会用 Elasticsearch 啦!终于不是拧螺丝啦!”

“拜托,看看您那搜索功能,每天 不到 10 个用户 在用,优化个龟龟哦?!”

后面的才是正解,通过已有数据来证明需求的意义。技术是为业务服务的,业务都没必要做,又何必要用更复杂的技术呢?

第三式、阶段性迭代

通俗一点,就是需求拆解。

很多时候,如果一个需求较为复杂,或者需求方要的比较急,与其直接拒绝(反正后面也得做),不妨思考下能否 “小砍一刀”?比如将复杂的需求拆解为一期、二期、三期,如果非要这周上线,那可以先做一期,后面再优化。

这也是大厂员工的 “惯用伎俩”。为什么这么说呢?在下认为,大厂一般都是各司其职,专业的事情有专业的人去做,通常都会有产品经理来整需求,需求往往会更复杂、更体系化。如果你不会拆解,非要把整个需求一起实现,哪怕时间拖得很长,也会觉得需求很复杂、很难实现,压力山大。而如果你 “砍” 得合适,说不定做完一期之后,效果不好,后面也都不用做了。

毕竟很多时候,后面再优化 == 后面不做了。

第四式、金蝉脱壳

这是一种更高级的砍需求方法,需要开发同学有足够的业务经验积累。说人话就是给当前的需求找到更合适的替代方案。

我觉个自己团队的例子,前段时间我们想统计下老鱼简历的数据,比如注册率和注册来源等,按照正常的方式,可能是需要开发统计分析的能力,我们开发同学也欣然接受了。

但由于自己之前的经验,我知道可以通过系统已经接入的第三方统计分析平台提供的 “上下游分析” 的能力来推测出其中的部分指标,只需要产品在平台上配置即可,就不用什么都开发了。

就是这样,我成功帮开发同学砍掉了部分开发需求,将一个技术问题转变成了业务问题。

3、上级为什么希望开发学会砍需求?

换位思考一下就能理解了,无论你的上级是什么级别,他都有自己的 KPI(目标)要完成。人力和时间都有限的情况下,只要手下的开发同学花时间做了乱七八糟的、无意义的需求,就会影响目标的完成情况。所以上级喜欢的,是能够帮他完成目标的开发,砍不砍需求只是一些小的操作,哪怕你不会砍需求,多花点时间加班完成工作倒也不是不行;但如果有更好的方式达成目标,砍一砍需求,何乐而不为呢?

回归到我自己身上,为什么我希望团队同学都会砍需求,因为每一天都是从我的账户上扣钱啊!!!我当然也是希望人力花在刀刃上。
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机信息恢复:应对数据丢失的策略与技术

由于各种原因,我们经常会遭遇到手机数据丢失的困境。如何有效地应对数据丢失,找回那些对我们来说至关重要的信息?这就需要我们了解和掌握手机信息恢复的策略与技巧。本文将为您揭示信息数据恢复的奥秘,介绍应对数据丢失的实用方法…

爬虫案例:有道翻译python逆向

pip install pip install requestspip install base64pip install pycrytodome tools 浏览器的开发者工具,重点使用断点,和调用堆栈 工具网站:https://curlconverter.com/ 简便请求发送信息 flow 根据网站信息,preview,respon…

Mysql 8.0 主从复制及读写分离搭建记录

前言 搭建参考:搭建Mysql主从复制 为什么要做主从复制? 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。架构的扩展。业务量越来越大,I/O访问频…

开源大模型与闭源大模型:谁将引领AI的未来?

前言 在AI领域,开源大模型和闭源大模型一直并存,各自有其独特的优势和挑战。下面,我们将从数据隐私、商业应用和社区参与三个方向,对这两种模型进行深入探讨。 一、数据隐私 开源大模型: 1. 透明度高: …

使用Spring Boot编写的小项目

加法计算器 前端代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…

UE5 UE4 快速定位节点位置

在材质面板中&#xff0c;找到之前写的一个节点&#xff0c;想要修改&#xff0c;但是当时写的比较多&#xff0c;想要快速定位到节点位置. 在面板下方的 Find Results面板中&#xff0c;输入所需节点&#xff0c;找结果后双击&#xff0c;就定位到该节点处。 同理&#xff0c;…

有免费通配符证书吗?哪里可以申请?

市面上的免费SSL证书大多数为单域名证书&#xff0c;如果您的主域名拥有众多子域名&#xff0c;逐一申请单域名SSL证书不太现实&#xff0c;下面为介绍一款永久免费使用的通配符SSL证书申请流程 1 选择免费通配符证书提供商 免费通配符证书申请点击这里直接获取https://www.…

人人都是产品经理,尼恩产品经理面试宝典(史上最全、定期更新)

《人人都是产品经理&#xff0c;尼恩产品经理面试宝典》&#xff08;史上最全、定期更新&#xff09; 本文版本说明&#xff1a;V1 IT不老新物种 的定义 大龄男IT &#xff1a;APM 架构经理 项目经理 高级开发&#xff0c;没有中年危机 大龄女IT&#xff1a;DPM 产品经理 …

vue 表格 随手笔记

对表格中单元格回显 做循环 <template slot-scope"scope"> <el-table-column label"责任网格类型" align"center"><template slot-scope"scope"><div v-for"(item, index ) in gridDutyTypeList">&…

设计模式12——外观模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 外观模式&#xff08;Facade&a…

全球十大体育赛事API服务

体育赛事API汇总&#xff1a; Broadage全球橄榄球赛事数据Broadage全球棒球赛事数据Broadage全球篮球实时数据Broadage全球冰球赛事数据Broadage全球排球实时数据TennisApi全球网球赛事讯息Broadage全球足球实时数据棒球数据【纳米数据】

R实验 参数估计

实验目的&#xff1a; 掌握矩法估计与极大似然估计的求法&#xff1b;了解估计量的优良性准则&#xff1a;无偏性、有效性、相合性&#xff08;一致性&#xff09;&#xff1b;学会利用R软件完成一个正态总体均值和两个正态总体均值差的区间估计&#xff1b;学会利用R软件完成…

为什么要学习c++?

你可能在想&#xff0c;“C&#xff1f;那不是上个时代的产物吗&#xff1f;” 哎呀&#xff0c;可别小看了这位“老将”&#xff0c;它在21世纪的科技舞台上依旧光芒万丈&#xff0c;是许多尖端技术不可或缺的基石&#xff01; 1. 无可替代 c源于c语言&#xff0c;它贴近于硬…

mybatis新增到数据库后返回当前ID

描述 在开发中&#xff0c;插入一条数据并返回当前的ID的场景很多 之前用mybatisPlus自带的api非常简单&#xff0c;调用完save or insert之后再getId即可。 今天使用mybatis的时候也遇到了这个场景&#xff0c;在此记录一下。 解决问题 直接再insert标签里面表明属性 核心…

Innodb Buffer Pool缓存机制(一)一条sql的执行过程

思维导图 石墨文档&#xff1a;https://shimo.im/mindmaps/NJkbnZV0ePINXzkR 一、SQL的执行 执行过程&#xff1a; 加载缓存数据&#xff0c;加载id为1的记录所在的整页数据&#xff08;相当于索引树的一个结点&#xff0c;16KB&#xff09;&#xff1b;写入更新数据的旧值到…

使用C/C++ API接口操作 Zookeeper 数据

ZooKeeper 支持 Java 和 C 的API接口。本文将介绍使用 C/C 语言客户端库的编译安装和使用入门。 一、编译安装 PS&#xff1a;就在上一篇文章还觉得安装和配置 jdk 、maven 麻烦&#xff0c;所以当时选择 apache-zookeeper-[version]-bin.tar.gz 的版本。然而&#xff0c;本文…

微信小程序-常用的视图容器类组件

一.组件分类 小程序中的组件也是由宿主环境提供的&#xff0c;开发者可以基于组件快速搭建出漂亮的页面结构。 官方把小程序的组件分为了9大类: (1) 视图容器 (2) 基础内容 (3) 表单组件 (4)导航组件 (5) 媒体组件 (6) map 地图组件 (7) canvas 画布组件 (8) 开放能力 (9) 无…

Linux:top命令的每一列的具体含义

Linux&#xff1a;top命令的每一列的具体含义 文章目录 Linux&#xff1a;top命令的每一列的具体含义图片显示top命令的概念语法显示字段的含义顶部字段第二行第三行第四行第五行每列字段的含义 图片显示 top命令的概念 top命令上一个常用的Linux命令行工具&#xff0c;用于实…

Gopher的Rust第一课:第一个Rust程序

经过上一章[1]的学习&#xff0c;我想现在你已经成功安装好一个Rust开发环境了&#xff0c;是时候撸起袖子开始写Rust代码了&#xff01; 程序员这个历史并不算悠久的行当&#xff0c;却有着一个历史悠久的传统&#xff0c;那就是每种编程语言都将一个名为“hello, world”的示…

计算机图形学入门02:线性代数基础

1.向量&#xff08;Vetors&#xff09; 向量表示一个方向&#xff0c;还能表示长度&#xff08;向量的摸&#xff09;。一般使用单位向量表示方向。 向量加减&#xff1a;平行四边形法则、三角形法则。比卡尔坐标系描述向量&#xff0c;坐标直接相加。 1.1向量点乘&#xff08;…