此题来源于一个朋友,正好很久没有写过面经,所以以此题为例分享如何拆解笔面试题,逐步建立产品新人的思考框架。
题目是:
假如你是百度地图的PM,现在想要知道某条道路的拥堵情况,你有哪些方法?
题目本身不长,属于发散型问题,思路不限,这类问题大家稍作思索都能想到一些线索和思路,但难就难在想到的都是分散的点,没有系统和结构,能否将此题答全基本依赖运气,想到就有,没想到就没办法。
从面试官的角度来看,也没法从答案中听出拆解逻辑和思路。但实际的业务过程中,我们遇到的问题是千奇百怪的,现实远比考题复杂,如果不能构建自己的思维框架,一旦遇到完全陌生的场景和问题,就会完全懵逼。
所以以下分享我对此题的答题思路,答案不唯一,欢迎多多讨论~
首先不要着急给解决思路和方法,先理清楚题面的信息,从题面给出的信息入手进行拓展,题目虽然不长但是隐含了一些背景信息,比如想要知道某条道路的拥堵情况的话。那么进一步思考道路拥堵情况和百度的哪块业务挂钩,在什么场景服务于什么用户。推测出该功能服务的目标用户后,根据用户场景需求框架我们才能更好的给出解决办法。
也就是,我们为什么要获取道路拥堵信息,这些信息有什么用?
与其只是做一个信息的搬运工,将需要的信息搬运过来,然后被动等别人搬走,做一个十分勤奋但是没有成长的点。我们更应该带着问题去思考,为什么做这件事情,信息从哪里来,到哪里去,在整个系统中承担什么样的功能和作用,上游和下游的职能分别是什么。这样的话才能同时具备线的思维和面的思维,从而能够从一个宏观的视角去把握和理解自己作为一个点应该如何去服务整个系统。
那么什么样的用户更关心道路是否拥堵,大概率是需要驾车出行的用户(公交出行的用户也会有关注拥堵信息的诉求,但公交线路相对固定即使知道拥堵也只能更换出行方式或者出行时间来躲避拥堵,拥堵信息相对没有起到那么关键的作用)。
因此从题面上我们大致推断目标用户是驾车出行的用户。
那么通过目标用户,我们来分析一下用户场景,用户使用百度地图进行导航大致可以按照时间分为行前,行中和行后(这里用到的是时间维度的拆分框架)。
行前用户输入想要去的目的地,希望知道道路拥堵情况,以便于提前躲避拥堵,选择合适的路线出发。行中我们可能灵活的变更目的地,希望知道下一条路段的实时拥堵情况及时调整目的地。行后我们到达目的地,如果不是短时间内需要再次出发的话,道路拥堵的信息就不太需要了,所以行后场景暂时不做考虑。
通过以上的分析我们可以知道,行前和行中用户都存在了解道路拥堵信息的诉求,了解道路拥堵信息是为了更好的规划路线,躲避拥堵,优化其出行体验。所以了解了项目背景和项目目标后,接下来我们进入正题,我们如何获取道路拥堵信息。
道路拥堵信息六个字拆为两个部分,道路拥堵,和信息。道路拥堵是事件,修饰后面的名词信息。先说道路拥堵,既然是事件,那么必然有起因经过和结果。我们把道路拥堵作为我们关注的结果的话,是什么原因会导致道路拥堵?
简单脑暴一下,我能想到的原因有:
- 常规原因:核心路段车流量大,节假日车流量大;
- 特殊原因:道路施工,交通事故,临时封路。
常规来说,某些路段的拥堵和时间,地点有着必然的联系,比如高速路上平常不太堵车,到了节假日由于车流量变大,经常会出现堵车。如果能够收集一段时间内各个路段的车流量信息,基于拥堵情况和时间,地点的联系进行建模,即可对于日常的常规拥堵进行有效预测。
当然,常规拥堵以外,还有一些特殊原因会导致拥堵,比如道路施工,交通事故,临时封路等等。由于这些事件大概率会导致临时的交通拥堵,因此如果我们能获取事件上游的信息,将这些因素纳入对拥堵情况的预测模型中,即可对于道路的拥堵情况有更为准确的判断。
对于拥堵信息而言,我们先基于信息的事件特点,对于信息做出了预判,下一步就需要获取实时信息进行验证。因为真正的拥堵成因可能十分复杂,拥堵持续的时间也可能没有稳定有效的模型,即使是交通事故也分情况和路段,有些小型交通事故车主之间协商解决也很快,并不会造成拥堵。
所以获取事件信息是一个方面,另一个方面我们根据信息的属性来获取,信息的流通分为信息的产生——传播——接受。
如果我们需要接收到这部分信息,需要找到有效的信息来源。那么在拥堵的现场,有哪些渠道能够获取到这部分信息并且有可能通过一定渠道传递给我们呢?
拥堵现场有多种角色,他们目之所及可以准确获取到拥堵的信息,但是并不是每一个角色每一个人都愿意告诉我们这样的信息,以及需要提供稳定有效的途径给他们传递信息。这个过程中,交警和车主就是我们最佳的选择。
(实在要路人给我们提供也行,但是由于没有有效的合作途径和方式,信息的真伪存疑,还需要引入人力去核验信息,系统构建成本大,ROI低,所以不建议考虑此渠道)
交警是大概率会出现在拥堵一线的人,这是他们的职责和工作,需要及时的发现问题并且疏散拥堵,一方面他们希望尽快疏散拥堵路段的车辆恢复道路畅通,另一方面他们也希望未进入当前路段的车辆及时躲避拥堵,避免驶入该路段,使得拥堵情况加重。
所以交警是拥堵现场的信号灯,且和我们的诉求一致,希望告知更多的车主该路段的拥堵信息。如果能够通过政企合作的形式获取这部分信息,自然能建立一个有效的信息渠道。
此外,和交警一起出现在拥堵现场的,还有许许多多心情爆炸狂按喇叭后悔自己为啥不早点出门并且忙着在工作群里跟老板报备“堵车,晚点到”的糟心车主们。交警和车主在拥堵路段的比例可能是1:100以上,广大车主才是这个现场的主力军,因此也是我们信息的有效来源。同时,由于车主会使用地图软件进行导航,因此他们天然就有和我们对话的渠道,不需要额外的系统搭建成本。
所以车主在导航途中可以通过导航页面的上报事件来上报道路的拥堵情况,从而给到我们作为参考。
但是这里需要注意的是,用户都是懒的,所以大部分用户都不会选择上报,那么如何提高我们获取有效信息的量级呢。
其实,即使用户不说,他的驾驶行为本身也可以向我们透露出这条信息,这个属于被动向我们提供道路拥堵信息。当一定量的用户行驶到该路段均进入了缓行阶段或者异常停下来的时候,我们就可以预测大概率该路段发生了拥堵,具体拥堵情况根据该路段有效用户数来预计。
之前有一个很有意思的实验就是有个无聊的人把几十部安卓手机打开谷歌地图,放上小推车,然后推着小推车在一条空旷的道路上慢慢行走,然后很快你就会看到谷歌地图显示这条道路拥堵。
以上属于常规的分析,因为考虑到可行性因此方案做了很多收敛,我在思考的时候加上了限制条件。但实际上获取道路拥堵信息的方法还不仅仅有以上渠道,题目没有给出任何限制信息,所以可以继续思考,比如拥堵的现场除了交警和车主还有很多角色,还有车,还有空气,还有路边的监控,还有无数经过的路人。
对于车来说,车不会说话车也不会报警,但是我们或许可以通过街道热力图来对于车流密集处的拥堵情况做一个大致的预判,车多不一定拥堵,但是拥堵的时候车一定不少。
对于空气来说,就更不会说话和主动传递信息了,拥堵路段的空气和普通路段空气有什么不一样呢,或许可以通过监测汽车尾气的密度来作为参考,不考虑货车等特殊情况的话,汽车尾气密度高说明单位面积的车较多,该路段有可能会发生拥堵。
此外路边的监控也是一个获取信息的有效渠道,如果监控画面能够智能检测到该路口的车已经停留超过5min了,超过了等红绿灯的时间发生了异常的停留时间过长的情况,即可上报该路段可能发生拥堵。
我们刚刚说过,路人也是拥堵情况的见证者,我们不可能每个路段派固定的人去监控车流量和拥堵状况,但是每个拥堵路段必然会有经过的路人。如果路人随手一拍并将拥堵照片实时回传给我们,即可获得积分,累积一定量可以获得荣誉市民称号。
且用户每上传一张拥堵照片,上传成功后都会有提示:“你的光荣壮举又拯救了附近路口95%的司机免于拥堵,感谢您的付出!”。通过这样的方式,或许路人也能成为我们获取道路拥堵信息的重要一环。
至此,这道题回答得就差不多啦,面试题没有标准回答,也没必要有标准回答,比起答案更重要的是思考,对于复杂问题寻找入手点,有效拆分题目信息,逐个击破。
以上就是我对本道面试题的一些分享,思考不周之处欢迎小伙伴留言讨论~