为何程序员要在厨房实习-与Dodo Pizza讨论有关gemba,.NET和开放性的问题



关于渡渡鸟披萨已经众所周知。 该公司的业务与技术服务网络交织在一起,他们写了一本关于其历史的书,在网站上直接单击即可绘制技术堆栈和系统架构。 他们从容不迫地向公众讨论最不愉快的事实。

所有这些都很棒,并且营造出浪漫的感觉-似乎默认情况下,Dodo Pizza很酷。 但是我们有兴趣了解这是否确实如此。

过度和陷阱是否开放? 人们如何与厨房中的开放式摄像机联系起来? 技术仅仅是营销装饰吗? 最后,尽管周围的IT巨头呼吁开发人员终身提供饼干和个人咖啡机,但Dodo促进了厨房的定期工作-感受到客户和普通员工的痛苦。
Dodo Pizza在My Circle的员工中获得的平均评分为4.7 ,平均推荐率为98%。 该公司以有趣的​​任务,专业的发展以及与同事的良好关系而受到重视。

我们询问了fillpackart一切,STO Dodo Pizza的Alexander Andronov回答了我们。



为什么要使用比萨店技术


-费多当普通的出纳员后,如何这么快地开一家比萨店?

-没有什么复杂的。 他采取了行动。 为此,不需要额外的准备和额外的金钱。

-但我认为这很昂贵。

-如果您在第三个交通圈内的莫斯科某地方开一家比萨店,那就太贵了。 在那里您需要15-20百万投资。 第一个“ Dodo Pizza”在地下室Syktyvkar的深处开业。 没有餐厅,只为外卖工作,而且投资很小。

这并不复杂。 当合作伙伴从所有银行收取信用卡并兑现后,我们有了故事,他们用这笔钱建立了一家比萨店。


Dodo Pizza的创始人Fedor Ovchinnikov。

-是否马上就专注于技术?

-是的,第一家比萨店开业后约一个月就开始发展。 Fedor本人也不是开发人员-他找到了两个人,他们阅读他的博客并对这个想法做出了回应。 开发周期非常短,可以立即将所有产品投入生产。 这贿赂了他,他们开始共同努力。

-当人们被技术,食品业,餐馆业所吸引时,他们的利益往往不在最前列。 为什么要披萨?

-披萨是一种非常简单易懂的产品。 无论您身在何处,在任何国家/地区都说“ pizza”(比萨),每个人都会知道它是什么。 从业务角度来看,这是一个准备充分的产品。 很清楚如何做到这一点,其他公司也有很多经验,开发模式也很多。 只是去做。

但是,对技术的重视开始产生利润,不是当您有一个或两个比萨店时,而是在一千个比萨店时。 然后,您可以建立个性化设置,可以在线管理比萨店网络,立即找出问题所在并加以解决。

-因此,您仍然无法从技术中获利吗?

在全球范围内讲,利润才刚刚开始出现。 例如,我们整合了所有销售渠道,我们拥有一个呼叫中心系统。 多米诺骨牌和爸爸约翰都没有这个。 在那里,您需要致电特定的比萨店,将其带到您的订单。

“但是事实并非如此。”

就是这样 他们只能通过公用电话订购。 但是,例如,如果您的订单中没有原料,他们会从特定的比萨店打回您。 我们拥有相同的系统,当我们接到呼叫中心的电话时,我们会确定哪个比萨饼店将履行该订单,其余的快递员将满足该订单。 来自员工在线的所有信息。


Syktyvkar的Dodo Pizza办公室。

好的 对您来说更重要的是比萨或技术?

-它们是密不可分的。 没有披萨,技术就没有意义。 但是,如果没有技术,只会有另一个比萨店,而我们极有可能无法像这样进行扩展。

这是同样的问题:开发人员或质量检查工程师更为重要。

-(Phil fillpackart )当然是开发人员

“你错了。” 这个问题不能明确回答。 这完全取决于您现在的时间。 当一切都已经开发好时,谁更重要? 如果您没有足够的质量检查工程师,您会哭泣。 他们将被迫成为开发商。

彼此之间不存在完全相同的技术和比萨饼。

-技术无法像Goldberg机器那样在这里工作? 半个小时后,各种机制发挥了各种奇迹,最终使锤子落下并砸碎了螺母。

-乍看之下。 有时向开发人员解释我们的工作是一个问题。 他们的第一个反应是:“有什么地方可以出售比萨饼? 要配置1C吗?

