产品经理频繁更改需求,为什么会令程序员烦恼?

一些事  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

产品经理频繁更改需求,为什么会令程序员烦恼?,互联网的一些事

  我们先来看个段子:

  去饭店,坐下来。

  “服务员,给我来份宫保鸡丁!”

  “好嘞!”

  ――――――这叫原始需求

  大厨做到一半。

  “服务员,菜里不要放肉。”

  “不放肉怎么做啊?”

  “不放肉就行了,其它按正常程序做,不就行了,难吗?”

  “好的您稍等”

  ――――――中途需求变更

  厨房:

  大厨:“你大爷,我肉都回锅了”

  服务员:“顾客非要要求的嘛,你把肉挑出来不就行了吗”

  大厨:“行你大爷”

  然而还是一点点挑出来了

  ――――――改动太大,部分重构

  餐厅:

  “服务员,菜里能给我加点腐竹吗?”

  “行,这个应该简单。”

  ――――――低估改动成本

  厨房:

  大厨:“你TMD,不知道腐竹得提前泡水?炒到一半才说?跟他说,想吃腐竹就多等半天”

  服务员:“啊你怎么不早说?”

  大厨:“早说你MLGB我怎么知道他要往宫保鸡丁里放腐竹”

  然而还是去泡腐竹了

  ――――――新需求引入了新研发成本

  餐厅:

  “服务员,还是把肉加回去吧”

  “您不是刚说不要肉吗”

  “现在又想要了”

  “...好的您稍等”

  ――――――某一功能点摇摆不定

  厨房:

  大厨:“日你啊,菜都炒过火了你让我放肉?还好肉我没扔”

  服务员:“客户提的要求你日我干嘛?”

  大厨:“你就不能拒绝他啊?啊?”

  服务员:“人家是客户嘛。”

  ――――――甲方是大爷

  餐厅:

  “服务员!服务员!”

  “来了来了,你好?”

  “怎么这么半天啊?”

  “稍等我给您催催啊”

  ――――――改动开始导致工期延误

  厨房:

  大厨:“催你M催,腐竹没泡好,我还得重新放油,他要想吃老的也行,没法保质保量”

  ――――――开发者请求重新排期

  餐厅:

  服务员:“抱歉,加腐竹的话得多等半天,您别着急哈”

  “我靠要等那么久?我现在就要吃,你们能快点吗?”

  “行...您稍等”

  ――――――甲方催活

  厨房:

  大厨:“我日他仙人板板,中途改需求又想按期交付,逗我玩呢?”

  服务员:“那我问问,要不让他们换个菜?”

  大厨:“再换我就死了”

  ――――――开发者开始和中间人PK

  餐厅:

  “服务员,这样吧,腐竹不要了,换成蒜毫能快点吗?对了,顺便加点番茄酱”

  ――――――因工期过长再次改动需求

  厨房:

  大厨:“我日了狗啊,你TM不知道蒜毫也得焯水啊?还有你让我怎么往热菜里放番茄酱啊??”

  服务员:“焯水也比等腐竹强吧,番茄酱往里一倒不就行了吗?很难吗?”

  大厨:“草。腐竹我还得接着泡,万一这孙子一会又想要了呢。”

  ――――――频繁改动开始导致大量冗余

  餐厅:

  “服务员,菜里加茄丁了没有?我去其它饭店吃可都是有茄丁的”

  “好好好您稍等您稍等”

  ――――――奇葩需求

  厨房:

  大厨:“我去他二大爷他吃的是斯里兰卡三流技校炒的宫保鸡丁吗?宫保鸡丁里放茄丁??”

  服务员:“茄丁抄好了扔里边不就行了吗?”

  大厨:“那TM还能叫菜吗?哪个系的?”

  服务员:“客户要,你就给炒了吧。”

  大厨:“MB你顺道问问他腐竹还要不要,我这盆腐竹还占着地方呢不要我就扔了”

  ――――――奇葩你也得做

  餐厅:

  “服务员,还要多久能好啊”

  “很快,很快...”

  “再给我来杯西瓜汁。”

  “...好”

  “我再等10分钟,还不好我就走了,反正还没给钱。”

  “很快,很快...”

  ――――――黑暗前的最后黎明

  10分钟后

  “咦,我上次吃的不是这个味啊?”

  从厨房杀出来的大厨:“我TM就日了你的狗...”

  ――――――最终决战――――――

  你=客户

  服务员=客户经理+产品经理

  大厨=码农

  请自行转换...

  注:以上场景已极度夸张,实际生产生活中码农和PM是和睦友好的相亲相爱的一家人

  以上内容来源于知乎用户@猫爱吃鱼不吃耗子。

  编程语言,它终归是一门语言,只是它的使用者是电脑软件和硬件。产品经理和程序员对于需求理解的思维体系、语言体系、语言上下文环境不同。

  比如这个需求:一包中华45元,产目经理给你50元,让程序员去买包烟把找的5块钱拿回来。

  产品经理觉得非常简单,一句话的事。

  而对于程序员而言:

  50元是不是假钱?

  如果不是假钱,去哪买烟?

  如果去西安买烟,西安卖烟的地方关门了?是回去给产品经理说卖烟的地方关门了还是一直找,直到找到一个没有关门的卖烟的地方?

  如果这里的一包中华是40元,或者一包中华是50元,买不买?不管多钱都买?还是征求产品经理同意后再买?

  怎么判断买的烟不是假烟?还是不管真假买了一包中华就算?

  买了之后是邮寄给项目经理?还是自己给带回来?还是让顺道的同事给捎回去?

  如果买回来买的是50元一包的中华,产品经理嫌贵了怎么办?

  如果买回来的是40元一包的中华,是给产品经理退5元钱还是给他退10元?

  如果产品经理一定要45元的中华怎么办?

  如果产品经理突然不想要这烟了,让你退回去怎么办?

  如果卖烟的人不退怎么办?

  如果产品经理让你退了重新在别的地方买一包怎么办?

  如果卖烟的老王退了,但是再没有别的卖烟的地方了怎么办!

  如果又找到一个卖烟的地方,并且一包中华也是45元。带给项目经理。项目经理听说你是从西安买的,他要抽北京买的烟怎么办?

  ......

  你会发现问题没完没了。

  这会你可能会说程序员太死脑筋。错!产品经理所说的,中华45元,给你50元,买完找5元。这句话是建立在一系统上下文语境,人类生活习惯,生活常识当中的。产品经理的潜台词是说找最近的有卖烟的买一包45的不是假烟的中华烟,找的五块钱给我。

  而对于程序语言,还是开头那句话:编程语言是一门语言,它的使用者是软件和硬件。对于计算机而言,它没有情感,不理解人类的这一系统语言环境,生活习惯,生活常识。它只严格按照它的语言规则,编译原理一步一步,老老实实,丝毫不露地往下执行。如果没有分歧,一切妥当。如果有分歧,完蛋了。人类千百万年来进化形成的临机应变,相机行事等等这些本能,计算机及编程语言一丁点不具备。它就认准程序员写的程序,就乖乖地听你程序,指哪打哪。所谓的人工智能也只是程序员把每一种可能,人类面对问题所会面对的问题事先写好程序语言录入进计算机。如果意外在之前所料之中,程序完美执行,如果意外所料不及,那就是BUG,就是错误。而这些BUG和错误都要程序员去一点一点补充产品经理所谓“需求”之外的所有潜台词。

  这是在需求确定的情况下,如果程序员正在买烟的路上,产品经理打电话说,剩下5块钱回来再买瓶水。那之前所有的逻辑程序员又得再执行一遍。如果产品经理过一会又打电话说再买个面包。。。那就折腾死程序员了。

  从需求方面说完,再从程序员编码实现方面来说。还是刚才的需求:产品经理给程序员50元,让买一包45元的中华烟,找回来5元钱。

  程序员一听,程序里面写死了,从线路1去西大街,买完烟再沿线路2返回。但是中途产品经理说你再买点零食回来。程序员傻眼了!!!得,只能程序重新设计,从线路2出发。


  程序员一听,程序里面写死了,从线路1去西大街,买完烟再沿线路2返回。但是中途产品经理说你再买点零食回来。程序员傻眼了!!!得,只能程序重新设计,从线路2出发。

  试想,从初中开始学英语,初中三年,高中三年,大学四年,十年下来,有几个人能面对外国人说一口标准的英语?编程语言也一样,有些程序员大学没好好研究编程,或者根本不是计算机系,上过几天培训班,知道编程是怎么一回事,会写if/else/for,就业所迫,就开始商业编程了。写程序必然是指哪打哪,别的情况我不管。这样的程序,脆弱的不敢碰,一有改动就是要性命啊。

  最后一方面是,国内软件开发,开发流程不完善。有活就赶紧埋头干,干了不对再说。最终需求理解不到位,项目周期比火车还长,项目成本居高不下。

  有时候拖着下巴想想,编程真是一门艺术活。

  正文作者:支两招

  原文地址:https://www.zhihu.com/question/40712955

  本文由作者@猫爱吃鱼不吃耗子、@支两招 授权发布。未经许可,禁止转载。


延伸阅读

  • 产品经理频繁更改需求,为什么会令程序员烦恼?2016-02-27
  • 产品经理的核心竞争力是什么?2016-02-24
  • 微信的那个老外产品经理又写了一篇《中国移动应用设计趋势》2016-02-24
  • 产品经理看《美人鱼》,为什么是星爷创造了奇迹?2016-02-23
  • 互联网热门职位薪资对比出炉!看看别人家的产品经理挣多少!2016-02-23
  • 听听这位产品经理是如何看待微信提现收费的2016-02-17

本文被转载1次

首发媒体 一些事 | 转发媒体

随意打赏

提交建议
微信扫一扫,分享给好友吧。