📜 ⬆️ ⬇️

How to hire people in a huge company with an unpopular stack. Conversation with wrike



To see a new and so far little-known programming language in a small startup or pet-project with friends is a trivial matter. You will ask why they took him, they will say that they just studied out of curiosity, liked it and decided to experiment, because they were tired of eternal Java / .Net / JS at work.

But if a company speaks about itself with phrases in the spirit of “international business”, “offices around the world”, “cult of productivity”, “the result is important for us, not the process”, “we need burning eyes and a desire to develop” - usually they don’t waiting for surprises. Some even introduce stop-lists on new technologies until they gain weight in the industry. To questions about the disadvantages of tools, they evasively say: “the main thing is people, not languages”.
')
Wrike, with about 400 developers, has a different approach. They did not close their eyes to the shortcomings of JavaScript and did not even choose a compromise, like Flow or TypeScript - but they went a completely radical way. They rewrote the front into a language that a thousand people hardly knew then, and it seems that they are still absolutely sure of themselves.
Wrike took the honorable third place among medium- sized companies in the ranking of the best employers in My Circle IT with an average rating of 4.82. The top of the most highly regarded qualities of the company include: social package, comfortable working conditions, relations with colleagues, adequate salary and professional growth.






- Wrike was founded by Andrei Filev in 2007 in St. Petersburg. Then he began to develop business in America, in Silicon Valley. Then it was a completely different company, but now we have grown strongly.

In the beginning, Andrey had an outsourcing company. They began to look for software in it that would allow to work more efficiently - to manage time and resources. There was no truly awesome tool at that time, and the idea to create your own appeared. Then Wrike was born.

We started with simple things, but gradually the product began to grow. It was 12 years ago, and it can be said that we took part in the formation of a market for such work management systems. Wrike is now used by over 18,000 companies worldwide.

- Does that outsourcing company still exist?

Yes, it is called Murano Software. But she has nothing to do with us. Wrike is a full-fledged company of a single product, which was an experiment in the framework of an outsourcing company, but very quickly took off and separated.

- Are they still using it?

Yes, so far.

What is wrike


Wrike is a platform for project management and collaboration in a very broad sense: from a personal to-do list down to a system that is suitable for large companies.

Inside, you can create projects with multiple tasks and subtasks, customize reports for data collection, display Gantt charts, track tasks in the calendar, edit them simultaneously with other participants. Wrike add-ons help you manage your team’s workload in real time or run complex multi-channel marketing campaigns. There is an API for integration into other tools. There are extensions, for example, for Adobe Creative Cloud. It allows you to view and comment on files without leaving the system.

Wrike does not seek to focus on a particular function, industry or profession. It is positioned as a universal tool for everything - up to the replacement of the postal system, messenger, knowledge base, bug tracker and much more.

- Does defocusing on everyone and everything does not make separate parts worse?

- We deliberately do not go into narrow niches. For example, we do not want to do exclusively bug-tracking systems for developers like Jira. We do not want to make software only for programmers or only for designers. We are interested in making a universal product. At the same time, we understand that there are highly specialized cases that we do not cover.

But this is not our goal either to please everyone, or to occupy an IT niche completely. Although we are developing Wrike, we use it as a system for tasks and bug tracker.

- That is, you can take a bug tracker faster, instant messenger faster, but it will be five different tools and synchronize between them is difficult.



- But then you have to compete with everyone. Atlassian on the one hand. Slack as an instant messenger - on the other.

- Yes, now only lazy people are not developing project and product management systems.

- But there are not so many companies that would compete with us on all counts.

“Isn't Atlassian like that?”

- It is more focused on the IT market. For example, for designers Jira is too complicated.
It is very difficult to customize. There is even a profession - Jira Setup Manager. We try to do so that you go to the site, take a free account and everything - from the first day you can use without problems.

- But you say that you also work closely with clients and also send managers who are establishing processes.

Yes, we have a team of Customer Success and Deployment-managers, as well as a whole system of tours, guides, e-books and all documentation. There are managers who will help set up Wrike for ready-made processes. Sometimes they work with large one-to-one customers. Sometimes with many at once (for example, recording webinars). Even if a person has registered a trial and has not understood the product, he will have the opportunity to talk live with someone from the riker and understand how it works.

- In general, product implementation in a company with thousands of users is another task.

- Did it happen that with some of the big clients it was very difficult?

Usually, the larger the company, the more work processes it has - the harder it is to work. We, of course, are not outsourced. There is no such thing that some kind of fat cat comes and says: “there you have a lot of money, make me such a thing”. Our product managers themselves determine the ways of product development. But there are customers with interesting queries.

In Airbnb, for example, they use the platform in very unusual cases. Each apartment and, each person who rents it, is a separate project in Wrike.

Or the car company Coil [name changed]. Buyers order parts from them. Giving these people Wrike accounts is just an idea. You will not be every Coil owner to make your account. But the company really wanted a convenient opportunity to work with clients.

