原文来自Medium,作者Vikrama Dhiman
原文链接:https://medium.com/@vikramadhiman/zero-to-one-gojeks-singapore-story-798acd56b645
2019年5月,共享出行服务商Gojek宣告在新加坡的搭乘人次已达1,000万,这是一个重要的里程碑。
在到达这个成就前,有人问我们(指Gojek团队):
“保持在印度尼西亚继续发展的同时,进军一个新加坡需要什么?产品发布团队有多少人?进军新国家需要多长时间?你们是从长远发展考虑这一进军计划的吗?”
本系列文章由三部分组成(目前更新到第二部分),不仅对这些问题一一作出了回答,并讲述了我们在新加坡从投放市场到收获1000万出行人次的故事。
阅读文章,你还会了解Gojek产品开发流程,尤其具体了解我们是如何组建团队、制定决策、克服障碍以及如何长期更新迭代的(迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果)。
2018年初,我们正式宣布进军东南亚市场(Uber退出东南亚市场为我们提供了绝佳的进军机会)。新加坡作为东南亚最重要的经济体之一,是我们进军计划的核心部分。
谁先开始?然后发展又如何?Gojek组建团队,并让团队人员了解到,细节才是公司文化核心。
组建团队是Gojek进军东南亚市场的第一步。
2018年5月,我加入新加坡地区产品发布团队,成为团队第一人。6月中旬,业务团队和软件工程团队也相继组建。
最后,秉承Gojek精神理念——领导身先士卒,我们的首席技术官(Chief Technology Officer,CTO)尼兰甘·巴拉纳佩(Niranjan Paranjape)作为技术主管加入了产品发布团队。
此外,移动出行主管拉迪亚·维博沃(Raditya Wibowo)作为新加坡地区总监加入我们团队。
我们称EPD(工程/产品/设计)团队为Simba(狮子王中的角色,小狮子辛巴),而跨职能的业务和技术团队则被称为Mufasa(狮子王木法沙)。
团队组建完毕,是时候着手项目了。
Gojek的新加坡项目成立。软件工程师、产品经理、设计师以及执行团队成员进行了会面,他们查看了所有可用信息,制定了重要决策,并确定了操作框架(主要是极限编程软件( ExtremeProgramming,XP)开发版本)。
新加坡的Gojek成立于2018年6月27日,成立地点是位于班加罗尔办公室的一个会议室,会议室以Gojek的第一个代码库——Stan Marsh——命名。所有高级工程师、设计师以及执行团队人员都在成立现场。
图注:Gojek新加坡团队
我们必须做出关键决定——我们要利用同一个App进军新加坡市场,还是开发一个新的App?(我们在越南和泰国利用当地品牌分别创造了两个App:GO-VIET和GET)
初步调查表明,Gojek在新加坡已经是知名品牌。业务团队也提供数据称,每年有300万印度尼西亚人前往新加坡。因此,我们决定在新加坡推出Gojek品牌。这也就是说,在新加坡,推广同一个App是可行的。
因为我们瞄准的是近期市场发展提供的机会,于是,我们在同年设立了一个野心勃勃的目标,距离目标实现,只剩下不到6个月。
快速行动,拒绝搞砸
在新加坡和印度尼西亚推出同一款出行App,为Gojek真正成为一款全球性App奠定了基础,但同时我们也面临了许多挑战。
在印度尼西亚,我们每天接收并处理超过19个产品中的数百万订单。我们还得在移动App、定价系统、打车软件的司机客户端、新同事入职、GoPay钱包、分配系统以及服务平台等多个系统中添加国家、货币和时区功能。而与此同时,我们在印度尼西亚的产品也一直在保持发展。
在保持所有这些板块运转的同时,我们为新加坡设计了一个超级简单的出行预定流程。
图注:同款App在印度尼西亚和新加坡的主页。
尽管客户未注意到,但我们的App早在2018年8月就开始为新加坡的应用添加功能(印度尼西亚和新加坡使用的是同款App)。
而这仅由12名来自Simba团队和运营技术团队的工程师完成。
Gojek的工程系统、文化和原则由组队编程(pair programming)、杰出的测试覆盖率以及自动化等实践构成,这也是我们能快速发展的关键因素。
我们发现,快速发展的最佳方式通常是自行更改系统和代码库,并与相关团队合作去运行已更改的程序。
共享代码是我们很独特的思维模式。团队里一位新加入的软件工程师亲身体会了这一点。
当时,他要做的一些改动会影响到我们的主定价系统。起初他有些踌躇,一连几天都没有着手改动。后来,团队里的前辈发现了,便和移动出行主管一起帮助他开展工作(在某个周六,只用了20分钟)。此后大家就都明白了,这类部署在我们团队中并不是什么大事件。
不要“踩别人脚趾”(Toe-Stepping):心怀同情
“与孤独同行,你会走更快;与伙伴同行,你则会走得更远。”
——非洲谚语
建立任何事情都会面临挑战,其一便是在建立快速的反馈循环的同时,着眼于一个长远的发展进程。对此我们的解决方案是,交流。
工程师、产品经理、设计师、营销人员、增长分析师、社区经理、客户服务主管以及合作伙伴经理等,都来一起工作、讨论,集思广益。
协作产品开发过程,不仅确保产品进展迅速,也坚定了我们在长远目标上和在正确进程中,做正确事情的信心。我们对发布模型和产品路线图的讨论中也有所反映。
其中,“Mufasa”实践最为成功的是以下三种:
1. 预测:我们不仅要考虑产品发布的问题,还要考虑6个月、12个月和2年内前景计划,也就是说,我们要为各种结果做准备。
2. 合作:我们还定期举办跨职能合作和回顾会议,以确保团队中不同的职能人员能够深入合作创造,迅速推进工作进展。如此一来,在进军新加坡市场时,不同职能的工作人员都会参与进来。
3. 手册:我们还花费了大量时间,为新加坡团队制定长期组织架构,并在新国家进军手册中记录下产品和技术决策以供参考。在Gojek进军下一个国家时,这将是一个非常宝贵的资源。
对于Gojek的许多新同事而言,这种为完成规划和流程设计的高合作性、直来直往、自下而上的规划及流程设计方式不仅新奇,而且令人放心。
同情心和同理心不只是Gojek流行词汇,在与利益相关者、合作伙伴和同事合作时,这两点都很重要。
面临的挑战
到8月中旬为止,事情似乎进展不错。我们的产品发布前景图已经准备就绪,发展速度持续稳定,业务运营团队也已着手产品发布前的活动。
在我们已经做好准备把泰坦尼克号驶向大海时,撞上了几个冰山。我们会沉船,还是继续扬帆前行?
主要负责后台系统的一位工程师需要休息以对接更为优先的工作。另一位工程师则不得不退出我们的团队,去接替他之前团队的领导职位。
另一方面,我们发现,核心平台上要完成的工作比之前设想的要多,这导致我们在新加坡的iOS移动设备上的开发进程停滞不前。
除此之外,我们还决定由印尼线上支付公司Midtrans(Gojek旗下公司)来做内部支付流程,从而扩大了重要的项目的合作范围。
所有这一切都发生在营销团队开始向我们问询产品发布日期,以此来准备与购买媒体宣传档位的关键节点上。
我们的生产能力下降了25%,但项目涉及的范围扩大了25%。
我们与营销团队进行了深入的会谈,向其解释了当前的限制因素,并要求产品发布日期延后两周。值得庆幸的是,他们十分支持我们。
这次会谈后,我们确定了行动项目,并将其分配给团队成员。我们知道不得不将产品推迟一到两个星期发布,但这是我们愿意接受的代价。有时候,你必须放慢脚步,才能走得快。
我们听说一位才华横溢的iOS工程师希望更换团队后,成功将其招入麾下。我们还与一位Gojek最佳质量主管(Quality Assurance,QA)进行谈判,希望其加入Simba团队。从司机客户端和GoPay团队那里,我们也获得了他们的承诺——提供关键功能来帮助我们进军新加坡市场。
阳光总在风雨后,我们成功应对了挑战。公司发展速度提升,我们也信心倍增。
9月初,我们给了营销团队信号,通知他们为11月底的产品发布做准备。之后,市场营销、驾驶员入职、客户服务等团队的准备工作都开始启动。
第一个里程碑:发行内测版
我们制定了一个时间轴,因为还有许多功能需要完善。但我们的第一个里程碑已经出现,我们称之发行内测版。
我们尝试先上线一个完整的App,以便快速获得客户的反馈。
团队已经仔细确定了端到端预订和行程完成流程的优先顺序,从而在未经模拟的环境中,测试实际的乘客和司机在服务过程中的情况。
在App中,你可以体验输入上车地和目的地、查看对此次出行的预计费用、获取司机信息、取消出行、与司机交谈、查看订单收据、历史纪录、在新加坡获取发票等等功能。
当时我们只支持现金预定,不支持代金券、没有优惠活动,并且司机不收款等。我们甚至特别聘用了20名司机来参与我们内测版的试验。
新加坡标准时间2018年10月10日,上午8点,培尔·奎克(Bayle Quek)是新加坡第一位坐上Gojek汽车的人。
从10月10日到11月的App公测(Beta)版发行期间,我们员工每天都会用内测版出行超过100次。App内测版的目的是为了获取早期使用反馈,并且我们的员工和司机伙伴都提供了出色的反馈,并提出了出行途中出现的问题。
实现了一个里程碑,但我们仍继续发展……
App的内测阶段至关重要,但它只是第一步。在内测版发行后,我们当中一些人聚在一起共进晚餐,对未来45天进行展望,发现我们仍需构建许多重要的功能,内测版反馈的问题必须在正式版发行前解决。
大约也在此时,我们的营销团队也对我们的发布策略做出了改变,他们希望加入一个与其他公司合作的“白名单”阶段。此刻又恰逢印度排灯节(Diwali),团队成员有10天的假期(排灯节是印度的节日之一,于每年10月或11月中举行)。
“(开发软件)前90%的代码要花90%的开发时间,剩下的10%代码要再花费90%的开发时间。”
——90-90法则,贝尔实验室 汤姆·卡吉尔
这时“冒充者综合征”发作了。
我们虽然已经走了这么远,但原先的计划和团队的执行力能否支持我们撑过这一关键时刻?在尚未完成的工作面前,团队分成了两派。
而在之后的45天里,需要处理的订单纷至沓来。
对一家企业来说,一个关键项目的早期成功会带来两个问题:
1.你获得了额外的关注(或者叫提升了用户的期望);
2.你接下来必须谨慎。
这我们都碰上了。发布Gojek Singapore 内测版的时候,我们只支持事先谈妥的现金交易。
我们获得了业内外的一致好评,从乘客、司机到市场营销和行政管理,却一直没有时间好好消化这些反馈。还是老话说得好:革命尚未成功,同志们仍需努力。
之后我们发布了App的第二代内测版本,为司机增加支付功能(提款、支付历史、新加坡的时区和货币),并且通过促销、技术支持和大数据提升用户体验。完成这一切我们只花了三周。
这还不够,还有其他的功能亟待推出:司机登记(5周)、实际发行(7周)。
在内测版发行之前,Gojek的Simba团队(新加坡工程产品设计团队)一直独立工作,但完成下一阶段目标需要在营销、增长、运营、市场、客户服务和司机服务之间更紧密地协调合作。
此外,战略服务平台OpsTech、Driver、科技金融综合服务平台GoPay和为东南亚提供支付网关解决方案的Midtrans工程团队也有很大的贡献。
在这么短的时间与这么多支团队协作充满挑战。更大的挑战是这些团队分布在雅加达、新加坡和班加罗尔。在这种情况下,即使一个深思熟虑的计划也很难被执行。除此之外,我们还必须从顾客和司机的反馈中找出内测版的问题。
如果内测版是对我们软件编程能力的测试,那么下一个就是要考验我们的项目管理能力。我们准备好了吗?
各就各位!
通过三管齐下的管理方法,可以应对以上的挑战:
1.松散的框架,独立的团队:当不同团队有很多任务需要处理时,可以使用自上而下的方法管理,或者设计松散的、不断演进的工作契约,帮助团队独立工作。我们选择了后者,因为在Gojek很少有“员工大会”,大家最关心的是工作效率。这大大减少了协调团队的工作。
2.跨团队工作组:我们还建立了一个跨团队工作组分类问题、确定职能并且共享消息。团队可以在不同时间完成大部分问题的讨论,这优化了跨时区人员之间的合作。
3.战术努力:首要目标是完成任务。iOS的开发人员负责操作系统Android司机版App,后端开发人员会负责Android客户版App,司机服务团队与Web开发团队协作。我们不断发现团队中的瓶颈工序,进行改进,使价值流动更加顺畅和快速,通过协作会议同步团队进程。
努力、努力、再努力……
好风凭借力,送我“入乱流”。
就在我们到达巡航高度,准备前往下一个目的地时,更新的内测版却受到口诛笔伐。适应这些变化需要时间,可惜我们没有。2018年10月31日,第二代内测版就要上线,不容有失。印度排灯节近在咫尺,网速直到11月14日才会恢复正常。更糟的是,司机登记的推出也被安排在11月14日。
我们已无路可退
这给了我们一个机会检验著名的项目管理三角——范围、时间、成本。考虑到时间和成本是固定的,我们只能确定优先级并改变范围。
第二代内测版试用最初包括促销、代金券,以及信用卡支付。我们把促销和代金券放在次要地位,把解决内测版和Gojek系统整合的问题作为首要任务。
我们还专注于完善司机版App的功能,并继续推进新加坡信用卡支付。GoPay、Driver、OpsTech、Midtrans和Simba等工程和运营团队通力合作,实现了这一奇迹。
10月31日,我们如期发布了第二代内测版。
与前一阶段不同的是,我们使用新的司机登记工具,司机可以在App上看到收入,也可以将其提取到银行账户。第二天,我们启动了测试客户和司机支持的功能。
大多数工程团队的成员回家庆祝排灯节,并学会了重要一课:规划,就像产品生命周期管理的其他环节一样,必须也是迭代的。
即使在庆祝排灯节的时候,我们也有一点惴惴不安,说不定什么时候寻呼机或生产问题就会破坏欢乐时光,这表明项目失败或我们无意中影响了其他系统。
幸运的是,这些都没有发生。
排灯节假期平安无事。回来的时候,我们开始筹备司机登记。2018年11月14日,我们开始对新加坡各地的司机进行全面登记。
现在,离软件正式版上线只有两周了。
回到基础
重返正轨,我们着手处理暂时搁置的促销和代金券的问题。我们还需要为客户整合信用卡功能,并修复最终发布版本的问题。
在这些项目有条不紊开展之时,新加坡也开始意识到一个超级App要出现了。
因为对我们推出的产品很感兴趣,星展银行(新加坡发展银行Development Bank of Singapore,DBS)与我们达成合作。这是对我们产品和战略的巨大认可。
不过,一波刚平,一波又起。
我们计划分步推出服务,先从中央商务区和东海岸开始,提供有限访问,确保为第一批乘客提供良好的用户体验。然而考虑到DBS-Gojek的合作,我们为DBS持卡人提供优先访问权,这增加了注册流程的复杂性。
我们必须在正式版上线前确保万无一失。
Android和iOS划分了不同的优先级,以便Android团队继续处理现有的优先任务,而iOS处理DBS优先访问。完成之后,双方相互借鉴,Android团队从iOS团队DBS优先访问中吸取经验,而iOS则学习如何处理促销和代金券。
又一课:团队就是力量
就在我们的团队从雅加达和班加罗尔飞往新加坡准备发布产品之前,我们与班加罗尔的GoPay和Midtrans团队建立了一个联合工作室,测试信用卡功能。万事俱备,我们聚集在新加坡等待正式版上线。
2018年11月的最后一周,对于所有参与新加坡发布的Gojek军团来说,意义非凡。
11月26日
我们在范围更广的员工小组测试了信用卡功能,并且成功了。我们的广泛测试得到了回报。Midtrans和GoPay继续完善App,支持美国运通卡支付。
11月27日
我们测试了DBS的优先访问权,并将代码传达给DBS。我们通过发展团队演练了为客户提供服务的过程,一切都能完美地运行。希望接下来的两天一切顺利。
11月28日
上线正式版司机版App。我们在司机版App页面上发现了一个奇怪的漏洞,尽管已经将语言选择为英语,但App上的内容却继续显示印尼语。我们手忙脚乱了几分钟。不过幸运的是,我们在最后一次测试之前重新启动了测试设备,显示正常运行。
11月29日
11月29日清晨,我们的iOS版App成功启动并运行。由于印尼版App出现漏洞,Android版App的发布被推迟了(请记住,同一款Gojek App在两个国家都能正常使用)。工作人员一直在检查发布渠道,当天晚间,Android版App也投入使用。
Gojek成功进驻新加坡。我们在几个月前就定好了日期,并且实现了。✌
工程、产品、设计、运营、市场、营销、增长、客户服务、司机服务,群策群力。
新加坡真是我们的福地。
尽管取得了巨大的成就,我们仍有未竟之业。
软件正式版发布很重要,但它只是朝着实现目标迈出了一步。新加坡真的会成为我们计划中的战略舞台吗?达到1000万次搭乘真的是小菜一碟吗?(剧透:绝对不是)。在本系列的最后一部分,了解更多我们的故事,敬请期待。