如何在3周内接管新国家

想象在真空中球形比萨饼链想要占领整个世界(这从未发生过,现在又来了)。她已经在13个国家/地区开设了比萨店,并计划增加这一数字。就在一年前,启动(网站,应用程序和信息系统)的机会很少-每年有1个国家/地区,现在这个期限已缩短为3周。在IT团队帮助之前,阻止我们执行此操作的原因是,如何摆脱Excel以及如何加快速度,我们将在本文中讲述。







Dodo Pizza是一家国际公司-我们在13个国家/地区运营,我们不打算停止。大多数比萨店位于欧亚地区:俄罗斯,哈萨克斯坦,白俄罗斯,吉尔吉斯斯坦,乌兹别克斯坦。这已经是一家大型企业,我们是比萨店数量的领导者。该业务只需要得到深入的支持和开发,因为在这里,业务和IT在可理解的功能上协同工作。



  • .

  • .

  • .

  • .

  • : , LTV .



然后(突然)一家公司问道:“我们想从尼日利亚开始,”在已经有两家比萨饼店在运营的第13个国家中。直到2019年,这种发射还很少-每年有1个国家/地区。伴随发布会的开发团队在不断变化。这种方法没有关注加速。



目前尚不清楚新国家是否会“射击”。谁来发射这个国家?您需要从什么产品中选择一个团队?“幸运”团队将不得不分散他们的杀手级功能,记住如何部署该系统并面临某些困难。让我们找出哪些。



企业的创业困难



一个新国家的发现令人惊讶(也许)。有时,即使您还没有准备好,创业中也有一些机会是无法错过的。例如:



  • 一个愿意冒险的强大伙伴出现了;

  • 强大的本地参与者离开该地区;

  • 伴侣正在寻找,寻找,寻找并突然找到梦想的前提;

  • 在国际商务旅行之后,我们意识到不再可能推迟,我们迫切需要启动该国。



我们尝试提前计划开放时间,但有时生活会自行调整。



单次发射。一年启动一个国家时,保持一支敬业的团队毫无意义。启动最后一个国家的开发团队离开了另一个杀手级功能。



轮到一个新的国家来了时,所有清单都已过时,发起上一个国家的团队只能提供帮助。这种方法没有集中于加速系统启动。启动,好的-我们将在一年后回来:) 



Razfokus。由于单次发射,与新国家打交道的开发团队将不得不摆脱欧亚大陆的杀手features,以获得欧洲或非洲的可疑利益。一个新的国家,第一个比萨店,投资将在1-2年内收回-很多事情都会出错。



许多组件,庞大的系统和许多连接-没有内置的启动系统和专家。从Dodo IS的角度来看,启动一个新国家不只是复制和粘贴代码或按一个魔术按钮。这是一个具有自己地方特色的独立项目。发射需要3-4个月(有时会更长)。



每个国家都需要自己的专业知识,例如支票会计制度。要与本地系统集成,您需要了解地址系统的详细信息。例如,在斯洛文尼亚,客户的姓氏是客户服务中需要考虑的地址的一部分。



有许多类似的功能,我们的团队当然不具备所有知识。这意味着我们将长时间分散其他团队成员的注意力,他们是专门知识-上瘾的人。



技术难点



渡渡鸟披萨于2011年4月推出。 2011年6月,开始在Dodo IS上进行开发。那时,没有人甚至想到我们很快就会在其他国家/地区推出比萨店,因为有必要迅速(非常非常迅速地)支持俄罗斯不断发展的业务。例如,餐厅的第一位收银员在开发的两周内出现在系统中,因为没有它,就不可能在第一家比萨店开设餐厅。



没有时间考虑所有问题,并将可伸缩性和与国家/地区无关的组件放入系统体系结构。我们认为的最后一件事是,我们现在编写的代码将在斯洛文尼亚或美国的某个地方使用。因此,在过去几年的快速增长中,已经积累了很多技术债务,这使启动速度减慢了。



扩展Dodo IS的网站和后台需要花费很长时间...您不仅可以在Nginx配置中为新国家注册并注册一个域,还可以通过单击按钮来部署系统。真遗憾。



此外,每个国家都有自己的特点。有必要为合作伙伴提供适合特定国家/地区的产品,而不仅仅是“通用Dodo IS”。首先是地址格式,电话号码,街道和居民区的类型,组织的改编,最后是更广泛的改编。除此之外,还有许多手动操作,并按代码复制粘贴:枚举,配置,脚本。



译成国家语言。我们都喜欢Excel:构建表格,颜色线,编写复杂的公式,引用其他文档中的数据。这就是它的设计目的。



在Excel中,我们将带有条款的行上载到合作伙伴,他进行了翻译(没有上下文和图片),我们向Excel加载了翻译,并重复了该练习。这不是Excel创建的目的。是的,不幸的是,资源没有包含所有项目和行,必须对代码进行编辑。





带翻译的文件示例。



此外,在启动国家/地区后,系统中会出现新功能-欧亚大陆的团队在我们向该国推广时不会停止编写功能。对于这些功能,需要翻译,然后在Excel中再次翻译。时间长,价格昂贵,不便。没有开发人员,您将无法做到。



收银台和税收...餐厅结帐和送货结帐是Dodo IS的组成部分。没有它们,任何东西都无法在餐厅或外卖中出售。结帐需要针对新的国家/地区进行调整,并且代码是独立的,并且会带来很多依赖性。事实证明,除了业务发展(税,费率,支票要求)之外,还必须仔细编写新国家/地区的逻辑,以便俄罗斯的支票打印不中断。 



移动应用程序。我们不知道如何在国家开放后立即启动它:没有足够的专业知识,时间和一切。该国家开放后,合作伙伴有时必须等待六个月(有时更长)才能启动该应用程序。真不愉快 



注意... 所有国家/地区都有一个应用程序-情况类似于收银机。在罗马尼亚启动应用程序时,重要的是不要“钩住”其他国家。



发射也是支持着陆页,厨房警报声,翻译错误-所有这些小烦恼通常会在头几个月出现。因此,在国家启动后,支持也很重要。



我们如何解决业务问题



我们在2019年5月处于这种情况。2020年将是炙手可热的-我们想同时启动4个国家。为了避免搞砸,我不得不做些事情。



我们挑出了一个新的独立产品- “启动新国家” -并设定了一个宏伟的目标-“按按钮建立一个国家”。通过按钮,我们可以:



  • 按原样部署系统;

  • , : , , ;

  • , -, . 



命令。没有团队就无法实现目标。因此,在2019年5月,MyLittleCoders团队同意100%的时间成为国家/地区发现团队。我们强调了新产品的开放性:有一个“启动速度”度量标准,有一个团队,加速积压工作充满了繁重的任务。全部融合在一起-现在该采取行动了。





MyLittleCoders(MLC)



故事地图团队徽标长期战略很明确:加速,寻找人才,采用能力。有必要学习如何独立地“以交钥匙方式启动国家”而不分散其他团队的注意力。



我们从开业3个月前就开始了尼日利亚的发布。尼日利亚成为一个测试国,他们从中开始系统地建立一个清晰的发射程序。这就是我们的做法。 



除了我们在10月推出比萨店的主要目标外,我们还记录了耗时最久的事情。发布后,我们构建了一个故事地图,并根据观察结果,记录了花费时间最多的事情。





新国家发射的故事地图的片段。



我们如何解决技术问题



初始国家/地区设置向导。对故事地图的分析表明,某些阶段可以自动化,这将大大加快发布速度。因此,第一个重大改进是“国家向导”。



购买新iPhone后,只需单击几次即可转移旧手机中的设置-3个屏幕,新手机可以使用了。我们想为Dodo IS做类似的事情。



  • 运行国家/地区初始化向导。

  • : « ».

  • , , , .

  • ( ).

  • Next, next, next — - .


在工作过程中,概念发生了变化。最初,我们希望将所有系统设置添加到“国家(地区)”向导中(RO想要并梦想的产品,团队对此保持克制和乐观)。但是我们已经有了一个内部管理面板,在安装向导中重复该操作毫无意义。然后,我们只留下了最低限度的设置,否则,系统将无法启动。产品,菜单,供应商价格和包装可在以后进行调整。



为什么没有这么多参数系统无法启动?历史上,Dodo IS的开发需要这些参数。对于团队来说,分离此类依赖关系并使它们成为启动的可选项是一项单独的任务。



最后,一切顺利。除了需要编辑某些内容的许多地方之外,我们:



  • 通过1个初始设置向导;

  • 获得新的系统转储;

  • 我们将其提供给基础架构中的人员进行滚动。



两天(而不是以前的一个月)-系统已准备就绪。





使用初始配置向导配置传递参数的示例



启动清单。并非总是只能通过开发和自动化来实现加速。启动清单就是一个例子。有时,足以描述需要执行的操作和执行的操作,单击的位置,踢向的对象以及滚动的脚本。 



因此,分析师-开发人员团队精心描述了整个过程。结果,我们有了一个包含数字和要点的大型文档:启动前要做什么,启动中要做什么,之后要做什么。





启动清单的片段。



回收旧清单是一个有趣的过程。开发人员用手轮流浏览清单,打开并设置测试国家/地区,辛苦工作并完善清单。如此多次。这种方法的好处是,这些家伙深深地沉浸在系统本身中。



国家设置从一点开始。仅从“国家/地区”向导收集所有设置是不够的。系统及其组件也必须从同一存储库中读取这些设置,这一点很重要。否则,有趣的情况就会出现。例如,当办公室经理显示正确的货币时(对于尼日利亚,奈拉),而作品的陈列柜则诡诈地显示卢布。每个服务都认为有责任创建自己的设置。我必须遍历系统中的7-8个位置,以便所有人最终都能显示正确的货币。 



我想在一个地方编辑设置,然后在整个系统中应用它们。实际上,我们面临着对系统中几乎每个组件进行更改的需求。更改很小,但是有很多组件。 



通过团队的巨大努力,100,500行远程复制粘贴和少量编程技巧,该系统现在可以从单个存储库获取设置。 “尾巴”仍然保留,但是大多数设置已经集中。现在,您可以在一个地方为整个国家/地区设置电话掩码或地址格式或其他设置。



注意。长期以来我们如何剪切复制粘贴并转换系统以使用目录服务的故事值得单独写一篇技术文章。如果有兴趣,请在评论中写。



翻译。 我希望使用一个简单易懂的本地化系统代替Excel,以便:



  • 无需将任何内容上传到第三方文件;

  • 接收有关已添加新翻译行的通知;

  • 很明显,尚未翻译哪些行和哪种语言。



我们寻求本地化服务,进行了交谈以寻求支持,并决定使用Crowdin服务简单,具有不同的角色-像手套一样出现。我特别喜欢上下文中的功能:当我们在特殊环境中打开网站或后台时,直接在界面中编辑行。这样您就可以立即看到我们正在纠正的位置和内容-方便。





Crowdin上下文内编辑。



Crowdin首先连接到后台,然后逐渐连接整体,然后连接锯割服务,然后再连接网站。并非所有内容都可以立即生效,但是现在添加新行进行翻译就足够了,以便合作伙伴可以自己查看和翻译。



没有更多的Excel。 


所有本地化均已简化:合作伙伴现在可以提前进行翻译,而无需开发人员的帮助。因此,当我们准备推出Dodo IS和该站点时,通常已经准备好翻译。



以前,翻译是用代码编写的-翻译业务流程必须与开发和发行联系在一起。多亏了Crowdin服务,事实证明这两个过程是独立的。现在,我们正在尝试所有新服务,登录页面以及有翻译需求的任何地方,直接连接到Crowdin,这大大简化了生活,使合作伙伴有机会按照自己的进度进行翻译,并按照自己的进度部署系统。



另外,默认情况下将系统语言设置为英语... 以前,该系统默认情况下使用俄语,这不适用于国际合作伙伴及其员工。现在,如果系统中缺少某些翻译,合作伙伴将看到英文文本。这通常在系统部署后立即发生。



结果是什么



自2019年7月以来,我们做了出色的工作-我们构建了启动系统并在整个过程中添加了结构我们通过向导设置系统,合作伙伴独立翻译界面,不依赖开发人员。



详细描述了推广新国家的整个路径现在,旅程需要2-3周,而不是3个月前。开始一周后,该网站和后台开放。他们尚未填充数据,但已经可以接受订单。



计划



加上大约相同的数量-上面的所有内容甚至都不是工作的一半。现在,一个新的挑战在等待着我们-逐步,逐步地,逐个国家地改善这个系统。例如:



  • 逐步扩展“启动程序包”,并在其中添加新功能,例如“在渡渡鸟工作的站点”或“神秘购物者的站点”;

  • 在网站和应用程序中添加多语言支持;

  • 进一步简化“初始国家/地区设置向导”;

  • 添加收银机插件系统,以吸引本地外包商开发用于打印特定国家/地区支票的模块。


应用程序自2020年1月起,退伍军人行动小组(3人)加入了我们。我们计划“分摊债务”-在所有国家/地区启动该应用程序,并了解如何通过该应用程序立即启动新国家/地区。



结帐集成现在,这是该国推出时间最长的阶段-我们计划对其进行加速。我们计划从整体中削减收银机(打印收据的逻辑),将其移至单独的服务并在此处建立插件架构。这将使我们能够与第三方团队合作,为特定国家/地区开发插件。例如,波兰的一家外包公司将通过编写适当的插件为波兰进行收银员整合。这将使您加快速度。



最后



启动国家/地区是成功的一半-现在,您还需要支持现有的合作伙伴(现在已经成为另外一个):



  • UK;

  • ;

  • «» «» ;

  • .



此外,还有许多假设,即现有国际伙伴对发展的要求。这些需求对于已经形成市场的欧亚大陆可能并不有趣,但对于欧洲才刚刚开始增长的欧洲来说却是有意义的。



因此,我们正在为EMEA地区组建一支新团队。该团队将使该系统适应当地市场,创造出非常独特的优势,使英国企业与尼日利亚企业区分开来。我们正在寻找经验丰富的开发人员加入团队。如果您有兴趣探索世界,在地图上启动新的比萨店并解决非常规任务-我们正在等待您加入团队。写信给我d.pavlov@dodopizza.com-我将很高兴与您交谈:)



注意帖子中, Katya Landyreva更加详细地描述了您期待什么,以及为什么在我们的产品中工作很酷。



All Articles