Remote and control, freedom and government structures. Conversation with Staply
A couple of years ago, Vedomosti wrote about a “protected Russian messenger” , which they are going to introduce into state structures. Even the retelling of this news in one sentence gives in the head with the sound of harmoniously walking hammers. Can you imagine how somewhere behind a high fence, with hedgehogs at the entrance and two sentries, they raise part of the programmers in uniform and give them an alarm in the battle for the benefit of import substitution.
Stereotypes are a terrible thing, I know.
The messenger together with Beeline was developed by Staply. Now they have left this venture, and transferred the groundwork to a new product - “Mobile Enterprise”. It turns out that this is a small team of remote workers who do not accept the microcontrol so much that they live without managers and even timlids, they work when they want and from where they want.
How they do it, I asked Staply technical director Maxim Indykov ( maks_ohs ).
The company was ranked in a recent ranking of the best employers in Moi Krug IT with an average rating of 4.81 on all twelve criteria, of which Staply employees rate modern technologies, adequate wages, professional growth, recognition of work results and connection with top management.
What is Staply
- It all started about six years ago. I graduated from ITMO, "Information Technology". This is a hodgepodge of all subjects - up to the preparation of curricula, history, philosophy, mathematics, physics, programming. Then we thought with the guys what interesting things you can do. We had several attempts, and the first project, which had some weight, was called Cloudiverse.
With him, the guys took second place on the TechSrunch hackathon. The bottom line was this - the file is taken, broken into pieces in the browser, each piece is encrypted, and these encrypted pieces are sent to different clouds. The piece is in Dropbox, the piece is in Google Drive, and the piece remains locally. To collect everything back, you need to know the key and know where the pieces are.
This was done against the backdrop of Snowden's HYIP. But in fact, the project was interesting to us more from a technical point of view - an unusually large work on the client at that time. But then the topic of security somehow faded away.
- Was your motivation exactly a HYIP or some kind of conviction?
- HYIP doesn't exist at all - it was just a nice bonus. Motivated to make an interesting project. And when we showed it, everyone was interested. It seems to be a simple idea, but at the same time it is well visualized in the heads of people. Here the file is broken, and just the character set remains. Do not carp at all.
- How did you get into TechCrunch?
- Just sent a request and that's it. They caught a free ticket distribution online and managed to register. We always try to make it as simple as possible. Without searching for workarounds, without tricky schemes. And why TechCrunch? I wanted to try the best. In those days it was a good HYPT hackathon.
We were then a little - three people. I (the developer), designer, organizer. There was one more person, he was engaged in patents.
Everything went pretty fast. After we started developing a service - chat for correspondence, something like Slack. Just made a good convenient messenger. And just at that time there was a story about import substitution, somewhere in the 14th year.
We tested the product at Rosenergoatom and the government of the Moscow region. The main feature was that it was placed on internal servers. Fully packaged solution. It allows you to really communicate safely, because there is simply no access to the Internet. Therefore, large corporations tried it.
A couple of news items came out about this topic, they wrote it in Vedomosti. We ourselves wrote a lot - on Habr, on VC - and somehow we promoted. We never bought any advertising, just made articles with good material, interesting topics. I wrote about programming, Dima - our lawyer - wrote about the legal histories of the project. We shared with the community what we know.
We then did not have large resources for development and support. We were few, and we began to expand, look for people, assemble a team, learn everything.
What product does Staply do now?
Now Staply has three products - Octaplan commercial offers editor, Emny is one of VK's job search services. And the main product is “Mobile Enterprise”. All three makes a team of thirty people.
“Mobile Enterprise” is a service for small and medium businesses that includes a whole set of tools: chat for employees, call tracking, call analytics, a task setting system, a CRM system, a notebook, advertising analytics, and much more.
“The use case is quite simple,” says Maxim. “A business owner places numbers in advertisements — in the newspaper, on the radio, on television. He has a separate channel for each number, calls are made for each one. The employee can make out applications there and continues to work with the client in the same place.
He can set the task for his team, for example, call the client back, sign the contract, lead the client through the sales funnel, change his statuses on the kanban board.
For this client, employees can communicate in groups, in chat rooms, create discussions. In chat rooms there is a mini-notebook for storing information common to the whole team of notes. ”
As Maxim says, the main feature of the service is that it is simple, nothing needs to be set up, and everything is already out of the box.
- How to deal with the fact that everyone uses Slak?
- This is a completely different niche. Though we are developing something similar, but we have never competed with them, we have not set ourselves such a goal.
- Slack is a thing for those who prefer any kind of integration, love to tweak something. I'm not just talking about the IT community, I think it is used a lot where. And “Mobile Enterprise” is a product for those who do not like to tune, do not know how or do not want.
First, it is a small and medium business in the regions. People want everything to work out of the box right away, as it should
- And what do you use yourself, what do you communicate with?
- In the fact that we are developing - in the "Mobile Enterprise". We use every day to understand where the problems are, where to improve. Well, Skype for group calls is an integral part. If he had only been simpler ...
- I read that you tried to launch an instant messenger first in America, but it didn’t. Why?
- When everything started, we tried to work for the whole world. Localization took a lot of power. The product is constantly changing, you need to maintain two types of texts, translate. In that market, we did not have full-scale work. Progressing is very simple - articles. Hacker News was probably the main source of traffic.
IT users are first testers. But there were no exits on business. And it didn’t work out, probably because the focus has shifted a lot towards Russia. It became clear that it was also interesting here, and a lot of things could be done - to give people, who still use Excel or even notebooks, a simple service.
Remote work on personal responsibility
- How did it happen that you were distributed remotely?
- Everyone who started this business lived in St. Petersburg. Goals to do the office has never been. But also necessarily remotely - too. I just wanted to put together a good team. A lot of good people in terms of programming live in Yekaterinburg, Novosibirsk, Kazan. So formed a completely remote team.
Initially, we set ourselves the task to avoid micromanagement and control as much as possible. Microcontrol can kill the organic environment in a company. When everyone wakes up at nine, they sit in the office, distribute tasks, start doing them, leave, cannot leave somewhere at will, transfer work for later. Therefore, we try to avoid control, and so far we succeed.
- It seems to me that for many companies this sounds like a nightmare - to work without control, and without an office.
- We do not even have managers and timlidov. If there are no burning things, then a person can simply take, go somewhere to rest. No problem if it is predictable. A person can work from where it is convenient.
But for some it is also difficult. When there is an office, they organize everything for you, all your schedule and work. And here you have to do it yourself. Do not recycle yourself, work yourself when necessary. This is a big responsibility that falls on each person. No one organizes your life for you.
- How do you cope?
- When there is no pressure from above, from below and from the side, responsibility for their promises, deeds and words comes to the fore. Now, within the framework of the systems of setting tasks, all kinds of KPIs, personal responsibility is pushed into the background.
We all trust each other and know that this man - if he said, he will do it. If he does not have time, then he will say that he does not have time.
- And if he didn't?
- That is considered individually. There is no control, but there is a moderation process. Observation, making structural decisions. We have only thirty people. Probably, with such a team can still be mastered.
We have always tried not to grow as much as possible. There were cases when people on projects became more, but then everything was blurred.
- What cities have you distributed?
- Our designer lives in Italy. And then - Peter, Moscow, Yekaterinburg, Krasnoyarsk, Krasnodar, etc.
- Time zones do not interfere?
- Not. We do not require permanent presence at the workplace from nine to six. You just need to do the things that you promised to do, find points of contact with the team, agree on a convenient time for everyone.
We - the founders - also sit at home, meet in the city. And with the team - usually at conferences. Suppose we are sitting at a conference one day, listening, and the next day we are already discussing working things in co-working. In Moscow, probably, “Table” is the best option for such gatherings.
It happens that after working with a person for half a year, you do not even know what he looks like. It is always very funny to meet at a conference. You look like this: “Hi. It's you? We agreed to meet at the fountain! ”
- And how are your people divided into teams?
About fifty-six people. The one who began to develop the project is the center of knowledge - and around him the team who are interested in developing it at the moment. Projects within the company are open, everyone can see what is happening, help, or also enter into development.
Commands are fluid, but still everyone works only in the field of their product. When a developer works on three projects at once, this is very depressing and exhausting. From all sides of him want something. I saw people in other companies hanging out ten projects each, and they had a terrible burnout.
- You tell so, and it seems that you have complete freedom. Do what you want, when you want and how you want. No managers, no pressure. But when I read your page on HeadHunter, there was a completely different impression. Deadlines, roadmap, daily calls.
- The pressure is produced by itself. But it is different from customized development. There, the customer makes demands, you need to do to such a number, and he will pay for what he has done. This is not a strong motivation. Well, he will pay the company, and what is the developer's interest?
But when the team knows that a partner has an advertisement for the dates, it knows that there, too, the teams work and are waiting for us - there is an inner motivation, responsibility. You already work not for money and deadlines, but you are responsible for ensuring that others succeed too.
And there is an internal pressure that organizes people. The team itself begins to propose what to do, how to distribute and how to keep up.
- Does this not blur the responsibilities? The developer, instead of writing code, begins to correspond, to think about organizational issues. And in the end, nothing good will do.
- Such cases really happen. But there is another side. Sometimes a person wrote his own part, and helps to organize work on it inside. This is even cool - he fucking understands what is really needed there. After all, the managers are usually like: “Give me the status, I'll go and think.” And then the programmer himself is inside the process and knows where that can be done.
This is the question of what we really do not have timlidov. Timlid appears himself in terms of hard skills, and if there is still the ability to communicate, build relationships, he automatically becomes the leader.
- No managers, no leads. But then what are you doing as a technical director?
- Last time, mostly hired. Interviews take a lot of time, especially if you need to spend several rounds.
And usually - just a technical development moderation, observation. I can quickly make prototypes, I know that I can make them in a day, so I prototype features.
For work we use the Notion service, we completely conduct our knowledge base there, we paint the stages. Here I am engaged in the organization of these stages, I communicate with partners. In general, I try not to keep knowledge in myself. When you found out something and quickly made it into the knowledge base, everything becomes much easier, especially in a remote team.
- In the classical scheme, when the manager is waiting for the status, and the customer is the release - the developers can step over themselves and finish, even if they are dissatisfied with the quality. And in your conditions does not flourish endless perfectionism? When it is not enough quality, and throwing out urgently is not necessary?
- If the term can be postponed for the sake of quality, then we will better postpone. The variant with a deadline without tests and checks will still later lead to the opposite effect, to fatigue, to a great technical debt.
- At the same HeadHunter you have written that if the deadline is set, it is not necessary to move it.
- Well, this is an individual case every time. Deadline can be moved, the main thing about everything. I can reduce all our attempts to organize something to one thing - a person must be predictable.
If a team can predict a person’s behavior, they can trust it. If she knows that a person keeps her promises, and he really fulfills them - ok. If a person has a deadline, and he writes that he does not have time - it does not matter for what reasons - also okay. If he writes an hour before the release, then this is bad, this is absolute unpredictability. We discussed one thing - got another. The main thing is communication. Write, inform, say - you can always think of something.
- Is it true that everyone has tasks for everyone?
- A confusion does not start?
- Once a week there is a large phoned when we analyze and think that we should do good in a week. Accordingly, tasks are set within the team. We first discuss the roadmap of product development. The discussion is quite global, everyone participates in it.
For example, I say: "We need to make a module with SMS distribution." And everyone enters into a discussion - how we will do it, when, who will do it. As a result, a plan drawn up in the knowledge base is formed, and we are trying to keep it. We are not placing deadlines and deadlines. We have a common deadline, which we have chosen for ourselves.
That is, we agree and just try to meet our own plan.
- Is everyone responsible for everything?
- This often results in the fact that no one is responsible for anything.
- Of course, this can be. But no matter how a person does everything, he has his own specialization. Frontend developer responsible for frontend. What he did - for the answer.
And collective responsibility (although I don’t like this word at all) is more likely to say at the right moment: “Listen, but you don’t do something, you do extra work, it can be easier.” Probably, the responsibility is to help another not to do too much.
Therefore, it is difficult to search for people. With such remote work, good communication is very important for a person to be open. After all, if there is a rigid structure, a hierarchy, where a person can stand up like a cog as a specialist, but with absolutely no communication skills, then he can not communicate with anyone, get tasks and do his job well.
But in remote work it is not enough just to be a good specialist - you need to be able to find a contact, communicate.
Creative hiring of interesting people
- Where do you recruit such people?
- Basically, "My Circle", a little less than HeadHunter, channels in the Telegram - in general, wherever there are programmers. Is that LinkedIn not use.
We write, as we call it, "creative jobs." For example, they put there an encrypted text, told some stories. Or vacancies, where not the usual text, but dialogue. Why write “we need a developer” when you can write something unusual!
This is a way to try to find people who will be interested with us.
And it happens that good specialists are right next door. Once I found an Android developer when we were skiing at Rosa Khutor.
- Interesting people are great. But technical filtering they must pass?
- We tried to interview as quickly as possible, very roughly filter, and already on probation to watch how a person works. Suddenly someone just does not know how to pass an interview? This approach did not work.
A person joins in the work, and the understanding is already blurring - if he succeeds or fails. You won't notice it quickly. Therefore, now we are checking fundamental knowledge. We do not drive through frameworks, but ask the basics how everything works, how it works. Same HTTP protocol - it is one for all. Or how the indexes in the databases work, how the bases themselves are arranged - not just to make requests, but to understand what processes are taking place in this, to understand how the headers are arranged.
Many do not even know how banal encodings are arranged, why it is UTF-8, why it is eight.
- Do you think it is really necessary to know - why exactly “eight”?
- I think this is a fundamental understanding of the basics, it is really important. A person may be a good specialist, but he will face problems that require low-level knowledge.
For example, why this query is so slow. A person seems to be writing SQL queries well, but you need to dig around, understand what can be changed in the database structure itself, find why this particular index is so slow.
A person who did not know the fundamentals is immediately lost. It becomes very difficult for him. Of course, this is not such a coarse filter, that did not answer - everything at once. There is no check list.
If he doesn't know one thing, but he knows in other areas - ok.
- Give a test task?
- Again, in different ways. Probably, test tasks are an attempt to filter out people who are simply not interested. If a person shows himself well in an interview, we can say that a test is not necessary. And it happens at the interview did not appreciate.
Very often, 70 percent of all responses with throwing a repository on Github are just some kind of a formal reply, because there is a void inside the repository, self-written projects of five years ago and that's all. Therefore, a test is needed to see how a person writes code, how he designs it, as documented.
Our test task, especially if it is on the backend, is quite common - to describe a simple Rest API with a call to an external service and to document it. No logical complex calculations - the main thing is to show how you can build code.
Then a maximum of three days, and give an answer. And during the trial period we are trying to understand whether everything is really good, whether the man has outwitted us.
- And outwitted?
- Yes of course. There were cases when a person imitated activities very well. Constantly wrote: “I’ll finish it now, I’ll fill it up, now now, everything will be.” We waited, asked: “Well, will you do it?” And he: “yes, yes, now.” And I had to part.
Going from Ruby to Go
- Tell me, what technologies do you use?
- Initially, we had Ruby on Rails, on which I developed something. The minimum set of additional applied things, simple MySQL repositories - everything is trite and standard.
Over time, we started to go in the direction of Go. I perceive it as a decision of the whole community, natural migration. Many good specialists began to teach Go, many companies saw this, and began to open vacancies, began to transfer their services to Go.
Everything grew into a snowball, and we tried not to miss the moment. Now the Ruby community is leaving - who is in Elixir, who is in Go. Therefore, we have two languages.
- Why do you think everyone chooses Go?
- I also asked this question to many people. From the subjective - people liked C, and Go is such a C-like language. From the objective reasons - because Go does not allow to write very difficult. Plus, it is very fast - it is a good saving of resources, server power.
- When I ask my friend what he doesn’t like Go for, he simply says “There are no generics there,” and then refuses to speak.
* offscreen laughter *
- Generics should appear, everyone is waiting for them. But for now we seem to be doing our own. I think many do without them. What is not, is not.
But I don’t know any analogues of Go. Elixir? Good Erlang based technology. But it develops more like an add-on over Erlang, it is still preserved some verbosity, attempts to correct the old syntax.
And in Go, the syntax is simple and straightforward.
Everything is standard in the frontend - React with all its technologies. Tried another Vue, discuss TypeScript.
Work with Beeline and state corporations
- It’s written on your site that Staply is owned by Primavera. At the same time, Staply works with Beeline. So how is everything going with you?
- Everything is very simple - we are partners with Beeline. Everyone does what he is strong at. Beeline is a telephony, automatic telephone exchange, all infrastructure. And we are the workspace, the client part of the service.
In fact, telecom is very difficult, it is a very large structure. Implementing a new feature in a corporation is always difficult. On the one hand - the complexity of the development, on the other hand - the difficulty in integrating into a large-scale system, where there is billing, security. Here we try to do everything together. But, of course, everyone is responsible for his side.
“Isn't it hard for you to dock with them?”
- Not really. We are much faster and more mobile. They work in the long term - we are dynamic and can adapt to their deadlines.
- There is no such thing that a manager comes from Beeline and “asks for status”?
- Of course it happens, this is normal. It is necessary to understand how to move on.
- I read what you tried to do together with the GosMessanger.
- Yes, it was. But, unfortunately, the Institute for Internet Development, which started and supervised the issue on the Gosmanager, suspended the project.
Would love to come back. Working with large companies is very interesting.
- And there is no fear that a bias in the public sector will spoil your brand?
- While not spoiled. Why the public sector is so poorly perceived - probably, there is a completely different development underway. Everything looks monstrously difficult. But making a good product - even for the public sector - is still nice, because there is no goal to sell yourself as much as possible.
To sell, you need to wind and complicate features for the sake of features. And government agencies need a simple service. They are used to constantly selling a billion complex functions to them, but they understand that a simple solution can be more efficient.
This does not mean that there should be a minimum of features. Just have to close the main scripts.
The most difficult thing in this development is a large number of users within one team — not within the service, where there may be millions — in exactly one company. Organizing the work of 3,000 people is the most difficult. Therefore, you need to seriously do this.
Now the project is waiting for its time. One day we will do it.
- And there is no moral traction? For example, to go on import substitution is not very honest.
- It depends on how to use it. If done purely for the sake of a tick and implemented in a terrible quality, then, of course, it is mean. And try to do a really good thing and take advantage of a certain turning point, while actually improving people's life and work - then everything will happen by itself. Customers will see that you really are more comfortable and cheaper.
There may be no acceleration due to external conditions, there may be nothing. But there must be a good product that solves the real problem.