We, of course, did not say that we’ll make such a feature for them right now. But the managers realized that it would improve the product as a whole. This is how “external forms of requests” appeared for people who do not have a Wrike account.

- It turned out, you did for Coil [the name was changed], and it came up to everyone else?

- Not really. We simultaneously analyzed the market and built hypotheses - this task lay in a potential roadmap. If there was a request that does not suit us at all, we would not do it.


Wrike internal structure




We work on scrum. The company is divided into teams by features - about 10 people each. They are of different composition, but each has a backend, a frontend, a scrum master, a QA, a QA automator, a UX designer, a product manager, a product analyst (analysts are sometimes for several teams). Such a composition is fully functional and can make a feature inside and out.

There are internal teams that make frameworks, components, design whales, are engaged in the transition from one version of the programming language to another.

Some teams are common to the entire company. For example, these are SysOps, which are engaged in server infrastructure, and DevOps - they are engaged in delivery and delivery of the product. We have releases from one to 3 times a day.

We also partially use the already-known structure of Spotify with guilds. For example, a frontend where front-fighters consist of all teams. There are frontend leads that deal with management and architecture. And there are guild leads.

We have not yet reached the point of separating them from the teams. But in general it is logical and organic. Now people, possessing high technical architectural skills, are in infrastructure teams.

Wrike is not exactly about the bureaucratic structure. But this does not mean that we are in chaos. If a person does what he likes and does it well, then there will be room for growth regardless of the position he occupies.

- And in what office what is being done?

- In St. Petersburg and Voronezh engineering r'n'd offices. We have 400 people in St. Petersburg, and 40 in Voronezh. There are offices in San Jose, San Diego. This year will open an office in Prague. Recently expanded office in Dublin. In January of this year, an office was opened in Melbourne, Australia.



- In the US offices we have sales, marketing, managers (CSM). In Dublin, too, CSM and sales. There is a team of analysts. In St. Petersburg - the largest and unifying office. Here we have customer service managers, product managers, analysts, designers, development and back office.

- Does everyone work in offices or are you open to a remote?

- Removed scrum teams are very difficult. We want people to be close and in contact with each other. In the departments that may assume remote work (for example, Customer Support), we do not limit the guys very much.

- Udalenka in development - a controversial point. Now much is said about her, in English-speaking twitter constantly discuss this topic. There are pros and cons. In our opinion, “against” more. As a team manager, it would be hard for me to ensure productivity and the general spirit, to raise and coach remote employees.

We have a fairly flexible schedule, people do not sit in the office strictly from ten to six. If there is a stand-up, then be kind - come, and already when it passes and how long it will last, the teams choose themselves. If something happens, also without problems - the person writes that he works from home.

- When a product is international, developers are often required to know English well to speak with customers.

- We do not have customers, we are not outsourcing. The company is international, and part of the communications is indeed conducted in English, but this does not apply to all. For developers in Russia, we have no special requirement to know English.

Once a month there are rallies at which we tell about all changes in the company and financial indicators. Communication with support is in English. Tickets with customer bugs, too, of course, in English. For those who want to improve or learn the language, there is such an opportunity - we have regular classes with teachers, they are free for employees.

But my opinion is that if a developer did not start developing yesterday, he knows English at least at the level of reading documentation. Without a language, you can't even google anything.

Of course, developers may not have true British accent and do not have Oxford behind them, but they can usually express themselves and read something.


Why Dart is better than JavaScript and TypeScript





- Now all this is a big complex system. But it grew out of internal development a long time ago and has changed a lot since then. Because of this, there are no architectural miscalculations that now prevent to live?

- Of course, the project is big. We have either one and a half, or two million lines of Java code on the backend. At the front end, too, is comparable. But I don’t know a single person who can design a system for five years ahead, and it will be developed without restructuring.

It happens that something falls. Sometimes we understand that two years ago we were more stupid. But it is natural from the point of view of the engineer. How else?

- Therefore, there are internal teams that periodically rewrite old parts.

- Yes, I sometimes say that we need to sit down and refactor, and then she shoots so that everything will shoot off. Sit down and refactorize. Architecture hinders - we make architecture.

- What is your stack?

- On the Java backend. SQL database. An interesting thing on the front end. Once upon a time we had JavaScript, but we realized that it does not scale at all and chose Dart.

- What-that chose ??

- Dart. Yes, this is a normal reaction. A typed language from Google, which is now almost seven years old. We are probably the most important evangelists of this stack in Russia.

- The most important or only?

- By the way, now it is actively developing. Google launched Flutter - it is such a mobile framework, written just on Dart. There is a Russian Dart Community , which we have created and support. There are already about one and a half thousand people. Of course, by the standards of JavaScript this is not particularly impressive, but also quite a lot.

Last December, we organized the DartUp conference - there was a huge hall and many people came. And many actually use Dart in production. The language is gradually developing, and this is very cool.

