掰扯掰扯需求分析:从工程到生活中的 4 个 case
需求分析是工程师的必备技能之一。我们常说一些架构师多少多少牛逼,系统设计的多好多好——而系统设计的底座正是需求分析。基于详细的需求分析底座加上已知的业界理论上限,才能让我们更好得去设计好一个系统。本文笔者想基于程序设计以及生活中的例子,聊一聊需求分析。
开胃菜:让你导 100 个 G 的数据到线上,你会怎么做?
这个可以说是一个比较常见的面试题了。
小白工程师看到这个可能就比较懵了,或者直接带入自己遇到的场景了。沿着这样的思路,显然很难让面试官满意。
稍微老道点的工程师可能就会问:
大概多久要完成?
数据是什么类型的?
可不可以丢数据?可不可以重复?
上面这些问题其实是围绕着技术的点去询问的。和真实的业务场景还是有一点的距离,这点距离就是在业务需求到技术实现的分析上。
所以这个时候就要和面试官做一个探讨:具体是什么样的场景,导 100 个 G 的数据到线上?或者说这 100G 的数据导到线上的用途是什么?
举个例子,商家侧有一个报表,里面有个指标的口径要变更,历史数据都要刷。那么就需要继续探讨:
是 DM 层数据还是宽表、中间表的数据?离线还是实时?
DM 层的数据是否要考虑以商家为单位 or 整体的原子性?不然商家看到数据一直在来回横跳,会引起报障,增加解释成本
中间表则需要考虑变更时对外的可读性,比如 50%的数据是新口径,50%的数据是老口径,那么下游的表这样去读数据是否会遇到问题?
实时数仓的话,大量数据的刷入要考虑延迟问题;有些数据引擎可能是 HTAP,引擎的承受能力需要考虑,数据热点的问题需要考虑。
上述的探讨就会比较贴近实际的情况了。产品给研发提需求,研发根据目前的情况去分析需求,设计方案。当然在面试的时候面试官可能会追问一些细节技术问题——比如数据热点一般是怎么去解的?
生活中的例子:千万别既要又要
在生活中,我们经常会买东西。尤其是一些电子产品,大家都知道越贵越好,很多东西垫起脚来够一下是够得到,无非就是钱包出点血。回头再感慨钱难赚屎难吃。
但我相信大多数人的钱都是一个子儿一个子儿挣来的,因此在这一节我想聊聊如何根据自己的实际需求出发,来避免花额外的钱——也就是如何基于实际需求出发去追求性价比。
例子 1:买冰箱
买大家电这种,如果直接去实体店的话,很容易被导购忽悠买一些冤种玩意儿。在网上看销量吧,在网上合适大众(无视了地理、居住环境等条件)的未必合适你。
所以我们需要确认自己的需求,比如放置冰箱位置的大小、容量要求、预算、功能性等等。
举个例子,在杭打工人三口之家,会怎么选冰箱。从硬性条件来分析需求:
对应位置的大小,决定了冰箱的长宽高。
容量。一个人一般 100L,如果存储量大的话 150。这样算的话 400 上下一般够用。
功能性。得防串味吧, 不然夏天吃个腊肉味的西瓜多难受啊,所以至少是双循环系统。
不想手动除霜,所以肯定买风冷的。
注意噪音问题,买变频的。
能效肯定是要一级的。不然长此以往电费很难顶。
这样基本就把自己的需求明确了,可以在这个框架下去准确的选择合适自己的产品。
然后也可以根据以下的价格表,在购物时快速定位到合适自己的那批产品:
3000 以下:主打经济。容量一般,一般都是单循环系统,能效也有差。
3000~6000:常见冰箱价位。容量上去了,双循环必须的,能效一般都是一级的。
6000~10000:面向要求较高的群体。零嵌、美观都开始有了。
10000+:面向土豪群体。美观、设计细节拉满。
具体细节可以看我在语雀里写的采购冰箱笔记。
例子 2:买保险
买保险的人一般都是对于风险考虑比较周全的人。打工人最怕就是一场意外,导致家里积蓄全部花完,还失去工作,分分钟返贫。
那么保险应该选什么种类呢?应该买多少额度呢?
我来举个例子,还是以杭州打工人三口之家为例,男方是个程序员,女方在家带孩子:
根据男方的身体状态、以及压力情况,考虑配置重疾险(重疾险的适应范围真的很小很小,买之前最好了解清楚)。
医疗险必配,配置额度一般在 50w 左右(根据以往的经验来看,50w 花下去人还没治好,基本也差不多了)。
意外险和寿险必配。意外险主要是意外大残、去世的情况。寿险是防止全残、身故。额度建议根据债务情况来配置——比如还有房贷 200w,那就配 200w 的额度。避免出事以后,家里人饭都吃不起还要还贷,太惨了。
因为配置保险往往是为了抵御风险嘛,所以会根据实际风险情况,来配置合适险种与额度。千万别想把保险当“理财”来玩,保险公司的那帮人比我们精太多太多。
例子 3:洗烘套装、洗烘一体机
洗烘套装、洗烘一体机现在非常的流行。一些相关的核心参数我就不贴了,网上有很多,大家可以自寻寻找。
从需求出发,我认为烘干功能的存在是为了解决三种场景:
所在地区、位置晾衣服经常不容易干:比如湿度高、阳光一般。
对于阳台有空间需求:本身阳台不大,人又经常喜欢在窗边。衣服晾满很煞风景。
这人懒的一批。就喜欢甩干完事,不喜欢晾衣服晒衣服收衣服。
如果的确是为了解决这三种场景,那么的确可以考虑购买洗烘套装 or 洗烘一体机。那么这两者如何抉择呢?从两者的差异就可以看出来:
洗烘一体机在烘干上会花较长的时间,超过洗烘套装
洗烘一体机内部容易攒毛,洗烘套装则不会
听起来洗烘一体机被完爆啊。其实不然,因为洗烘一体机一般价格会远低于洗烘套装。所以如果你是偶尔有烘干需求的,比如:
该地区、位置某个时间段晾衣服经常不容易干
周期性犯懒 or 节日家里来住很多人
这种场景下是非常合适洗烘一体机。但如果是高频使用烘干的场景且有足够的空间,更适合购入洗烘套装。
小结
在本文中,笔者举了几个例子来说明如何做需求分析。我们可以发现,需求分析的思想可以用在生活各处。
在计算机系统设计中:
设计者的需求分析能力直接影响着这个系统的下限。
设计者的眼界(了解到的业界理论:比如系统设计 TradeOff,常见实践与实现等等)直接影响着这个系统的上限。
同样,在生活中花钱买东西也是:
分析清楚自己的需求可以买到更合适自己的品类。
了解相关品类的“核心参数”可以避免花冤枉钱。
版权声明: 本文为 InfoQ 作者【泊浮目】的原创文章。
原文链接:【http://xie.infoq.cn/article/bc3f9bb1b03d9c691fd6420be】。文章转载请联系作者。
评论