从与客户合作和管理比萨店的角度来看,所有这些都将为全球增长带来利润。 在传统业务中,有严格定义的因素会影响每个比萨店的成功:人工成本,原料成本,收入,吸引顾客的费用以及保留率。 您需要保留太多成分才能准确销售整个菜单,从而不会出问题并且不必被欺骗。

人工成本与需求预测有关。 如果您了解在某些时候您会获得一些销售,而在其他时间(还有其他时间),您可以为人员创建自动排班表。 在大多数情况下,这就是我们正在发生的事情,但到目前为止,我们仍以半手动模式对此进行了预测。 随着时间的推移,让我们继续进行完全自动化。

信息系统在每个阶段都开始提供帮助,它们的优化程度使得没有技术就不可能了。

-就Zume Pizza而言 -技术是否过剩?

这似乎是机器人制作披萨时的第一次体验。 这样的行业正处于发展初期。 第一辆车也很昂贵。

当技术随着时间的发展而发展,当机器人足够可靠时,当零件变得便宜时(如果这一切都发生的话),就会看到它。 我不知道一个试点项目需要多少年。 但是是的,它可能会发展。 也许不是。



渡渡鸟是


第一家比萨店开业几个月后,Dodo IS出现了-整个公司赖以生存的信息系统。 这是在一个基础架构中收集的一组微服务。 经理,客户,收银员,厨师,神秘购物者,呼叫中心员工都可以使用它-仅此而已。

按照惯例,Dodo IS分为两个部分。 首先是针对客户。 这包括网站,移动应用程序,呼叫中心。 第二个目标是针对加盟商合作伙伴。 她帮助管理比萨店。 通过该系统传递来自供应商的发票,人员管理,人员调动,自动工资单,人员在线培训,管理人员认证,质量控制系统和神秘购物者。

也就是说,这是一个由完全不同的工具和服务组成的大型系统。 随着系统与Dodo网络一起发展壮大,很难相信它的体系结构能够承受扩展的所有挑战。

-(Phil)系统很复杂。 从一开始就有很多错误的计算架构?

一切始于整体。 现在我们得出一个事实,我们必须逐步看到它,它不能承受负载。

总的来说,这是一个复杂而双重的问题。 您永远不知道如果一开始就不允许错误的计算会发生什么。 然后,您做得更快一些,更快地将其推向市场,淘汰了一个过时的功能,而您将永远不知道答案,没有答案,事情将会如何发生。

我们有一个古老的Dodo Pizza网站。 对其进行更改非常困难,并且出现了两种选择-要么进化开发现有的一种,要么重建其体系结构。 结果,该站点被完全丢弃,并编写了一个新站点。 就在上周,所有国家都被完全转移到了那里。

但是我不能称其为旧站点。 如果不能很快完成,也许根本不会存在渡渡鸟披萨。


Syktyvkar的Dodo Pizza办公室。

-(Phil)是否留下了目前正在干扰的错误决定?

-我们会定期做出这样的决定,有时我们不得不做出决定。 例如,我们有自己的总线用于不同系统之间的消息传递。 她的第二次转世现已结束。 他们做了一个-没成功,他们决定重做,然后做了第二个。 现在一切都很好。 困扰我们的一切,我们都在迅速改变。

-(菲尔)大公司的任何改变都是永远的。 你说一切都很快。 怎么做?

有很多因素。 我们的发展离客户很近。 当出现问题时,我们很容易开展业务并获得所有答案。 关键是沟通。

另一方面,如果合作伙伴开始大量编写他们在系统中需要这样的东西,并且如果他们编写的不是一个或两个,而是许多大型合作伙伴,则很可能这个东西很快就会被积压。 甚至可以移动所有其他任务,然后转到顶部。 例如,白俄罗斯开设了一家比萨店。 这项任务出现并转移了所有其他任务。 也就是说,我们具有快速的优先级管理,并且可以移动任务。

-(Phil)每个人都说沟通对他们来说非常重要,发展与业务密切沟通。 但是实际上,即使更改网站上的铭文也需要三个月。 还有更多这样的例子。

在这里,我们必须问一个问题,为什么通讯不通,为什么通讯不通。 在很大程度上可能取决于公司的规模。 如果您需要与不同的经理进行二十次批准,而又没有一个人愿意做出决定,那么这将很慢。 我们的决定很快做出。

如果有人要求在某个方向上进行更改,则该人员只需立即转到产品上,然后他们就可以做出决定并开始制作,您与该人员交谈后就知道他可以完全更改移动应用程序的优先级。

另一点与优先事项有关。 也许更改站点上的标题并不重要,不如如何处理从供应商处接收发票的任务。 然后,感觉到更改题字需要三个月。 不,她不接受-我们可以向她捐款以完成其他任务。