- So we are now on horseback. To say "in the world" is probably pretentious, but, in fact, it is. DartUp is the largest Dart conference in the world. Even more than Google.

- At the conference there were about three hundred people. Although two years ago it seemed that we were alone in the field of warriors.



- This is all curious, but how to work on such a large-scale project, if you don’t hire people, there are no libraries or frameworks.

- It's a delusion. Recently, we took the team person for whom Dart in general was the first programming language.

- In Dart everything is there. This is a language from the category of C # and Java - everything that is needed is built in there. And it is generally not true that everything is empty and they roll around the field. It has even more built-in than in some twenty-year-old languages. Libraries, tools, framework support - Angular is there too.

Of course, there is no infrastructure like JS. But the problem is that when people write millions of libraries, there are millions of bad libraries. And maybe only a hundred normal.

And if the library is written by Google, which uses Dart in AdWords and AdSense, then the average quality is much higher.

The beauty of the language is that it is simple and C-like. That is, we hire developers in C ++, C #, Java, JavaScript — anyone. We do not require knowledge of Dart. Naturally, the street does not find a dart developer.

There is a developer in my team with experience Sh. Sharp, dotnet. At the front, he never even wrote. And he washed down the feature in five days. Because the language is as if you have written on it all your life.

In a good way, developers and engineers write business logic, no matter what language.

“But people don't start writing like in their old language?” The same JS-nicks came from a dynamic language to a static one.

- Therefore, our selection process is not the easiest. But fair and honest.

- Ok, why is the language good?

I would say it is one of the most rigidly typed, which are compiled in JS. When we sat on the front end four years ago and we were about 8 people - you can at least smear all sorts of linders, rules, everything in the world - but he will still miss something. Needed a static typing, the most stringent.

On Dart, if you write something wrong, you will immediately understand it. It has an earlier error detection, which allows even without testing the code to understand whether it works or not.

In the built-in library there is no chaos, when one was updated, and the other fell off. Because along with the language comes the SDK, which ensures that everything works after the upgrade. No need to connect a million libraries to get streams and streams - everything is already there.

Now there are two languages ​​in the world that allow you to write for all platforms — under mobile, under the backend, under the desktop, under the web. This is JS and Dart. JS cons know how much. And Dart has a huge plus - typing.

Therefore, there remains only one hard-typed language that allows writing for all platforms with normal tulling. Many cite Kotlin as an example, but for the web it is not very.



- Now you do not regret that, for example, did not choose TypeScript?

- Not now, but in principle we do not regret. I advise you to watch the report of Victor Logov from JetBrains at the HolyJS conference [ Probably, the speaker confused the name, and it was about the report of Anton Lobov ].

They do support TypeScript in their products, and he simply spreads TS there, reasonably. And after that there is no desire to take it at all. One gets the feeling that the features in it appear according to the principle “Let's add it here? And let's.

- So that I believe, tell me what is bad in Darta? It can not be that everything is perfect.

Easily. There are problems, but not with the language, but with Google. They inside use quite a lot of tools that do not rummage out. We now have a direct channel with Google, we are a member of a number of internal organizations, and they are slowly giving away these tools.

But this is only relevant for us, for a very large code base. Small projects have no problems at all.

- After the experience with Dart, you did not want to replace Java with Go?

- What for? Dart we chose according to certain parameters. It was a weighted decision.

- One of our speakers says that there are companies that rewrite everything for new technologies, and there are companies that make money. Rewriting should not be an end in itself. There are business tasks, and there are tools that should implement them.

- We are experimenting with different technologies. If at some point we understand that Go works better, then we will try.

At the frontend, we are moving towards independent applications. On the back end is a mono repository. There are many advantages in this, but there are certain disadvantages - you can talk about this for a long time. We are looking in the direction of microservice architecture, based on what will be useful in our conditions.

Microservice architecture works well where there are few links. , . . , , .


,




— , ?

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

— , , . , — .

— , «, » . , , .

, -, « ». , , , .

— , , .



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

— . , , , . , . — .

— ?

— , , .

, , . , , , , .

: « React-», — . React, ?

, . . , JS. : « Jira Wrike. ?»

, — Go, . , . , , .

— , , « », ?

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

, , . , , ? . , … — , « ».



— . ?

— .

Wrike , , . , . , , , .

— ?

— . Gantt-. Canvas, . , , Google — , Dart . , .

— , - , ?

- Of course. . , -. Wrike, . , - , .

— ? , 400 . ?

— . — . , . Cultural fit, , .

— . , ?

— -5 . — . , . , , ? , .

— , , ?

— , - . , , , .

— , , . . . . , , — .

— , ?

- Not. . - .



— , ?

— . , . , , , . .

— . Wrike — safe place. Google , — . , .

, , — .

— , ?

— — . . , — , .

Source: https://habr.com/ru/post/442934/


All Articles