上面说了那么多理论知识和概念,那下面就开始真刀实枪地展示一个案例本来一开始我想以电商产品作为例子,因为电商产品昰需要极强逻辑思维的产品并且比较常见。但后来发现淘宝、京东等都极为庞大和复杂分析起来过于笨重。转而想起共享单车怎么结束行程是个非常不错的教材案例其产品极简,但背后却暗藏有趣的逻辑架构尤其是市面上摩拜与ofo不同的产品解决方案,分析起来更加囿对比性
如果要追溯最早的共享单车怎么结束行程,恐怕就是政府推出的有桩自行车其推出目的无非就是缓解交通压力,以及减少环境污染而当时受限于成本、技术以及大众人群的普遍素质,有桩自行车的解决方案是极其不方便的想要租一辆有桩自行车,首先要凭身份证在相关单位办理IC卡并缴纳押金和预存费用,然后租车和还车只能在定点位置进行先不谈办理卡片有多麻烦,租车还车有多不方便超时扣费有多惊人,如果只单纯将其用业务流程图展示出来应该是什么样的呢?
下面依然以最简单的业务形态来展示使用有桩单车業务流程图:
单看有桩单车的流程图其实没有任何意义真正的意义在于有桩单车和目前摩拜与ofo的横向对比,下面看一下两家共享单车怎麼结束行程的业务流程图:
很明显可以看出无论是有桩单车、摩拜单车还是ofo单车,在业务流程图上竟然没有太大区别那为什么多年之湔政府主导的有桩单车平平无奇,而2016年末出现的共享单车怎么结束行程红极一时那摩拜和ofo两款截然不同的单车,区别点到底在哪里呢峩们需要更加深入地分析每个业务节点,剖析其功能
因为单车的使用流程不仅是在APP上,还有一部分操作在实体自行车上这时就不能单使用页面流程图,而是要直接使用功能流程图并且这里的功能流程图不局限于页面内的功能,而是要表达用户对单车和APP的每一步操作
艏先看ofo单车,在APP中支付押金后接着便需要寻找自行车。而这时我们发现虽然ofo有多种单车样式,多种车锁机制但本案例着重讲ofo第一代機械锁,与第二代伪智能锁
这两种锁其实代表了两种不同的产品解决方案,我们先讨论第一种机械锁(所谓机械锁,其实类似于生活Φ经常见到的密码箱每个密码箱有预设的固定密码,通过拨弄表盘输入正确密码即可开锁。并且机械锁的密码是固定的不会改变)。
我们从路边找到机械锁单车然后打开APP,输入车牌号或扫描二维码从APP中得到本车的机械锁密码,然后输入密码打开单车车锁。此时APPΦ会进行倒计时倒计时结束则开始正式计费。最后骑行到目的地后,需要将车锁关闭并且必须在APP中点击结束骑行的按钮,才能结算此次行程的订单
看完了ofo的流程,下面来对比看一下摩拜的流程
摩拜的产品解决方案为,扫描单车的二维码以后摩拜单车的车锁会自動打开,不需要像机械锁一样手动操作并且在锁车后,摩拜单车自动会结束行程无须在APP中点击结束。在下一次APP打开时才会进行账单結算。
下图分别为ofo机械锁单车使用流程图和摩拜单车使用流程图(APP标识代表用户在APP上的操作)
我们可以清楚地看到摩拜的流程比ofo的少了两個节点而这就是摩拜对比ofo第一代机械锁的优势。当然ofo第一代也有其他方面是优于摩拜的,比如骑车的舒适程度但本文主要聚焦于产品流程,所以并不在单车体验上花费太多笔墨
纵观ofo机械锁和摩拜智能锁的解决方案来看,ofo明显是逊色很多的机械锁带来的问题,不止昰使用流程的复杂还有很多是产品使用上的漏洞。比如用户锁车后,必须手动将密码拨乱不然下个人将可以免费骑行。比如用户茬骑行结束后,忘记在APP点击结束会造成更额外扣费。等等还有很多问题就不一一列举了。
说句题外话这些问题ofo也都明白。机械锁的解决方案倘若只在封闭的校园内运行那还差强人意。但一经投放到校外市场那么这种解决方案无疑会给公司带来巨大的损失。那为什麼ofo明知问题还要大量投放呢?原因很简单以摩拜拓展的速度,如果他不在当时迅速走出校园那么也许永远也没机会走出校园了。
言歸正传之前的讨论,一直避开了一个非常重要的节点——"找车"抛开路边随机看到单车不谈,就拿地图找车来说ofo第一代机械锁肯定是沒有GPS定位的,为什么也能在地图上显示呢
下面我们尝试画一下ofo对于解锁的程序流程图是什么样的。
我们从"APP扫描二维码/输入单车编号"此节點开始推导我要开车牌号为XXX的单车,那么就需要得到密码而所有车的密码,都应该放在ofo的单车数据库中我们不论是扫描二维码,还昰输入单车号本质都应该是将单车编号传输给服务器,告诉它我要哪辆车的密码服务器查询到此单车的密码以后,就传输回APP我们就看到了此单车的密码。
因为节省车锁电源的原因服务器此时并没有和单车联系,而是靠人工输入密码打开车锁所以ofo在用户得到密码后,就会开始倒计时倒计时内可以取消开锁状态;倒计时结束,则代表用户默认开始骑行计费也从此时开始。
此时如果是iPhone用户的话将ofoAPP朂小化时,就会发现手机顶部电池电量条变成了蓝色其实,这就是ofo获取单车行程的要点所在既然机械锁无法向服务器传输数据的话,那不如让用户手机代替以获取手机的定位来获取单车的骑行路线。并且在停车后点击结束骑行时,上报位置由此服务器来标记此单車停放的位置。而此时上报的位置其实并没有单车这就是ofo地图上有很多假标记产生的原因。
ofo采用的这种标记方法其实非常的粗糙毕竟洳果用户强制结束应用,也就获取不到骑行路线了而ofo针对获取不到骑行路线的情况,也做了处理那就是用标记起点到终点,然后根据哋图提供的路线来显示路程
上图我亲测的案例。红色箭头是我的实际骑行的路线绿色线是ofo自带地图上通过起点和终点计算的路线。
下媔我们继续分析ofo机械锁的程序流程图
注意上图服务内的部分看起来步骤非常少,也非常简单而真实的服务器肯定有更多复杂的逻辑判斷。但对于产品经理画的流程图来说不可能完完全全描绘编程中的技术细节,而且也不需要产品经理去帮技术想代码的实现逻辑我们偠做得是,理解程序宏观的实现逻辑
比如,在扫描二维码后为什么APP会显示这辆车的密码,而不是其他车辆的密码呢很简单,服务器內肯定储存了所有单车的密码而扫描二维码的过程就是将此单车的ID传送给服务器,服务器在数据库中找到密码后返回给用户手中。
服務器在此处理过程中肯定还会有其他的判断,比如此用户账号是否正常有没有被封号?此单车是否已被标记为故障车等等。但大家發现上面的流程图内并没有画出这些逻辑判断,是我忘记了吗
其实并不是。这里又不得不提到本文的核心概念——颗粒度
此图想表達的是宏观的程序实现逻辑,是为了让读者更聚焦于问题核心我们只需要着重表达主干流程就好。如果添加更多的分支流程、异常流程那反而会影响读者的注意力。所以还是老生常谈的那句话:画流程图一定要先主干,后分支千万别在一开始就盲目追求细节。
言归囸传ofo的第一代锁的解决方案虽然漏洞百出,但依然用其巧妙的方式实现了地图上单车位置的显示。ofo推出的第二代锁改进了以往机械鎖的很多问题。其中最大的效果就是车锁的密码不再是固定的并且锁车之后,不需要再点结束行程那既然ofo的锁已经优化了,那为什么湔文还称他为伪智能锁他和真正的智能锁差在哪里呢?为什么ofo的车锁依然需要手动输入密码而不是像摩拜一样,车锁直接弹开为什麼常常在地图上看到有车,而实际地点没有车呢
下面引入一个80、90后童年的回忆:将军令。
"将军令"(又名网易帐号保护器) 是广州网易互動娱乐有限公司自主研发的、具有完全知识产权的高科技身份认证产品它是专为保护网易通行证账号(游戏账号)、直销商帐号的密码洏出的产品,其特有的60秒密码动态自动更新技术将盗号风险降到最低
"将军令"的产生伴随着当年梦幻西游的风靡,其创新技术确实解决了夶多数盗号问题那将军令的实现机制到底是如何呢?简单地说明一下:首先打开"将军令",它会生成一串数字你在登陆游戏时,输入這些数字系统就会允许账号登陆。同时"将军令"的数字是每隔60秒动态变化的,每次登陆时"将军令"的验证码都会不一样。其实现原理無非是"将军令"和服务器保持同一种算法,在同一时间他们的计算结果是一致的。
回来看ofo的伪智能锁其实也是一样的实现原理。每辆车鎖都有一个单独的算法保存在服务器车锁每隔一段时间就会根据算法,变换一个密码而当你打开APP,查看此单车密码时服务器使用和車锁相同的算法算一遍当前时间下的密码,那此密码一定是和车锁当前算的是一致的
开锁说完了,下面聊聊关锁如果你骑过小黄车就會发现,小黄车的智能锁关闭以后并不用手动点APP上的结束行程了。那要做到这点一定是车锁与服务器进行了通信,告诉服务器用户已經结束了行程可以结算订单了。那既然车锁可以和服务器通信为什么ofo还要采用上面的将军令方式来解锁呢,为什么不直接用服务器通信告诉单车自动开锁呢
其实,就ofo第一代伪智能锁"海王星"来说并没有做到实时和服务器通信。在关锁的时候只是车锁单方面向服务器發送消息。而同时服务器收取到消息后在地图上显示其单车的定位。我想ofo这么做原因一定是因为想减少车锁的耗电量,要知道实时通信是非常耗电的
下图是ofo的程序流程图
上面分析了ofo的机械锁和伪智能锁以后,我们再来看看摩拜单车的智能锁到底智能在哪里。
首先通過实际体验我们知道摩拜单车是不需要输入密码的。抛开蓝牙本地验证密码的方式那摩拜车锁需要和服务器实时通信,才能实现APP扫描の后自动打开
可能有些读者不明白为什么一定要实时通信呢?难道在开锁时服务器给车锁发送打开的指令不行嘛?举个例子手机开飛行模式的时候,是无法接听电话和数据上网的手机想接听电话和上网,就一定要每时每刻和通信基站连在一起这样才能保证通信基站想要找你的时候可以找到。如果你和通信基站断开基站是无法知道你在哪里的。但如果你想要连接基站只需要关闭飞行模式,打开信号就可以和基站重新连接起来。这就是摩拜单车需要实时连接服务器的原因只有这样才能实现单车在地图上的定位以及扫码开锁。其实摩拜为了实现此功能也是大费周章因为车锁比较耗电,传统电池是无法支撑的所以摩拜的车采用了机械发电的原理。只要有人骑車就会将机械能转化为电能,给车锁充电这也解释了为什么摩拜的车比较难骑,阻力大车身重。
下面依据上述原理画出摩拜单车嘚程序流程图
由上图对比ofo的流程,可以看出摩拜采用的解决方案是将自行车与服务器连接让每一个自行车都成为一个终端,实时同步在整个地图上面这样既获得了良好的用车体验,也收集到了用户数据就解决方案来看摩拜是比ofo完善很多的。
单车车锁的蓝牙解决方案
大镓在用摩拜或ofo时可能经常会看到提示:用蓝牙解锁更加快捷方便。那其实现原理是什么样的呢我们不妨推测一下。首先用户在打开藍牙后要让单车解锁,那就一定要和单车连接起来否则不可能实现解锁。那单车的蓝牙就必须是实时打开的状态以供任何时候用户进荇解锁。那这时又有一个问题如果周围有很多单车,那我的蓝牙到底要和哪辆单车匹配呢这时就体现出扫码的作用了。我一定是扫码嘚时候告诉服务器:我要解锁XX编号的单车。那服务器会返回给你这个单车的蓝牙"口令"你通过"口令"与附近的蓝牙匹配,能匹配成功的一萣是你想开的那辆自行车因为你手机的蓝牙和单车的蓝牙距离非常近,蓝牙匹配是非常快速的所以,通常摩拜或ofo都会推荐大家使用蓝牙解锁这样的成功率更高,速度更快就蓝牙解决方案来说,ofo和摩拜其实没有太大区别的
至于蓝牙解决方案的流程图,就交给大家当莋本文的作业如果你想检验一下本文对你到底有没有帮助,那么你可以尝试去画一画蓝牙解决方案的流程图相信我,非常简单的
以仩就是整个ofo与摩拜解决方案的对比,其中我也画出了不同阶段的流程图基本可以代表我分析案例的一些思路。最主要的还是让大家能够悝解并应用流程图到日常产品设计与分析中我们在构建流程图时,如果能按照本文的方法由业务到程序,由简单到复杂那相信一定會让你的思路更加清晰顺畅。
本文从定义、分类以及画法分层讲解了各种流程图的特点。尝试以教科书的方式来阐述其原理和机制因為目前并没有统一的流程图规范,所以文中难免有错误和理解偏差也希望大家能指证与交流。
虽然本文的目的是介绍流程图但其整个思维过程才是真正我想表达的核心。任何复杂事物都可以拆解为最小单元然后由最小单元逐渐还原复杂事物。引申下去这种思维方式其实是一种剖析事物的思维模型,熟练掌握以后可以套用于多种分析场景希望以后有机会单独写一篇文章来详细介绍思维模型。
本文由PMCAFF會员原创发布于PMCAFF产品社区(),未经许可禁止转载。
臻龙:喜欢认知心理学与神经科学特别钟爱讨论抽象算法问题,欢迎交流
出于对PMCAFF鼡户的尊重,任何在PMCAFF产品经理社区发布的内容在未经允许的情况下,不得在任何平台被直接或间接发布使用或被用于其他任何商业目的如有违反上述声明者本网站将追究其相关法律责任。
原网页已经由ZAKER转码以便在移动设备上查看