“It Tears Me Up When I Cannot Write Code” - Interview with Maxim Shafirov, CEO of JetBrains



    In the New Year's issue of “No Slides” - Maxim shafirov Shafirov , CEO of JetBrains.

    Here's what we talked with Maxim:

    • Is the Russian market important for JetBrains?
    • Why doesn't Maxim stop writing code?
    • How much does dogfood help and what are its limitations?
    • Why does a company rarely close products?
    • How did Kotlin appear, and how does the company see its prospects?
    • Why was the company not sold despite generous offers?
    • How did the PMM post appear in JetBrains?
    • How do JetBrains compete and collaborate with Microsoft at the same time?




    As usual, under the cut - full text transcript of the conversation.

    About work in the Russian market


    - I'll start with a quote from an interview with RBC that you gave this summer. By the way, the article was called very interesting: "How to build a global business on empathy."

    - As you, of course, understand, it was not me who invented the name. The main thing for a journalist is to come up with a name ...

    - Well, actually, this is pretty close to what they say about you: you yourself are the customaries of your own products, and empathy is probably the right word. I liked the headline. A quote like that. The journalist makes an introductory statement that the Russian market is peripheral for JetBrains, and you say the following: “Now the situation has changed a bit - we have opened a Russian sales office so that domestic buyers can not send money to the Czech Republic, as happened before, but pay domestically. So now I am signing all these papers. And now, judging by the volume of securities, things are going well on the Russian market - there are orders, there are more of them. ”

    Every time I talk at events like JavaOne with the guys who are involved in product development, they say the same thing: "Russia is not a market for us." Because there are few sales, people are not used to paying for software, and a number of other well-known reasons.

    Is JetBrains Russia a Market or Not a Market?


    - Well, as much as the Russian software market is part of the world. Everyone knows that the largest software market is the States (except for China, where the specific situation is now). Then comes Europe, then everyone else. Russia takes about one to two percent. Well, these 1-2% in our sales structure appear in the same way. Is it a market or not a market? Yes, the market, and good.

    - Does the fact that most of your developers are located in Russia and the company are rooted in sales, marketing, somehow influence [you]?

    - No effect.

    - Despite the fact that there are channels like Habr, and many people in the party, do everyone know everyone?

    - Let's just say that I don’t know a way to correctly measure this influence, but it seems to me that it is not really felt. We are pleased that they know us, this helps us as an HR brand to hire good people, because they know what they will do: what they themselves use in their work every day. This is good. And from the point of view of money - I do not know.

    - But still, is the market growing? Hand is not tired of paper sign?

    - I'm tired. We are trying to introduce some kind of system (it turns out that Russian manufacturers also do such), where you can sign documents electronically.

    - Are there any stories with integrators, people who sell it? Here Microsoft in Russia is sold through partners.

    - Yes, of course, there is, but we do not monitor at all to whom they sell, we do not participate in working with end customers. Without this, we would not have any corporate sales in Russia at all, because for many companies it is difficult to justify the transfer of money abroad technically.

    - Yes, there is currency control, VAT, the whole story ...

    - But this is not a purely Russian history. Such resellers, in order to raise pure money, are in many countries of the world.

    - Will you specifically do something with Russia, or do you perceive the market as it is?

    “He's good, we like it.” Why do something special with him? I think that Russian food companies come to us one way or another, we know them, you know them. You can name the names, but this will not tell you anything extra. There is such a special sector as state-owned companies or just state-owned structures, so it would be possible to work with them on purpose, but we had an incident here and now they can’t buy our software!

    - So you are not a Russian company for them?

    - For them, we are not a Russian company, because intellectual property belongs to a Czech company. Our business is so organized that the Czech company orders the development of the Russian one, the Russian one makes the order for money, the intellectual property remains on the balance sheet of the Czech one. When you buy something, you buy it from a Czech company. And [for sales to state-owned companies] you need to be in a special registry. And if in this registry there is at least something that vaguely resembles a competitor by name or category, then you cannot buy a foreign product, you must buy a Russian one.

    “So there is no one!”

    - Actually not, but if you read the registry - that is.

    - There is IBM with Eclipse, there is Oracle with NetBeans - and they are all also foreign.

    - You list real competitive alternatives, but there are paper competitive alternatives.

    - This is pretty funny. That is, is it all connected with import substitution, with such things?

    “Well, this doesn’t really sadden us, because from the point of view of money, they were not there. We are saddened that users who would like to buy something from us cannot do this, write to us “let's get you on this list, but Kaspersky has entered somehow”. And we cannot help them. It's a shame.

    About combining development and management


    - You have another line of server products.

    - Yes.

    - Quite large, and if I understand correctly, when you had two CEOs, Oleg Stepanov was more concerned with them. In connection with what did you have such a separation?

    - Well, it just worked out functionally. Not that we shared the areas of responsibility, but I was engaged in sales infrastructure at that moment and was very busy with it, and Oleg was engaged in something else.

    - And what is a sales infrastructure?

    - This is a system in which all licenses are recorded, in which cards, reminders, payments ...

    - Why didn’t you make a ready-made decision? Surely a lot of such solutions are on the market.

    - All decisions on the market drive you into some kind of canvas. We have historically developed so that our idea of ​​software licensing is non-standard. In addition, when it occurred to us that we should clean up, we already had quite a few clients, so we could not afford to throw out the story and start from scratch. Probably, we could order it to someone. We even looked at some variants of ERP-systems like SAP and NetSuite - and this is scary, it is scary to invest there.

    In some departments, in particular in Prague, we standardized NetSuite, because there was no corny in-house accounting there, it was outsourced. And it was an extremely painful process, so it's good that we did not transfer the customer service system to NetSuite.

    - You have an important advantage: you are the people who develop software!

    - Yes.

    - Do you still do the development yourself?

    - Yes.

    - Tell me, doesn’t it tear you apart from this when you have “code to write” and “answer for the company”?

    “It breaks me when I can't write code.” It may sound arrogant or trite, but if I did not write a single line of code in a day, I feel very bad, I feel some dissatisfaction. Despite the fact that I was solving terribly important questions, somewhere I was helping someone with something or had some kind of conversations, nevertheless it is important for me to write something in order for something to work.

    - And you thought in the key “for business it is important that I pay more attention to business, and someone else will write the code for me, we have a lot of smart guys”?

    - Yes, I thought. And then he came up with this otmaz with empathyand I felt very good! I need to understand how a business works, why it works, for whom it works. And now I understand him from both sides.

    About Dog Food


    - It's great to start a story on empathy, on dog food . But at some point you are clearing all the pain from the product, and you are already fine.

    If you ask the IDEA user from the outside what has changed in IDEA over the past five years, they will tell you - well, the Darcula theme has appeared, well, lambdas have begun to support. And as an IDEA user, I also don’t feel that it is changing. You are probably doing a great job - both performance and UI, and everything, but the user does not feel it. This is how you solve this dichotomy for yourself?


    - First of all, we must admit that what “the user does not see” is the effect of perception, this is the user's experience. Because the amount of functionality that we do depends, no matter how trivial it may sound, on the amount of power that we put there. If at the beginning 3 people worked on IDEA for us, then 3 person-year features appeared in a year, and when 90 people work, 90 person-year features appear. Accumulation occurs, and each subsequent release differs from the previous one not by 10 times, then not 2 times, not one and a half, but, say, by 5%. And in terms of volume these 5% are even more changes than happened before.

    At each specific point in time, each specific person understands how to improve the product. The fact that this does not always add up to a holistic picture that can be presented to users from a marketing point of view is, well, God bless him. We all know that a product is getting better. And in the end, we see that users agree with us: they carry money. Would not agree - would not bear.

    - There is always a gap between how the engineer perceives the product, who makes it, and how users perceive it. You tried to highlight this difference, and if you did, then what dug interesting?

    - We are constantly trying, and this is a painful process. I must admit that dogfood is somewhat one-sided. As for core features, working with the language, some generic stories, refactoring, light bulbs and inspections - everything is clear with them. But on the other hand, all the people who are currently working on the IDEA project are writing the IDEA project. It started 15 years ago, it is large, specific, it has a certain structure of modules, and it does not need to start from scratch. And when some new developer comes to us, puts the product ... At the beginning of his work, he realizes that you can make so many improvements! For example, when I myself left the IDEA project and tried to do something from the side, my hair stood on end. It turns out that everything is not as chocolate as it seemed to me!

    Another thing is that this story needs to be constantly reported to the team. JetBrains does not consist of one IDEA, it consists of people who develop other products. And the IDEA team receives a flow of information not only from users, but also from us, from the “other JetBrains”. And there are shifts, it seems to me.

    - I have long had the thesis that dogfooding is a trap that is easy to fall into. It helps a lot in the early stages, but begins to interfere later. But here you have been using dogfood for many years and at the same time grow wildly. So my thesis is wrong? Do you see any problem in the fact that you have solid dogfood? If you see, how do you deal with this?

    How do you, for example, get opinions about your products from people outside? I know that you have a public bug tracker, but you and I understand how many people write in Java, and how many of them go to the IDEA bug tracker. Obviously, this is a very different number of people.


    - The number is different, but the sample is statistically, I think, quite representative.

    - That is, many users come to your bugtracker?

    - Many. These are hundreds of thousands of people, probably.

    - You wrote a system related to sales - this system was responsible only for sales, or some marketing things, too, for tracking channels, for example?

    - No, here we used Marketo, tried to integrate with it. We tried to integrate with everything without getting into it.

    - And how are you feeling?

    - Not really. If I were making a product for marketing, I probably would have done something more convenient.

    - We (JUG.ru Group) are also trying to track the channels - who found out about us, who recommended us to whom, and so on. This is a very difficult story for us, but it seems to me that it is very important. Have you actively explored this issue?

    - Not.

    - You did not have such a need?

    - Not. The fact is that if the client company is small, then it really is from one person very quickly, virally, gets on our products. Or not. This is "work from below." And if the company is large, then work from above is also necessary.. Not just trying to sell to someone - CTO or senior management - but it takes sales work just to make communication possible. Some discounts, personal relationships, help with testing, research. Because people in large corporations like banks are waiting for this, they just need it. Otherwise, you look like some kind of small vendor who is not responsible for what he does.

    About the path in the company


    - Have you been at JetBrains for a very long time?

    - October 1 turned 15 years old.

    - This is from the very beginning of the existence of the company?

    - Almost from the beginning. When I arrived, IDEA was version 2.5.

    - What kind of employee were you?

    - Tenth.

    - You had some stages: you were an engineer, then a product or project manager ...

    - Yes, but at the same time I was always an engineer.

    - And now you are CEO. And can you single out any stages for the company that somehow changed it?

    - In its context?

    - Inside - once, in the context of the market - two.

    - Now, I’ll remember all 15 years ... When I arrived, the company had one product - IDEA. And I personally started by doing inspections at IDEA, and I started with the simplest, of course - State Flow analysis, which suggests: “This area will always truefly here NullPointerException.” The sarcasm is that this is still the most advanced technology: we wrote 1,500 inspections, but for some reason it turned out to be the most powerful.

    “Well, maybe because NullPointerExceptionit's the Billion Dollar Problem?”

    - No, it was just the coolest thing to write.

    “I mean, why so far ...”

    - Why is it useful? Because it is fundamental. All the rest are like templates: “don’t write like that, write like that”, and there’s also an explanatory note why it’s so right, and there isn’t any. And this inspection is trying to understand the structure and semantics of the code, which may not be directly reflected in the code itself, but you can get it out of there. I remember, for the first six months, my colleagues called me with the words “here you have complete crap”, “this cannot be”, and I came and explained: “look here, here this condition is like that, here it’s assigned to it, and then this one will come from here, and then you will have ... ”-“ a, yes, really! ”. For the first six months, no one believed me, but then gradually they stopped coming to me.

    - So you wrote, in fact, a piece of the compiler?

    - Yes, and even a little more. It really compiled into some pseudo-code, and inside there is a scarlet interpreter a la a virtual machine that tries to parse all nonequivalent memory states according to the control flow graph, and then, accordingly, look at them for compatibility and highlight some conditions that can be interpreted as bugs.

    Then Sergey Dmitriev, the founder, who wrote a lot of things, wrote the first version of the editor.

    - That is, initially it was not an editor, but some kind of separate inspection? How did it work?

    - No, no, you're confused. In addition to inspections, I started supporting the editor.

    - Are you specific?

    - Yes, specifically me. I fixed a million problems there, stayed with the profiler for the first time in my life, on the Pentium III, I specifically asked myself a machine that ...

    - ... didn't slow down?

    - No, on the contrary, which slowed down! Because users complained to us: “You cannot log and you cannot print the code!”, But I couldn’t see it on Pentium 4.

    - This is also dogfood, only in a different context.

    - Launched the first profiler in his life, and he SCRIPPED. It was like this: you press a key to check the speed of how it is printed, and in ten minutes you could go up and get a trace of what was happening at that time, and then somehow try to optimize it.

    He was engaged in folding, performance in the editor, fixed a bunch of bugs, made a bunch of features. And then Sergey Dmitriev (founder and president of JetBrains - approx. Author) came and said: “Come on, you will be in charge of IDEA”. Here in this statement of the question. I say: "What are you, ofigeli, or what?" ... Well then, I say: "How so?"

    Then for three days I walked around with “How so?” In my head, and decided that I should try. And I tried it. Gathered a bunch of cones. When they say that poor managers are obtained from programmers, this, of course, is true in a certain sense. All the same cones that some manager has already collected somewhere, you have to collect again.



    About how some projects close


    Okay, I’m talking about the company, right? Well, by then we already had a Fabrique project , which turned out to be closed. It was the idea "let's make such a mega-tool for writing web applications, there will be some kind of server engine so that the UI can be drawn in the picture, we will support AJAX, WYSIWYG".

    - Was it the middle of the two thousandth?

    - Yes, the word AJAX has just begun to appear, has not yet entered the mainstream, it was probably the year 2004. So, the Fabrique project was closed ten days before its first release.

    - Didn't fly?

    - The awareness has come that it will not fly.

    - And how are decisions to close taken at all? You put a lot of effort into this project? And this is probably not the only project that you have closed?

    - We didn’t close very much. Hand on heart - probably could have closed more. But it’s easy to close a project until you roll it out to users. Because after you rolled it out, even if you have no direct obligations (such as those that paid you money or are counting on bug fixes, escorts), there is still a comment. Closing a launch project negatively affects how people perceive your company.

    Google can probably afford to close projects right and left simply because it can. How much noise was there about closing the reader? It was used by millions of people! Google realized that it cannot afford to accompany such a project, there is simply no one inside to do this, no one wants to. They can even close something that they themselves had been trumpeting with fanfare before: “Wave is a new way of communication, an e-mail killer, now you will all write in Wave” ... You try it - it’s really beautiful. But it didn’t. Took and closed.

    This is not so with us. We closed Fabrique, we closed OmniaMea - it was such an information aggregator written in .NET: email reader, newsgroup, RSS feeds, tracking content of sites ... If you need to track any large amount of information, there is a box that is convenient to do. And there was a bunch of smart features. As a business, this did not fly, and decided to close. And that's almost all of the product closures.

    - It turns out that as soon as you sold your product to someone, for you it immediately went down. There is something that you are growing, but there is something that you can’t refuse, because this something has a custom. Are there any projects that are pulling you down now?

    - I would not want to comment on this. Let's just say: there are projects that bring less money than we spend on them.

    - Clear. A portfolio is needed to diversify. Was there a story behind the launch of ReSharper in an attempt to diversify your business?

    - Yes, of course, absolutely.

    “What scared you then?” IBM and Eclipse? Tell me a little about it, what did you feel then?

    - And then I was an engineer. This is pretty funny for me, now in retrospect I understand that when Sergey Dmitriev said “let’s you manage IDEA”, he really meant that IDEA would be over because Eclipse would kill her now. And it does not matter who will further develop this project, but it is necessary that the project stay afloat for some time ...

    - Because there are customaries ...

    - Yes. Well, maybe we’ll still have some fun ...

    - How interesting.

    - Well, maybe he doesn’t admit it now, but somehow I see it now. Well, there really was such a situation: everyone really either closed or rewrote their IDEs based on Eclipse - Borland Together, for example.

    And returning to your question that “we are right in everything and dogfood is obviously a good way, because we make good money” - competitors still help us, and this is also quite significant.

    - What do you mean?

    “Well, I’m observing that Eclipse is not doing very well right now.”

    - So you learn from their mistakes, or simply they dig their own grave?

    - Dig, and frankly: their users complain about the quality. They complained before, but there was some kind of dynamics of development. And now there are sites where you can see how many commits are made in Eclipse (IDEA Community and Eclipse are open source). And we, for example, have two hundred commits per day, and they have twenty commits per month in the same code base functionality.

    - Do you feel that they are giving up?

    - They do not give up, of course, they just do not have funding. This is a nonprofit organization funded by various large corporations.

    - This is an interesting story, because people are accustomed to talk about open source about some non-commercial things, but we understand that Java is sponsored by Oracl, Eclipse is sponsored by IBM, and so on - that is, the developers of these projects do not work is free.

    - There are stories when people work for free, but this cannot go on forever.

    - It's not about great products. Three people do OpenSSL for free - I’m ready to believe it. But, for example, employees of the largest vendors such as Red Hat and Intel are contributing to Linux.

    Why did I talk about this: I really like that you sell the product for money. In Russia, it’s somehow not customary to buy. And maybe not only in Russia. In general, this story with open source and free software is a little scary, because these products are used by programmers who receive money for their work. But their companies are often not ready to pay for these products. Is this a purely Russian phenomenon, or is it also observed in the rest of the world?


    - On the one hand, it is believed in the world that it’s good to be Open Source and bad to be proprietary. On the other hand, there is such a thing in Russia that the whole Software Development is some quixotic. You need to be a knight in white armor, do good things for free, share it with the world. And, in principle, earning a lot of money in Russia has a certain shameful flair. The oligarchs, "if you have a good car, then you stole" ... Unfortunately, there is such a train. It will pass, of course.

    - But money helps to do interesting things - for example, create a new programming language.

    - Not only. First of all, money helps you do what you do.. I am absolutely sure that users of our products are interested in paying us money. Because this money will be used to make their tools better.

    About Kotlin


    - I want to talk about Kotlin. I have known Andrei Breslav for a very long time, he taught me at school, then at the institute - and I am extremely grateful to him for this. And at some point, Andrei returned to Peter and said, “I am now making Kotlin in JetBrains.” To whom and how did the idea come up with the idea of ​​creating your own programming language?

    - Let me tell the whole story. Sergei Dmitriev came and says: “You know, it seems to me that we need to do something interesting. IDE, tuning - this is all clear, but what would be done to bring the company to a new level? ”And Dima yole Zhemerov blurted out:“ Let's do the programming language! ”

    And Dmitriev came to me: “Here Zhemerov says, let's do the programming language.” And I reply: “Lord, what the hell? Where are the JetBrains, and where is the language? Language makes sense only if it is popular. Here the IDE can capture 5% of the market and feel great on it. But language can’t do that, it makes sense only if it is mainstream. ” I still think so.

    - Well, 5% for the language is very good. According to the TIOBE index, in the region of 5%, the first ten ends (in fact, the top three - approx. Author).

    - Well, 5% - I turned it down. And at some point it seemed to me, "Well, no, this is impossible simply because it is impossible." And then I thought: here we support languages ​​20 or 30, I’ve even lost count. All sorts of different. And we know how people write on them. We know where the rake is spread in each language, we know all their pros and cons - not only from the point of view of some formal features and checkboxes, but from the point of view of the practical use of all these languages.

    - That is, you have accumulated expertise.

    - Yes. And the understanding came that, probably, JetBrains is the most technologically savvy company in order to create a programming language that will really be used in the industry. Then we had all these standard conversations, “why not Groovy?”, “Why not Scala?”, “Why not something else?” And we began to think what language it would be. We were absolutely sure that we needed static typing, because static typing is tuning, and tuning is an IDE, and an IDE is money, and in general it is more convenient and faster. We put together a list of features, and then Andrei Ivanov brought Breslav, and he began to ask us.

    And that was a Jam Session. I remember him perfectly from the first to the last minute. He began to ask questions, I answered them - why not Scala, why not Groovy, all the same. He was rather skeptical, but nonetheless open to dialogue.

    And by the end of the conversation, probably in four hours, we already had a clear understanding that Andrei was working for us, and he was doing this and that. Then he went to Microsoft Research for a year, did some research there, then he returned, and he and I spent about a year and a half in the room and simply designed a new language.

    - That is, at first you both did it? Four hands, two heads?

    “Well, that's too immodest.” Other people participated, of course. Any ideas were processed and tested in the corridor. A lot of guys (the same Dima Zhemerov, the same Ilya Ryzhenkov, Volodya Reshetnikov, who is now at Microsoft), expressed a lot of ideas, commented. Or Roma Elizarov - he came to us because I called: “Rum, I will tell JetBrains how we will make the programming language, come.”

    - What year was it?

    - 2011th. Maybe 2012. Roma came, listened, said: "Dudes, everything is cool ... But Nullability." And we are: “Well, it's hard: generics, interoperability with Java” ... He: “Nullability, dudes.” And Nullability appeared.

    - This is very interesting, because Roma Elizarov was also in No Slides in the winter, and then he was still an employee of Devexperts, and now he is an employee of JetBrains and suddenly he makes Kotlin Native, which we will talk about. That is, even then, at that stage, was a person who significantly influenced the language?

    - Yes, it was Roma who specifically proposed Nullability. And this is now, probably, one of the most important features in Kotlin - this is an understandable thing, it is convenient to explain to the user. But Roma gave an idea, and we really had to puff hard to make its implementation in the language convenient, because Nullability in a typical system ... If you put it on Java, it will be impossible to use it. We need some other mechanisms in the language: question marks, periods ...

    - I saw, Andrei told me: one exclamation mark, two exclamation marks, a question mark ...

    - All this appeared rather iteratively.

    - When you launched this, you had a forecast “then we will release the language”?

    - Yes. We had a forecast that we will release the language in a year and a half. Because "what to do there - you just need to write a compiler."

    - And the release took place, as I understand it, this spring?

    - About five years after the date when we said that it would be in a year and a half.

    - Five years: first two, then five, now almost thirty or even more, make a new programming language. This is a huge amount of strength, nerves and, of course, money. That is, most likely, every year the company spends millions of dollars on this project. How do you rate this investment from a business perspective?

    - As a strategic one.

    - So you are making a serious bet on Kotlin?

    - Yes, absolutely. When Kotlin becomes mainstream, JetBrains will have a completely different meaning for the Software Engineering market it operates on. That is, they will say about us that we are not some guys who make convenient, but replaceable tools at any moment, but as about those who make some root feature of the ecosystem on which everything is built. This is a different weight, a different information flow, and the money, I think, is also different.

    - At the time of the interview in RBC, you called the annual turnover, in my opinion, at 147 million dollars. This is a lot of money. Do you invest at all in other projects besides Kotlin? You have already eaten all the languages, only the IDE for Go, probably not. (The interview was taken before the announcement of Gogland - approx. Auth.)

    - Will be!

    - Well, now everyone has learned what will happen. There is Go language, there are JetBrains ...

    - “You are attractive, I’ll be damn attractive, which is a waste of time” ...

    About server tools


    - With this story, I understand everything. But what's next? Does your current volume allow you to invest in various research projects, maybe in other companies?

    - Look. From the point of view of JetBrains, we have determined for ourselves for the next few years that JetBrains is still engaged in Software Development. Still, our client is a programmer or a team of programmers, and we will create a product that focuses on this group. Of course, this is not only an IDE.

    In particular, you talked about server tools - in my opinion, now we do not have a complete picture in them. We have tools that cover some specific features, but there are not enough other specific features. This is some piece cut, applique from a common blanket. And we would like to make a tool that is for the team as integrated as the IDE is for the programmer.

    And the joke is that when we started, for example, TeamCity, our first server product, we had exactly such an idea. We said: “Well, guys, we made an IDE, we can say that it is ready — in principle, already in 2005, nothing more was needed from the IDE.

    Incremental improvements, of course, have a large cumulative effect, but, nevertheless, they are incremental improvements. And so we think: okay, let's do the Integrated Team Environment, but we need to start somewhere, with a specific story. Then for Continuous Integration, there was CruiseControl - this is a system that is stored on one machine, which must be configured with an xml-th file. And if, for example, you have two projects, you need two cars, if the build takes a long time, then again you need two cars, you need to configure them separately, no integrated history, in general, thrash and burn.

    “But at that time, Kosuke Kawaguchi was already working on Hudson, who is now Jenkins.”

    - Then we did not know about Hudson, we knew only about CruiseControl, it was the end of 2004. So, what is the Integrated Team Environment, it was still unclear, and we decided to do a clear concrete thing: Continuous Integration. In my opinion, they did it in a year or a year and a half, released, users came, said “this and this is not enough”, we did this and that, rolled it out to users, they said “we’re greased here, tinted here, here’s more integrate this version control system ”, and we, as they say, got carried away.

    This process resembles the following: a person begins to dig a hole under a tree, and then accidentally digs a trench, and nothing is visible on either side. The only thing he can do is deepen this trench. And so we got YouTrack, just got UpSource (code review tool), and now we are once again trying to rethink "what is a command tool in general, how should it be arranged."

    - With TeamCity, I understand roughly, after all, software assembly is an industry-specific area. But, let's say, some YouTrack can be used in a non-IT company. Let's say I'm doing conferences at the JUG.ru Group, we use JIRA for work. We use it as a designer of business processes, we use its API for integration with various external forms, and this is the coolest thing! State machine, actually. Have you thought about entering the same YouTrack into some non-IT, non-software markets?

    - It is also used by non-IT professionals. There are people who make sales systems on YouTrack. They have some kind of form in which the client fills in some fields, as a result it appears in YouTrack issue, the workflow process for processing this order is configured there, and that’s it.

    - That is, too, like a classic state machine.

    - At the same time, since everything is customizable and there you can draw sophisticated workflows on MPS, yes. But all this is an initiative of specific users, and YouTrack came to these companies there through some developers. In order to make a product focused on the business as a whole, you need to learn to enter this business from some sides, which we do not really know about. And maybe this would be useful, but, on the other hand, we have our favorite user base, about which we know a lot, that we can do many times more for it. And we won’t have to come up with a story about what JetBrains is not at the moment.

    About competition with Microsoft


    - We touched on the topic of Eclipse, IBM, and this, apparently, was the beginning of the two thousandth. Now you are launching with Rider.

    In general, it was very funny, because a year ago Seryoga Shkredov came to “Without Slides” , and on vjq the question “Will you do C # IDE?” Answered: “No, what are you!” And a week later the announcement came out that JetBrains was IDE does. It was fun!

    You are now actually entering the market against Microsoft. Rider is a competitor to Visual Studio, which will take away some market share from it. And this is slightly different from the situation with Java, because there was a separate vendor who made Java technology (at that time - SUN Microsystems), and there were separate vendors who made an IDE for it - IBM and you. There was a dignitary technology and two companies that made tuning for it.

    .NET is a technology that actually belongs to Microsoft, despite all their open source. They are your partners, your ReSharper runs on top of their Visual Studio, and so on. Having all this complicated background, launching a competing product on the market is scary, isn’t it scary? How do you see all this?


    - Look. Firstly, besides Sun Studio, NetBeans, there was also JBuilder and a bunch of other players. “Visual Studio rival” does not mean “Microsoft rival” at all, because Microsoft is big. Microsoft, as a company as a whole, is interested in making their platform as widely used as possible. For the platform, a healthy competitive environment in which there is a tuning infrastructure is a competitive advantage. With one foot we are their competitors, because we are eating away some money that Visual Studio will not receive, but with the other foot we are attracting new customers to them who will sit in Azure and write on .NET.

    “Very good what you said about Azure.” I constantly have conversations in the industry, and one person from Microsoft told me the following year: “For us, .NET is a legacy technology.” He said that bets are being made on some other things: on mobile, on Azure, on IoT. And, in principle, this is clearly visible by the marketing activities that they are currently doing.

    When you make a Rider, which is positioned as a C # IDE, do you consider that Microsoft has a slightly different direction and vision with both Azure and mobile things ...


    - Microsoft is big. Microsoft is not a person who can decide for himself that he will go west, not north. Microsoft can go in all directions at the same time, because there are 70,000 of them (in fact, more than 100,000 - approx. Author). If they develop Azure, this does not mean that they will not develop .NET.

    It is clear that they probably do not make the main bet on .NET now. It’s clear that the story of Microsoft’s mobile hasn’t taken off, and this seems to have become clear to Microsoft itself. Nevertheless, Enterprise-applications in all kinds of banking structures are written in large quantities on .NET. Banks may want, for example, to get off the Windows infrastructure on Linux because it is cheaper to operate. To do this, they will sit on Mono or .NET Core, hence the need for cross-platform development. There is Xamarin - also some cross-platform history.

    - Microsoft goes to the Linux Foundation .

    - And everyone goes everywhere. Here Google goes to the .NET Foundation.

    - It turns out that industry giants have interests in general everywhere?

    - Of course. This confirms what I am talking about. They should not bet on any one horse.

    About the attitude to money


    - Another interesting story is that you are a private company. Have you tried to buy?

    - Yes.

    - There were offers to buy, and they were somehow discussed. What did you feel in this situation, how did you make the decision, and due to what, until now, have remained a company without an IPO and not owned by another company?

    - Some kind of philosophism will go now. Look: in theory, business is done with the goal of making money.

    - The charter of any LLC says: "for the purpose of profit." Philosophizing philosophizing, and the charter of the company should have it!

    - Of course, it is written. But we at JetBrains have the feeling that making money is not a goal, but some means of doing interesting and useful things. The more money we make, the more interesting and useful things we can do.

    Periodically, a situation arises when what we have done is interesting to some big player. Because repeating this whole story is expensive, long, until no one has succeeded, and 15 years to wait for it to grow, or maybe not to grow ... In general, it’s cheaper to buy, no matter how much it costs. But why do we need this?

    “So you don’t need it?”

    - Here's the exit: imagine, you have been making a cool product for 15 years, and then they offer you a lot of money (well, you have so much, but they offer you very mucha lot of money), and you change the work of life for a bunch of money. What for?

    - This is an interesting approach. Now around we see a huge hysteria around startups, and recently there was even an angry post on this topic on the Medium . I really liked the idea from there that we live in a world in which there has somehow become a lot of “startup discourse”. The very approach of “doing something and selling it to someone for millions” is becoming almost dominant in the world. And against this background you look very ...

    - Alien.

    “Yes, the right word.” How do you manage to hold on?

    “What temptation?”

    - Well, Oracle comes to you, they offer a cutlet of money, 10 billion.

    “Well, you turned down, but ...”

    - Well, I don’t know the price, I say at random. Many people, especially the startup environment, are used to operating with the words “investment”, “price” and all these terrible abbreviations that were in the same post. It is very interesting that you do not consider this for yourself. You do not feel this pressure? I think this should create pressure. Should there be a goal beyond money?

    - Well, of course. A lot of money is corny hard to spend meaningfully. And if you are trying to make money purely for the sake of sports, then you must frankly admit to yourself that this is a sport. “So he earned two billion, and I’ve five. Who is cooler? I". Not.

    “You have grown a lot.” You grow, as I understand it, by tens of percent a year, if not faster ...

    - Oddly enough, we have linear growth: we employ about 50-70 people a year.

    - This is in terms of the number of people, and in terms of money, you obviously have an exhibitor. But are you not afraid that you will go to a plateau when, by convention, you have eaten all the Java programmers, and this all stops, and you need to do something? You do not have investor pressure “you have to grow, you need more money”, it is clear that a private company in this sense is a little easier - but do you yourself feel that the plateau is close? How far do you feel about him?

    - Is a plateau possible? Of course, maybe where to go. I think there is a reserve of five years.

    “Are you starting to think about what you will do next?”

    - Of course! Kotlin, for example. And an integrated environment for development teams. And we also have an initiative to invest in education.

    - Is this a story from Stepik.org?

    - This is a whole complex of stories.

    In your opinion, is the IT market itself growing? Is the number of Java programmers, .NET programmers, PHP programmers increasing every year?

    - The total number - yes, of course. It is believed that software will gobble up everything.

    - German Gref, for example, said a year ago at the Gaidar forum that Sberbank would be transformed from a bank into an IT company.

    - You have to understand that for a bank this is an extremely difficult transformation. I can not imagine how this will actually be implemented. But, nevertheless, it is necessary to give Gref all possible loans, that he generally thinks about it, that he sets such goals, it’s just great.

    About Who is Product Marketing Manager


    - You have a position called Product Marketing Manager (hereinafter - PMM). What kind of story is this, did you make it up yourself or did you take it from somewhere, and are you satisfied with what happened in the end?

    “Oh, I’ll immediately sign my own ignorance: I don’t know whether we stole or is this our notion.” But it turned out very cool. It was such a transformation. First we had a marketing department. After the programmers wrote some feature and made the release, it was necessary to talk with special people, to say “look, we have such features in the release, we think, write a blog post”. Then came a blog post, looking at which, I chose my entire limit of swear words, pulled out all the remaining hair on my head ... These posts were suitable for selling toothpaste, beer. Excellent terms ...

    - “Awesome”, “perfect”, “brilliant”, “excellent” ... I have run out of vocabulary!

    “Something like that.” Moreover, a person has a vocabulary of approximately such epithets, and he substitutes them one by one for another feature.

    “You cannot repeat the same word, you must alternate awesome and perfect!”

    - A person with an education who knows how to write texts understands what is impossible and what is possible. But programmers, our target audience, have a very serious bulshit filter: if you see a bulshit, a flag in the head fires. I can’t extract the semantics from a text that has a certain bulshit level. The text should be informative, and not beautifully and correctly written. It turned out that we need people who can write such texts.

    And then it turned out that they could not write such texts if they were not part of the team. If they do not understand the semantics of the words they write, if they just do the editing, then no genius can make a good non-bulshitic text. So we came to the conclusion that in our country a person just sits in a team, writes texts, communicates with users on a par with programmers and informs the world what is happening.

    Then it turned out that there was such a person in each product, and that they should communicate with each other so that JetBrains looked like not two or three handfuls of scattered dudes, each of whom makes his own product according to his own understanding, but as a harmonious common story. And now these PMMs, on the one hand, are in the product, and on the other, they are a common bunch that constantly communicates with each other. And besides PMMs, we are trying to apply this story in other areas, like DevOps, for example.

    - Returning to the story about dog food. Your PMMs grow out of developers, not marketers. The question arises about the need for marketing education for them, about understanding the functioning of markets, etc. But they are former engineers. How does one match the other?

    - Very piecewise. I can’t say that we are following all the trendy trends in marketing, that we have read all the smart books. Someone from PMM reads professional literature, someone tries to do self-education, someone works on a hunch, someone listens attentively to what his colleagues are saying, and someone, on the contrary, does not listen attentively, because his colleagues they say complete crap. Everyone is on his mind.

    In fact, PMMs come in a variety of ways. There are people who are not engineers who do not know how to write production code. But, in principle, they understand how this is done. Among them are combat engineers who did something, but who have more developed social functions.

    About hiring employees


    There are some key business functions: development, sales, marketing, HR. If it’s not a secret, which of all this is a headache for you? Or where do you see the greatest prospects?

    - The problems that I see, I'm trying to solve. But there are problems that I do not see. There are problems that inevitably need to grow simply because the company is growing - communications, maybe information exchange, standardization, some kind of policies, and so on.

    - According to the signs that are visible from the outside, you are more likely a startup, but in terms of financial indicators you are a serious business. How do you match it?

    - It is very easy to match, there is no conflict at all. Our organization is such that the team that makes the product is autonomous. In principle, she does not need anything from anyone. Certain service functions are needed: for the office to be warm, dry and comfortable, for the equipment to be in place, the infrastructure to work, for an established dialogue with HR, good new people to come. If these problems are resolved, the team will work on its own. She earns N money. Another exactly the same team will earn 2N money. So what?

    - HR is not just about hiring people. You have a business, and you probably ideally want to understand what kind of people are needed for the business to develop. “And here I need to close the hole.” And this is quite difficult, especially from the point of view of programming: to understand which programmer I need so that he pulls out a new product. Here, relatively speaking, Andrei Breslav - Language Architect. It’s not a fig at all a simple task - to find a language architect.

    “You understand that we did not enter the market, did not write a vacancy on HeadHunter:“ We need Language Architect to write a language. ” This is not done. Just met, and it turned out that a person can do this job. Before that, we did not know that we needed him. And so is the rest.

    We have another problem (I don’t know if this is a problem). We cannot hire people to leadership positions. That is, we thought a lot about it, but I still do not understand how to do it.

    - Such a person does not integrate into the company?

    - Most likely, it integrates, we just don’t know which way to approach this. Say, let us have a product in which a weak leader - purely theoretically, I do not mean anything. How? What, sort out? This is not a receptionist, about whom you can understand in an hour and a half of an interview what he is from the point of view of these functions.

    - The people who work for you have studied a lot of mathematics, studied programming, IT. And when a transformation occurs with a person and he becomes a leader, he needs completely different competencies. Are there traps here?

    - Usually, one who is already the leader of his de facto team becomes the leader de jure.

    - And you just officially fix it.

    - Yes. That is, this is a person who has authority among colleagues, to whom they listen, who is called to discuss something. Therefore, he usually has all the necessary skills in order to work on this product in this team.

    About Kotlin Native


    - Clear. Probably the last question is about Kotlin Native. For me, an important indicator of how seriously a company treats a product is what people work there. Now Nikolay Igotti and Roman Elizarov have appeared in Kotlin Native. The arrival of such powerful specialists is an indicator for me that you are making a serious bet on this area. You can tell about it - why Kotlin Native? Now this story (maybe not for the market, but for me specifically) looks louder and takes an even more serious position in my head than just Kotlin.

    - Because you, as they say, knew too much about another platform and how it is arranged. Look, the global story about Kotlin should be that Kotlin is written for everything and everything. The language, it seems to me, turned out to be good and developed in this direction. This gives rise to wonderful singular features, and we see evidence of this in the javascript world where Node.js. What is Node.js? Maybe they’ll throw me right now (although it’s difficult to do through the screen), but it’s done exactly so that you can write the same code on both the client and the server.

    - Well, not only. There is a second story, "I already know JavaScript, but now I urgently need to write server code."

    - It seems to me that this is a trap, because the language here is a very small part. The server is written differently than the client, simply because there is a different story, a different process logic.

    - I understand everything, but if I have a hammer in my hand, I can write in JavaScript, then everything else starts to seem like a nail to me.

    - Each of these factors leads a little different people to Node.js. The people you are talking about are a very public story. But very serious applications are written on Node! Just because some barrier between the client and the server disappears, the need to communicate in primitive JSON disappears. You can write high-level frameworks that synchronize data in real time, and so on and so forth.

    But in JavaScript. If instead of javascript there was a significantly better programming language and a significantly better runtime, then it would probably be cool.

    - Do I understand correctly that, relatively speaking, now the main competitor of Kotlin is JavaScript?

    - An interesting point of view. I do not know.

    - JS is now the fastest growing language in the industry, this can be seen in many ways.

    - Kotlin, such growth rates, of course, have not yet been dreamed of. In absolute terms - in relative terms, maybe I dream, I did not count. Well, yes, probably it can be considered so. And from here Kotlin Native naturally grows, because, besides browsers, there will be other devices. These are phones, this is IoT. In IoT, everything is very bad in terms of infrastructure, tuning ...

    - There from all points of view it is bad!

    - Therefore, if you start with a programming language with good tuning, which can serve logic on the server, then win-win, profit.

    - Oracle, for example, started talking about Internet of Things, it seems to me five years ago, I was just starting to work there, and then no one understood what it was. There was only the word "IoT" and there were giants with their own, different concepts and concepts. It seemed that two or three years would pass, and they would agree on something. Now I’ve got a little more understanding of what IoT is - a lot of small devices, Big Data in the backend, but there is still no full understanding. Everyone rushes about it, but no one sees it, does not feel it and, in fact, does not use it. And potentially everyone yells that this is our future. What do you think about this?

    - I have no idea.

    - So you do not look at this market?

    “We don’t have to look at him.” We know for sure that people will write programs. There is, of course, an option when people will, I don’t know, slander programs or take them directly from the brain, but so far, in the near future, people write programs in programming languages. And, it seems, there is no justification for the fact that these programming languages ​​must be dinosaur-like. That is, it is difficult for me to justify why I need to write in C, and not in a language that is closer to Kotlin.

    - That is, whatever it is - or the cloud, or IoT, or whatever - will JetBrains do the tools for this?

    - Yes. And as in the cartoon about Smesharikov, we will issue slippers. In the sense of an IDE to sell.


    Also popular now: