头图
版本日期备注
1.02024.3.4文章首发
1.12024.9.25内容改进
本文内容已用一种抽象的方式做成了视频,喜欢看视频的同学可以在B站上搜索“抽象狗哥”观看相应的内容。

需求分析是工程师的必备技能之一。我们常说一些架构师多少多少牛逼,系统设计的多好多好——而系统设计的底座正是需求分析。基于详细的需求分析底座加上已知的业界理论上限,才能让我们更好得去设计好一个系统。

可能有人说,我没什么机会去设计系统,所以没必要学这个吧。对一个普通工程师来说——出需求,完善里面的逻辑是产品的责任啊,需求没落地也不是我的责任啊。责任的确很难归结到你头上,但是并不是和你毫无干系啊。

为什么这么说呢?因为大多数人工作肯定是在团队里的嘛。所以你的绩效好坏是和团队里的人横向对比出来的,那假如你在需求上分析比较差,那么你做的需求落地概率会低于别人。

虽然有时需求没落地往往不是开发的原因,这个原因大家都懂。但是TL在看打绩效的时候,肯定是要看多少业务上有多少事情推进落地的。那比起需求落地多的同学,你在这方面就很容易吃亏。

这个时候可能有人会说,我这边的产品很傻X,就算需求上线了,也很少产生收益。

那我们换个思路来想。假设一个好的产品,需求上线后带来收益的可能是80%,你这边的傻逼产品带来的收益是20%。但你的同事把他需求100%落地了,那么他负责的业务就有20%的概率获得收益。而你在需求分析上吃了亏,那么你能落地的需求就少了,说到底就是20%底部的奖池变少了。都是出来打工,都花一样的时间,赚的还比别人少了,气不气人?

基于这几个点,本文笔者想基于程序设计以及生活中的例子,聊一聊需求分析。

开胃菜:让你导100个G的数据到线上,你会怎么做?

这个可以说是一个比较常见的面试题了。

小白工程师看到这个可能就比较懵了,或者直接带入自己遇到的场景了。沿着这样的思路,显然很难让面试官满意。

稍微老道点的工程师可能就会问:

  1. 大概多久要完成?
  2. 数据是什么类型的?
  3. 可不可以丢数据?可不可以重复?

上面这些问题其实是围绕着技术的点去询问的。和真实的业务场景还是有一点的距离,这点距离就是在业务需求到技术实现的分析上

所以这个时候就要和面试官做一个探讨:具体是什么样的场景,导100个G的数据到线上?或者说这100G的数据导到线上的用途是什么?

举个例子,商家侧有一个报表,里面有个指标的口径要变更,历史数据都要刷。那么就需要继续探讨:

  • 是DM层数据还是宽表、中间表的数据?离线还是实时?

<!---->

    • DM层的数据是否要考虑以商家为单位or整体的原子性?不然商家看到数据一直在来回横跳,会引起报障,增加解释成本
    • 中间表则需要考虑变更时对外的可读性,比如50%的数据是新口径,50%的数据是老口径,那么下游的表这样去读数据是否会遇到问题?
    • 实时数仓的话,大量数据的刷入要考虑延迟问题;有些数据引擎可能是HTAP,引擎的承受能力需要考虑,数据热点的问题需要考虑。

上述的探讨就会比较贴近实际的情况了。产品给研发提需求,研发根据目前的情况去分析需求,设计方案。当然在面试的时候面试官可能会追问一些细节技术问题——比如数据热点一般是怎么去解的?

生活中的例子:千万别既要又要

在生活中,我们经常会买东西。尤其是一些电子产品,大家都知道越贵越好,很多东西垫起脚来够一下是够得到,无非就是钱包出点血。回头再感慨钱难赚屎难吃。

但我相信大多数人的钱都是一个子儿一个子儿挣来的,因此在这一节我想聊聊如何根据自己的实际需求出发,来避免花额外的钱——也就是如何基于实际需求出发去追求性价比。

例子1:买冰箱

买大家电这种,如果直接去实体店的话,很容易被导购忽悠买一些冤种玩意儿。在网上看销量吧,在网上合适大众(无视了地理、居住环境等条件)的未必合适你。

