Why does a programmer have an internship in the kitchen - a conversation with “Dodo Pizza” about gembu, .NET and openness
A lot is already known about Dodo Pizza. The company's business is intertwined with a network of high-tech services; they wrote a book about their history, the technology stack and the system architecture are painted directly on the site, a couple of clicks from the main page. Even the most unpleasant fakapy they calmly and openly discuss to the public.
Everything is great, and a romantic flair is created - it seems that in Dodo Pizza, by default, it’s cool to work. But it was interesting for us to understand whether this is true.
Are there open folds and pitfalls? How do people feel about open cameras in kitchens? Isn't technology just a marketing ornament? In the end, while the IT giants around are inviting developers to create a lifetime supply of cookies and personal coffee carriers, Dodo promotes periodic work in the kitchen in order to feel the pain of customers and ordinary employees. Fillpackart
and I asked about all this and Alexander Andronov, the Dodo Pizza station, answered us.
Why do pizzerias technology
- How did Fedor open the pizzeria so quickly after working as an ordinary cashier?
- There is nothing difficult. Took and did. It does not need extra preparation and extra money.
- But in my opinion it is quite expensive.
- It is expensive if you open a pizzeria somewhere in Moscow, within the third transport ring. There you need 15-20 million investment. And the first "Dodo Pizza" opened in the depths of Syktyvkar, in the basement. There was no restaurant, it only worked for delivery, and the investment was small.
There is nothing complicated about it. We have stories when partners collected credit cards from all banks, cashed out, and with this money they went to build a pizzeria.
Fedor Ovchinnikov, the founder of "Dodo Pizza".
- The idea of focusing on technology was immediately?
- Yes, the development began about a month after the opening of the first pizzeria. Fedor himself is not a developer - he found two guys who read his blog and responded to the idea. There was a very short development cycle to immediately pull everything into production. It bribed him, and they started working together.
- When people are attracted to technology, the food industry, the restaurant business are often not at the forefront among their interests. Why pizza?
- Pizza is a fairly simple and straightforward product. Wherever you are, in any country, say the word "pizza", and I will know everything what it is. This is a well-prepared product from a business perspective. It is clear how to do, there is a lot of experience of other companies, a lot of development models. Just take and do.
But the emphasis on technology begins to give a profit not when you have one or two pizzerias, but when there will be a thousand. Then you can build personalization, you can manage online pizzeria online, instantly find out what went wrong and fix it.
- So, you still do not get a profit from technology?
Globally speaking, the profit is just beginning to manifest itself. For example, we consolidate all sales channels, we have a single system of call centers. Neither Dominos nor Papa John's have any. There you need to call up with a particular pizzeria, which will bring your order.
- But this is not so.
This is true. They have a general telephone order only. But then they call you back from a particular pizzeria, if, for example, there were no ingredients for your order. We have the same system, when we receive a call to the call center, we know for sure which pizzeria will carry out the order, what is its balance, couriers. All information from employees online.
Dodo Pizza office in Syktyvkar.
- OK. What is your main thing - pizza or technology?
- They are inseparable. Without pizza technology does not make sense. But without technology, there would be just another pizzeria, and we most likely could not scale this way.
This is the same as asking: developers or QA-engineers are more important.
- (Phil fillpackart ) Developers, of course
- You're wrong. The question can not be answered unambiguously. It all depends on what time you are. When everything is developed, who is more important? You will cry if you do not have enough QA engineers. They will be forced to become developers.
And exactly technology and pizza do not exist without each other.
“Technology doesn't work here like a Goldberg machine?” Half an hour, various mechanisms work wonders so that at the end of the hammer fell and broke a nut.
- It may seem at first glance. Sometimes explaining to the developers what we are doing is a problem. Their first reaction: “what is there, a site for the sale of pizza to do? 1C set up? "
From the point of view of working with the client and managing pizzerias, all this will give a profit with global growth. In the classic business there are strictly certain factors that affect the success of each pizzeria: the cost of labor, the cost of ingredients, revenue, customer acquisition costs, retention. You need to keep just enough ingredients to accurately sell the entire menu, so that nothing spoils and does not have to be written off.
The cost of labor is related to demand forecast. If you understand that in some hours you will have one sale, and in other hours - others, you can make an automatic schedule for people to go to shifts. For the most part, this is how it happens with us, but we predict it so far in semi-manual mode. We turn to full automation over time.
Information systems gradually begin to help at each stage, they all optimize to such an extent that without technology it becomes impossible.
- In the case of Zume Pizza - do not bend with the technology?
It seems that this is the first experience when a robot makes a pizza. Such an industry at the very beginning of development. The first cars were also very expensive.
When technology evolves over time, when robots are reliable enough, when parts become cheap (if it happens at all), then it will be clear. I do not know how many years will be spent on the pilot project. But yes, it may well develop. Or maybe not.
A couple of months after the opening of the first pizzeria, Dodo IS appeared - an information system on which the work of the entire company rests. This is a set of microservices assembled into one infrastructure. It is used by managers, customers, cashiers, cooks, secret buyers, call center employees - everything.
Conventionally, Dodo IS is divided into two parts. The first is for customers. This includes the site, mobile app, call center. The second is aimed at franchisee partners. She helps to manage pizzerias. Through the system pass invoices from suppliers, personnel management, the withdrawal of people in shifts, automatic calculation of salaries, online training for personnel, certification of managers, quality control system and secret buyers.
That is, it is a big system from the darkness of completely different tools and services. As the system grew and developed along with the Dodo network, it is hard to believe that its architecture passed all the challenges associated with scaling.
- (Phil) The system is complicated. Many turned out to be miscalculations in architecture, made from the very beginning?
It all started with a monolith. Now we have come to the conclusion that it is necessary to gradually cut it, it does not withstand the load.
In general, this is a complex and twofold question. You never know what it would be like if you had not made an incorrigible miscalculation in the beginning. Then you did something faster, quickly brought it to the market, wrote down a banal feature, and you would never know the answer, as if things had worked out without it.
We had an old Dodo Pizza site. It was very difficult to make changes to it, and two options appeared - either to develop the existing evolutionarily or to rebuild its architecture. As a result, the site was thrown out completely and wrote a new one. Just last week, all countries were completely transferred to it.
But I can not call the old site a miscalculation. If he hadn’t been made quickly, perhaps Dodo Pizza would simply not exist.
Dodo Pizza office in Syktyvkar.
- (Phil) Are there any wrong decisions that are getting in the way?
- We periodically make such decisions, and sometimes you have to cut them. For example, we had our own bus for messaging between different systems. Her second reincarnation is now over. We did one thing - it didn’t work, we decided to remake it, we did the second one. Now everything is ok. Everything that hinders us, we quickly change.
- (Phil) Any change in large companies takes forever. And you say that you have everything quickly. How does this work?
There are a lot of factors. Our development is at arm's length from the client. When there is a problem, it is very easy for us to get to the business and get all the answers. The key is communication.
On the other hand, if the partners start writing in large quantities that they need such-and-such a thing in the system, and if they write not one or two, but many large partners, it is very likely that this thing will fall into backlog very quickly. Maybe even move all the other tasks and come out to the top. Such an example was the opening of a pizzeria in Belarus. This task appeared and shifted all the rest. That is, we have fast priority management, and we have the ability to move tasks.
- (Phil) Everyone says that communication is very important to them, that development is closely communicating with the business. In fact, even change the inscription on the site takes three months. And there are more such examples.
Here we must ask the question why it is impossible, where communications do not take place. Much may depend on the size of the company. If you need to go through twenty approvals with different managers, and none of them want to take the decision, it will be slow. Our decisions are made quickly.
If there is a request for a change in some direction, the person simply goes immediately to the product, right there on the spot they make a decision, and just start to do it. You talk to the person, and you understand that he can change the priorities of the mobile application completely.
Another point is related to priorities. Perhaps changing the inscription on the site is not as important as the task of receiving invoices from suppliers. And then it creates the feeling that changing the inscription takes three months. No, it does not take - we can sacrifice it for other tasks.
Dodo Pizza office in Syktyvkar.
- (Phil) Why aren't you afraid to take such responsibility?
People who take responsibility, no one will punish. And when you are not afraid, when they trust you, you allow yourself to take risks.
In large companies, despite the fact that everyone says “we are friends,” there is rivalry between departments. We calmly anyone will point out the shortcomings, all will give feedback, prompt. Everything is done with the support of the internal community.
What technologies are behind pizzerias
- (Phil) In 2011, .NET was not the obvious choice. Why did you choose him?
- Just our guys knew .NET
- (Phil) Exhaustively. And how did you switch to .NET Core?
All new services are made on Core. Of the old, twenty-five percent was transferred. We combine the transfer with the cut of the monolith, and this is done in several stages. The first is a call on an ASP.NET Core with a full framework. There, it will be easier to migrate to Core itself, but this is still a complete framework that runs on IIS. The whole thing is separated from its base, and now you have physically separate instances. Then transfer to .NET Core
The next step is to translate this into Kestrel. And then containers in Kuber. But now Kuber is not ready for full implementation, we run there only the least critical services. If something goes wrong, and they fall off - we will survive. But it’s impossible to wrap up the mobile API in Kuber, we haven’t prepared for this yet.
- (Phil) According to the stack it seems that you are specifically trying to be in trend. Why do you need this?
- This is not just a trend for the sake of trend. Here are two factors. When you write on new technologies, it is always easier for you to attract people, because people want to work with new things. The second factor is the banal economy. Linux servers are cheaper, Kestrel can withstand more workloads than IIS, it works with threads more carefully.
That is, the choice of technology is economically justified.
When the decision was made to make a new site, a big battle was arranged between React and Angular. He was really long, but won the React. Back office history is sadder and older. There still remains porridge from different versions of Angulyar - it was the first, and the second, and somewhere even the fourth. And between the first and second, the difference is like heaven and earth. If the migration from the second to the fourth is relatively simple, then the migration from the first to the second is how to throw everything away and rewrite everything.
JQuery was still there and still remains. But we basically decided that we are doing all the new things at React. We are trying to slowly drag and old too.
Gradually, the entire back office will acquire React. Angular is completely gone, jQuery too.
Dodo Pizza office in Syktyvkar.
TypeScript. It was easier for the team to work with static typing.
- (Phil) Choosing .NET strategically justified?
Every time I ask myself this question, and each time I do not know the answer to it. Nothing stops us from doing new services on another stack. In microservice architecture it works fine. Naturally, the entire Machine Learning, for example, is built on Python.
On the other hand, I understand that .NET (especially .NET Core) is a technology in which now is the time to invest. First, it is relatively new. Second, let's say, Microsoft is paying off debts now. He does what he should have done ten years ago, but everything went wrong.
And from the point of view of the language itself - C # is beautiful, wonderful and awesome. There is a huge amount of syntactic sugar and clear constructions that can be explained in a logical and logical way.
There are difficulties in order to look for developers. The industry still has a very negative attitude towards .NET. Probably, if we were on the Java stack, there would be more developers.
- (Phil) Quote from your vacancy “and yes we do not have WCF. Not at all". What he did not go so?
I remember only very rare cases, when a person did not work very hard with WCF, and he was fine. But I know - and I came across it in practice - when the WCF was just a shot in the foot, not even with a shotgun, but with a grenade launcher. WCF - crazy technology of a furious, when you need to support a bunch of different protocols, when you don’t have enough http, when you don’t have enough REST exchanges of json s, WCF will come to you and give you a bunch of options for what to do.
But in our case, it's like a cannon on a sparrow. And it is quite complicated in setting up, the slightest inaccuracy in the configs - and you get errors, the level "somewhere in the models something did not stop, go figure that out."
- (Phil) If Microsoft disappears and stops supporting its technologies, how much will it cost you? All - no. NET, no Azure.
- What about Azure. We have a global direction - this is containerization in Kuber, and in fact it does not matter where it starts. Emergency recovery and transition to another platform takes about five hours from us. In terms of operating systems, we lose four to five hours of work.
And if .NET suddenly disappears, developers will not go anywhere. Switching to another stack, of course, will slow us down, but I don’t think it will have a significant impact. We understand that new services need to be done on some other stack - Java, Go, Python, it does not matter - we will just start gradually redoing and supporting the operational work of what is now. Perhaps this will slow down development in some countries, because there will be less time for a new one.
Problems with the fact that everything falls apart, no. Everything will continue to work, but will develop more slowly. I do not think that other companies have this differently.
What to do in the office, on the remote, and how to communicate with the business
- Where is your development office?
- The main office in Moscow. There is an office in Syktyvkar, a small office in Nizhny Novgorod, and several people in remote cities in different cities. We have 57 engineers, but there is an understanding that there are not enough of them, and we plan to grow up to 250 people.
Dodo Pizza office in Syktyvkar.
- You do not care - in the office or remotely?
- The main process responsible for business development is LeSS. He implies that all people must be co-located, in one place. But we understand that with us this process will not be the only one.
Where there is a high degree of uncertainty, for example, in China, you need to experiment experimentally and try to find a working business model. And there is a dedicated team that does it. It consists of developers in Moscow, Nizhny Novgorod and Wuhan (China).
Therefore, we want to gather people in Moscow for one part of the work, so that they all are physically here, and we can safely give the other part to remote teams, and even to external teams. According to general estimates, 60-70 percent of the work will be done in Moscow.
- What can be given away?
- For example, the quality control system is a project related to the schedule of inspections of restaurants. There is a low degree of uncertainty, the process is worked out, and you can give the project to external teams.
Or now there is a main mobile application for ordering, but the guys in mobile development still have several different requests. For example, not so long ago we did the printer markings. When employees in a pizzeria are cut, for example, tomatoes, they need to be marked. Shelf life - 24 hours, and after that they can not be used.
Earlier markings were manual. You put a sticker on it, wrote it with a pen (pen!) At what time you did it, but it's always impossible to read them. This led to permanent labeling errors. And this is a disaster.
You get tired of labeling these tomatoes! And only when the developer himself goes to the pizzeria, he will feel and understand everything on his hands. It was really bad for me when I labeled eight lexans of tomatoes. Confused fast.
The guys from mobile development also went to work at a pizzeria and felt all the pain. They made a printer with a mobile application, which automatically gives you a label when the expiration date is over - you simply paste and refer. The customer proximity culture worked very well.
But this project for the mobile development team is not the key. It can be done only in a small pause between the main projects. We can also give such things to remote teams and to external teams.
- How do these 57 people distribute a mountain of work among themselves?
- Basically, we have a feature-team, that is, teams that can take almost any part of the system. They have no attachment to certain things. There used to be, and this led to problems of lack of competence.
There are several dedicated teams — a team that handles all of Azure’s cloud infrastructure, and mobile development.
- How does the development interact with everyone else?
- Once every two weeks, planning takes place along with all stakeholders and products. The guys can calmly ask questions to the business, what goals does he want to achieve, to understand what to do in one or two weeks when the new sprint starts.
Another meeting is a sprint review. Also every other week on Fridays. All the stakeholders see what has been done in two weeks (and it’s done for us - it’s pulled out in production) and give feedback.
From the products, the guys receive feedback every day several times, because they are physically close by and can communicate very quickly about everything.
Stakeholder products have a separate meeting where they prepare tasks for developers in advance. Further development will learn about these tasks at the general meeting in the middle of the sprint, after a week they take them to work, and after two weeks they are shown to the stakeholders.
Dodo Pizza office in Syktyvkar.
- The development is not overwhelmed with work to the very top? Everyone has ten ideas and twenty comments a day.
Not twenty comments a day, but fifty. And twice as many ideas. This is absolutely normal. It is important to simply prioritize, understand the bandwidth limit, how much we can do from these tasks.
Why do developers need to work in the kitchen?
- Is it serious that the developer should undergo an internship in the kitchen?
- While this thing is optional, but from it is a very large profit. We have the whole company except the developers undergoes an internship, but not in pizzerias, but in the training center in Syktyvkar.
For IT, we tried to launch internships in Moscow - to go to work at a pizzeria for six shifts. Man ten to twelve passed.
- How do they react?
- enthusiastically. There is such a thing as Gemba. This is when you go to the place of production where value itself is created. For Toyota, who invented gemba, this is a manufacturing plant. For us, this is a kitchen.
You do not come to gemba because you are having fun and want to be distracted from the computer, to roll pizza. You go to catch insights, understand how your business works in reality, and draw conclusions from this, come up with improvements. For example, therefore, for products and analysts, gemba is an obligatory part of the work.
- How to respond to the proposal to work, and not on the process itself?
- Someone says "I do not want." With that, it's an awesome developer. But ok, they just miss the moment and the opportunity to better understand customers.
People from the prospect of internships in the kitchen is not frightening?
Scares, and all right. Yes, this is always a difficult moment and always a debatable question. If a person responds in such a way that “I will not go into the kitchen at all, and because of this I will not even talk to them,” I cannot imagine what drives this person, I cannot understand the motivation.
At the same time, we have a lot of cases when people say directly: “I don’t want to go to the kitchen. But I want to be a developer and write a bunch of code, make products. ” And they do it. But they came to talk, they discussed, and that's fine.
- Why only for developers did not make gembu mandatory?
- Because it is not necessary in all parts of the system. There is a part where it is extremely useful, but for example the infrastructure team - for them, clients, these are developers. That is, their gemba is not in pizzeria, but in development. Given that there are people who went to the kitchen and understood why we all do it.
Why do you need to pass a test day when hiring
- What should a person be able and know when coming to you?
- First of all, this is software skills, a certain level of culture, when you realize that you are not just writing code, but creating products. It is important for you to communicate with the business, with the team, you should not be afraid of this.
Dodo Pizza office in Syktyvkar.
- There is no chance that with such an approach you will take an uneducated talker?
- The person who constantly speaks is appreciated. He who is able to ask the right questions at the right time is appreciated. Among the software skills should be willing to change. We live in a situation when we suddenly have a problem, and the whole focus shifts to them.
And in terms of technology, we need a good knowledge of .NET. Very good knowledge. Then there are two aspects. The first is associated with databases, the second - with the front. If a person understands well how to work with databases, what transactions are, why distributed transactions are hard, and if he understands everything at a deep level, then welcome to Dodo.
If he understands the database is not very deep, but at the same time is good in React or Angulyar - welcome too. If he has one of these three aspects, then we most likely will not take it. But let us tell you how, in our opinion, it is worth pumping, what to read and study.
- (Phil) So you make teams from fullsteks?
- For the most part, yes. The ideal team for us is five people, including one QA engineer, four developers, and at least one of them with a focus on the frontend. Fully dedicated front-end developers, we have only three people for the whole company.
I do not see a big problem with this. If we have difficulties in the front, then a full-fledged net fronder will go to the team and spend a week or a month there. His task is not only to do the work, but also to transfer his knowledge so that the team can support all this.
That is, we have fullstek developers, which are the majority, and developers with specializations.
- (Phil) Have you ever taken a developer because he is toxic?
- I do not believe that toxic man is toxic constantly. In 99% of the cases that day, something went wrong with him. Here I had a child yesterday gave a tantrum, and I was toxic, I came to the interview in a bad mood.
But we are trying in a special way to formulate questions to get to the bottom. If you see that a person wants to podgadit current employer, it is not very good. I do not condone such things, but I must get to the motives.
- If a person has an ingenious engineering thinking, but at the interview he gets stuck on a banal error in theory, what conclusion will you make?
- We will invite him on the test day - this is one of our selection stages. A person comes to work with us, usually from nine to three. This is work in tandem with one of our developers on a real task. We try to make sure that at the end of the day the tasks go to production, but this is not always the case.
It works very well. We had cases when, after the interview, we said “yes”, but after the test day, we realized that we didn’t want to see this person in the team at all. There were cases when a person was not very well interviewed, but on the test day it became clear that he was mega cool, and he should be taken.
And once a man came, we wanted to take him, but after the test day he said: “guys, I don’t want to work with your legacy”. This is an absolutely normal story. And if we had made him an offer, he would accept him, be disappointed and leave in a month or two.
Dodo Pizza office in Moscow.
- Many companies for three months for the adaptation of employees, and then he should come and the first day to plunge into production?
- I think many good people can get rid of it.
- I have not seen this. The drive comes from our side, sometimes we even prepare special tasks for a test day. In general, I remember only one case where the candidate responded: “You are not Google or Facebook to go to you on a test day.” The rest are delighted. For them, this is a real opportunity from the inside to see with what they have to work, with whom to be in the same team. Good developers really appreciate it.
- Pay for the test day?
What does complete transparency and openness mean?
- How do you live in complete transparency?
- Of course! Transparency is a thing to look at from two sides. The first side is transparency outward, when we openly say what is happening inside us. Successes, fakapy - all. The second is the openness inside. The opportunity to calmly go and give feedback to anyone, even Fedor.
Transparency and openness motivate and force to be in good shape. You can burn the bridges, and you will not have the opportunity zafakapit.
- If we talk about the kitchen, do not you think that it is terrible when people work under cameras?
- Why is it terrible?
- People feel supervised constantly.
- Yes. It is very motivating to do your job well.
- Doesn't that crush? It turns out forced motivation.
- How do you like to do your job? You have been given a task, you say “guys, I’ll go away, I promise that I will do everything well and come back with the result.” This is a rather specific approach. Somewhere in the middle of the road you will understand that it would be nice to get feedback.
Come with an intermediate result to the person who gave you the task. And you will start in any way discovering what you are doing. Trite for feedback. Openness not only showing the result, but also showing the process, how you do it, will give you more trust from customers.
Dodo Pizza office in Moscow.
- It is normal to go and receive feedback voluntarily. But under the cameras? Such people probably read Orwell, and do not understand what is terrible there.
- When it is raised to the level of culture, you do not look at open cameras. You understand that you will not do anything if you do not receive feedback on some part of the work. Cameras are the same motivation and feedback. If someone, God forbid, sees that you have picked up the ingredient from the floor, they immediately give you a bunch of feedback, pizzerias can lower the rating.
But there is no element of intimidation. If you do something wrong, you will not be punished. This will be a reason to pay attention and do something differently. And this is how psychology applies not only to the pizzeria. It is everywhere. When you know that your job will not punish you, and you have nothing to hide. That makes sense.
In general, the camera is only on stuffed. They are not in the kitchen. This is a motivational moment of openness for customers, relatively speaking, “we have nothing to hide, we don’t spit in your pizza and don’t put anything on it”. Inside there is a room where you can safely eat. Employees also relax. They are not around the clock under the cameras.
This is not House-2. There is no such thing that let's follow how the life of the pizzeria staff is developing.
Plus, places where pizza is cooked are often in shopping centers. There are so many people waiting for orders, and you are cooking in front of them. Why, when the camera is above you - this is bad, and when a person looks at you - is this normal?
Dodo Pizza office in Moscow.
- Are your salaries open too?
- Not. You cannot make some things transparent easily: “let's open all salaries from tomorrow” or “let's become transparent somewhere else from tomorrow” just like that. Need preparation.
Even for the camera in the kitchen there is a certain preparation. These are verified standards, training of pizza-makers, so that they always monitor cleanliness and wash their hands. That is, a system is ready under which we can calmly open everything.
When you build a system, and then you take a step towards openness - this is burning bridges. There is no turning back, you have opened.