Syktyvkar的Dodo Pizza办公室。

-(Phil)您为什么不害怕承担这种责任?

承担责任的人,没有人会惩罚。 当您不害怕时,当他们信任您时,您就可以冒险。

在大型公司中,尽管每个人都说“我们是朋友”,但部门之间存在竞争。 在我们这里,任何人都会冷静地指出任何缺点,每个人都会提供反馈,告诉您。 一切都在内部社区的支持下完成。



比萨店背后的技术是什么


-(Phil)在2011年,.NET并不是一个显而易见的选择。 你为什么选择他?

-我们的人只知道.NET

-(菲尔)穷尽。 您是如何切换到.NET Core的?

所有新服务均在Core上提供。 25%是从旧的转移过来的。 我们将转移与整体切割相结合,这是分几个阶段完成的。 第一个是使用完整框架调用ASP.NET Core。 在那里迁移到Core本身已经很容易了,但这仍然是一个可以在IIS上运行的完整框架。 整个事物与其基础分开,现在您有了物理上分开的实例。 然后转换为.NET Core

下一步,我们将其翻译成Kestrel。 然后将容器运到库伯。 但是现在,与我们一起,Coober还没有做好全面实施的准备,我们只在那里发布最不重要的服务。 如果出了什么问题而掉下来,我们将生存。 但是移动API尚未包装在Coober中,我们尚未为此做好准备。

-(Phil)在堆栈上,您似乎正在特别想成为潮流。 你为什么需要这个?

-这不仅是出于趋势的趋势。 有两个因素。 当您撰写新技术时,吸引人们总是比较容易的,因为人们希望与新事物打交道。 第二个因素是平庸经济。 Linux服务器更便宜,Kestrel比IIS承受更多的负载,并与线程一起更精确地工作。

也就是说,技术的选择在经济上是合理的。

当决定建立一个新站点时,React和Angular之间进行了一场激烈的战斗。 他真的很长,但是赢得了React。 在后台,这个故事越来越难受。 仍然有来自不同版本Angular的粥-有第一个,第二个,甚至还有第四个。 第一个和第二个区别是天地。 如果从第二个到第四个的迁移相对简单,那么从第一个到第二个的迁移就是如何丢弃和重写所有内容。

仍然有jQuery,仍然存在。 但是我们基本上决定要在React上做所有新的事情。 我们也试图慢慢拖拉旧的。

逐渐地,整个后勤部门将被React挤满了。 jQuery也完全消失了。


Syktyvkar的Dodo Pizza办公室。

-(Phil)您有JavaScript或TypeScript吗?

打字稿 对于团队来说,使用静态类型更加容易。

-(Phil).NET的选择在战略上是否合理?

每次我问自己这个问题,并且每次我都不知道答案时。 没有什么可以阻止我们在另一个堆栈上提供新服务。 在微服务架构中,这很好用。 自然地,例如,所有机器学习都是基于Python构建的。

另一方面,我了解.NET(尤其是.NET Core)是一种技术,因此有时间对其进行投资。 首先,它是相对较新的。 其次,可以这么说,微软现在正在偿还债务。 他做了十年前应该做的事,但是一切都出了问题。

从语言本身的角度来看,C#美观,精彩,令人敬畏。 有大量的语法糖和清晰的结构可以用正常的逻辑方式来解释。

寻找开发人员有困难。 业界对.NET仍然非常不利。 也许,如果我们在Java堆栈上,将会有更多的开发人员。

-(Phil)引用您的空缺,“是的,我们没有WCF。 一点也不。” 他为什么不那样来找你?

我只记得非常罕见的情况,一个人与WCF的合作不是很深入,他很好。 但是我知道-我本人也是在练习中遇到的-WCF只是腿部射门,甚至不是from弹枪,而是手榴弹发射器。 WCF是一项非常出色的技术,当您需要支持多种不同的协议,没有足够的http,没有足够的REST json交换时,WCF将会为您提供一系列选择。

但是在我们的情况下,就像麻雀上的大炮一样。 而且配置非常复杂,配置中丝毫不松懈-而且您会收到“在模型中某处没有坚持的地方,找出来”的错误。

-(Phil)如果Microsoft消失并不再支持其技术,那么将花费您多少钱? 全部-没有.NET,没有Azure。

-关于Azure。 我们的全球方向是Coober中的集装箱化,实际上,它从哪里开始都没有关系。 紧急恢复并切换到另一个平台大约需要五个小时。 从操作系统的角度来看,我们将损失四到五个小时的工作时间。

如果.NET突然消失,开发人员将无处可去。 当然,转移到另一个堆栈会减慢我们的速度,但我认为这不会产生重大影响。 我们了解到,新服务需要在其他堆栈上完成-Java,Go,Python,这没关系-我们只是开始逐步重制并维护现在的工作。 也许这会减缓某些国家的发展,因为新国家的时间会更少。

问题是一切都会崩溃,不。 一切都会继续进行,但是发展会更加缓慢。 我认为其他公司对此没有不同。



在办公室做什么,什么是远程的以及如何与企业进行通信


-您的开发办公室在哪里?

-莫斯科的总部。 在Syktyvkar有一个办公室,在下诺夫哥罗德有一个小办公室,在不同城市有远距离的几个人。 是工程师,我们有57人,但据了解他们还不够,我们计划增长到250人。


Syktyvkar的Dodo Pizza办公室。

-对您来说重要吗-在办公室还是在远程?

-负责业务发展的主要流程是LeSS。 这意味着所有人必须在一个地方集中在一起。 但是我们知道,这一过程将不是我们唯一的过程。

例如,在存在高度不确定性的地方,例如在中国,您需要逐个进行试验并尝试找到可行的业务模型。 并且有一个专门的团队来做到这一点。 它由莫斯科,下诺夫哥罗德和武汉(中国)的开发商组成。

因此,我们希望将人们的一部分集中在莫斯科,以便他们全部都在这里,而我们可以安全地将另一部分交给远程团队,甚至是外部团队。 根据一般估计,将有60%至70%的工作在莫斯科完成。

-我可以给遥控器些什么?

-例如,质量控制系统是与餐厅检查时间表有关的项目。 不确定性程度低,已制定出流程,您可以将项目交给外部团队。

或现在有用于订购的主要移动应用程序,但移动开发人员仍然有一些不同的要求。 例如,不久前我们正在制造打标打印机。 例如,员工在比萨店切西红柿时,需要贴上标签。 保质期为24小时,之后将无法使用。

以前,标记是手动的。 您粘贴了不干胶标签,并用钢笔写字(钢笔!)您什么时候做的,但始终无法阅读。 这导致永久性标记错误。 这是一场灾难。

您会为标记这些西红柿而烦恼! 而且,只有开发人员亲自去比萨店时,他才会自己感觉和理解一切。 当我给八个番茄Lexans贴上标签时,我真的很糟糕。 很快就困惑了。



来自移动开发部门的家伙也去了一家比萨店工作,感到了所有的痛苦。 他们制作了带有移动应用程序的打印机,当到期日期结束时,它会自动为您提供标记-只需粘贴并接受即可。 接近客户的文化非常有效。

但是,该项目不是移动开发团队的关键。 只能在主要项目之间短暂地完成此操作。 我们还可以将这些东西提供给远程人员和外部团队。

-这57个人如何分配工作量?

-基本上,我们有功能团队,也就是说,团队几乎可以占用系统的任何部分。 他们对某些事物没有依恋。 曾经是这样,这导致了缺乏能力的问题。

— , Azure, .

— ?

— . , , , - , .

— -. . , ( — ) .

, , .

, . , , .


« » .

— ? .

, . . . , , .




— , ?

— , . , , .

IT — . - .

— ?

— . , . , . , — . .

, . , , , , , . — .



— , ?

— - « ». , . , .

?

, . , . , « , - », , , .

, : « . , ». . , , .

— ?

— . , , — , . , . , , , .




— ?

— - , , , , . , , .


« » .

— , ?

— , . , . . , , .

, .NET. . . , — . , , , — , , «».

, — . - , , , . , , .

— () ?

— . — , QA , , . .

. , . , , .

, , .

— () , , ?

— , . 99% - . , , .

, . , , . , .

— , , ?

— — . , . . , , .

. , «», , . , , , , .

, , : «, ». . , , -.


« » .

— , ?

-是的

— , .

— . , . , : « Google Facebook ». . , , . .

— ?

-不




— ?

— .

— ?

-当然了! — , . , , , . , — . — . , .

. , .

— , , , ?

— ?

— .

-是的 .

— ? .

— ? , «, , , ». . - , .

, . - , . . , , , .


« » .

— — . ? , , , , .

— , . , , - . — . - , , , .

. - , . - -. . . , , . .

, . . , , « , ». , . . .

-2. , , .

, , . , , . , — , — ?


« » .

— ?

-不 : « » « -» . .

. , -, , . , .

, — . , .

Source: https://habr.com/ru/post/zh-CN433168/


All Articles