所以我们需要确认自己的需求,比如放置冰箱位置的大小、容量要求、预算、功能性等等。

举个例子,打工人三口之家,怎么选冰箱。从硬性条件来分析需求:

  • 对应位置的大小,决定了冰箱的长宽高。
  • 容量。一个人一般100L,如果存储量大的话150。这样算的话400上下一般够用。
  • 功能性。得防串味吧, 不然夏天吃个腊肉味的西瓜多难受啊,所以至少是双循环系统。
  • 不想手动除霜,所以肯定买风冷的。
  • 注意噪音问题,买变频的。
  • 能效肯定是要一级的。不然长此以往电费很难顶。

这样基本就把自己的需求明确了,可以在这个框架下去准确的选择合适自己的产品。

然后也可以根据以下的价格表,在购物时快速定位到合适自己的那批产品:

  • 3000以下:主打经济。容量一般,一般都是单循环系统,能效也有差。
  • 3000~6000:常见冰箱价位。容量上去了,双循环必须的,能效一般都是一级的。
  • 6000~10000:面向要求较高的群体。零嵌、美观都开始有了。
  • 10000+:面向土豪群体。美观、设计细节拉满。

具体细节可以看我在语雀里写的采购冰箱笔记。

例子2:买保险

买保险的人一般都是对于风险考虑比较周全的人。打工人最怕就是一场意外,导致家里积蓄全部花完,还失去工作,分分钟返贫。

那么保险应该选什么种类呢?应该买多少额度呢?

我来举个例子,还是以三口之家为例啊。

  1. 如果有一方是收入主力,但是本身工作时长较高,那么可以考虑配置重疾险(重疾险的适应范围真的很小很小,买之前最好了解清楚)。
  2. 医疗险必配,配置额度一般在50w左右(根据以往的经验来看,50w花下去人还没治好,基本也差不多了)。
  3. 意外险和寿险必配。意外险主要是意外大残、去世的情况。寿险是防止全残、身故。额度建议根据债务情况来配置——比如还有房贷200w,那就配200w的额度。避免出事以后,家里人饭都吃不起还要还贷,太惨了。

因为配置保险往往是为了抵御风险嘛,所以会根据实际风险情况,来配置合适险种与额度。千万别想把保险当“理财”来玩,保险公司的那帮人比我们精太多太多。

例子3:洗烘套装、洗烘一体机

洗烘套装、洗烘一体机现在非常的流行。一些相关的核心参数我就不贴了,网上有很多,大家可以自寻寻找。

从需求出发,我认为烘干功能的存在是为了解决三种场景:

  1. 所在地区、位置晾衣服经常不容易干:比如湿度高、阳光一般。
  2. 对于阳台有空间需求:本身阳台不大,人又经常喜欢在窗边。衣服晾满很煞风景。
  3. 这人懒的一批。就喜欢甩干完事,不喜欢晾衣服晒衣服收衣服。

如果的确是为了解决这三种场景,那么的确可以考虑购买洗烘套装or洗烘一体机。那么这两者如何抉择呢?从两者的差异就可以看出来:

  1. 洗烘一体机在烘干上会花较长的时间,超过洗烘套装
  2. 洗烘一体机内部容易攒毛,洗烘套装则不会

听起来洗烘一体机被完爆啊。其实不然,因为洗烘一体机一般价格会远低于洗烘套装。所以如果你是偶尔有烘干需求的,比如:

  1. 该地区、位置某个时间段晾衣服经常不容易干
  2. 周期性犯懒or节日家里来住很多人

这种场景下是非常合适洗烘一体机。但如果是高频使用烘干的场景且有足够的空间,更适合购入洗烘套装。

小结

在本文中,笔者举了几个例子来说明如何做需求分析。我们可以发现,需求分析的思想可以用在生活各处。

在计算机系统设计中:

  • 设计者的需求分析能力直接影响着这个系统的下限。
  • 设计者的眼界(了解到的业界理论:比如系统设计TradeOff,常见实践与实现等等)直接影响着这个系统的上限。

同样,在生活中花钱买东西也是:

  • 分析清楚自己的需求可以买到更合适自己的品类。
  • 了解相关品类的“核心参数”可以避免花冤枉钱。

泊浮目
4.9k 声望1.3k 粉丝