Ready-made solutions # 2. Alexey Lustin. Zen Path from Java to 1C

Away - Alexey Lustin
Presenter - Sergey Gorshenin



Dear friends, I welcome you to the studio of the “Ready-made solutions” program. I represent our guest - this is a man with twenty years of experience in the field of information technology, IT specialist, technical director and just a good person. Our guest today is Alexey Lustin.


Hello, Sergey. Hello colleagues.
______________________________________________________________________________________________________

Chronological note

Lustin Alexey Alexandrovich was born in the city of Anadyr in 1980, studied at the Voronezh Technical University with a degree in CAD Engineering. Since 1995 - an IT specialist. He started as a 1C implementation programmer in the city of Lipetsk, was engaged in the automation of business processes in the Uyuterra network. Since 2008, Lead Specialist for Java, Rails. In 2008 he moved to Moscow. From 2012 to 2014 - Deputy Head of the Department of Innovative Development and System Analysis at the Svyaznoy Group of Companies. Currently, he is the technical director, trainer, architect and consultant of the Silver Bullet company.

Alexei, for starters, I suggest you tell us a little about yourself in order to indicate what we will talk about in the future.

It is quite complicated, like any beginning. In short, I speak of myself in such a way that I was born in Chukotka, far, far, near the Arctic Circle. I’ve been engaged in IT since the age of 12, that is, in fact, not 20, but, in my opinion, for 22 years. He went from a regular cartridge refill, operator to fill in incoming invoices, to an architect, technical director and so on.

How did I go through it? Here, probably, I need to tell longer.

I came from Chukotka in 97 to enter the institute, because the main galaxy of good teachers was concentrated in the central region, and not in the Far East. Maybe back in Novosibirsk, but in general at that time, a high-quality education in IT could be obtained in technical cities - either in Moscow, or in Voronezh, or, of course, in St. Petersburg. Unfortunately, this was not the case in the Far East. To provide myself with money, and the time was hard, I took on any work on IT. This is the administrator of the computer club, and the assembler of computer equipment, and the developer of 1C, oddly enough, still on the old-old version. I also tried my hand as a Java developer, when it was just starting to develop, and as a Clipper database developer, who else remembers such things. It was fun enough in those days.

And after the end of the student phase, a serious life began, and there I went a different way: I was both a programmer and a project manager, depending on what was the global goal of those employers for whom I worked (business owners, IT directors or IT- managers in general).

Well, then, in Lipetsk, I worked for the Uyuterra company - this is a fairly large Russian holding uniting a network of non-food stores - at that time there were about 112 supermarkets from Blagoveshchensk to Kaliningrad.

A little later, in the order of my own development, I moved to Moscow on my own initiative, closer to the giants of our industry, in order to really gain experience and share my approaches. So I got to Svyaznoy and worked there for about 4 years. I was both a leading programmer and an internal technical leader there, in the last year my role in the company was called the “1C Competence Center”. To make you understand, there are about 200 1C specialists.

Well, knowing the Messenger, I understand the level, yes.

Yes. This is the way of life. From the point of view of my personal attitude towards him.


IT paradigms from four authors


So, in the 95th year you started as an IT specialist. Do you think the model of the IT specialist of the 95th year is different from the IT specialist of the 2015th?

In general, nothing has changed, in my opinion.

But what about changes in paradigms, in concepts, in the development of technology?

Paradigms have not changed. All the paradigms on which we are now parasitizing are invented by four authors - these are Brooks, Wirth, Ward and Hyudak. In fact, they came up with these paradigms in the years 93-94 (I'm not talking about software engineering, which was invented in the 70s). Everything that is happening with technology is laid there. Nothing changes. On the other hand, only the practice of applying these paradigms is growing, that is, an IT specialist who began in the 95th year, has, conditionally, 20 years of experience in applying these paradigms. This is his only competitive advantage in relation to a person starting in 2005. Just a person starting in 2005 has 10 years of practice. That’s the whole difference. But the paradigms are the same.

Good. And let's remember the 95th year. Still, IT specialists then were people who loved IT, they came to this sphere at 12, at 15 years old ... It's no secret that now some of IT specialists choose IT only because it is fashionable.

Yes, now it’s a really big fashion for IT. But then they chose, because it was fashionable. For example, we can recall the “dotcom boom” of 2000, which also affected Russia, because even then there was a fashion for IT. And 3 years before, in '97, the fashion for engineering specialties was also very large.

I will explain why. In Russia at that time there was generally a shortage of IT specialists of any nature. For a good IT specialist, they were ready to pay a lot of money. They were no longer ready to pay for lawyers, economists, but they were ready for IT. It was an interesting enough time. If we recall that in the 93rd year the passing mark for engineering specialties was 9 - three three, then in the 97th year for the engineering specialties related to IT, the passing mark was already in the region 14-15 - one four, two five. This is an indicator. And, in my opinion, this passing score is still not reduced. That at the beginning of the two thousandth, that now the passing score and requirements for IT specialties remain at the level of 97, 98, 99-ies.

On the other hand, even then in IT they went, including fashion. Therefore, now many of those who started back then are no longer IT specialists. Some of them are businessmen, someone has become an economist, someone has left.

There were not those who came for fashion, but those who really loved it. And if we see an IT specialist with ten years of experience, then he most likely went through all the crises of this growth - 1, 3, 5 years. As in family life - you married IT, then a year later I realized who you married, after 3 years you had a fight, and after 5 years you finally reached someone like that “Zen”, when you understand that you are apart necessary.

Such a philosophy.

You have a rather interesting experience, but you won’t say that you are an IT specialist, although you yourself insist on it. Why?

I have two theses that reflect my experience and the general concept of what I am a specialist in general: this is Overskilled - the so-called “search by skills” (there are too many of them), and at the same time, Troubleshooting is “a person - a problem solver”. I usually say that I can solve any problem in IT. Due to experience, due to the technique, due to the developed algorithms - generally any. Because any problem can be solved. It doesn’t matter if this problem is related to 1C or not. There can be no unresolved problems. This is the first.

Since I have been living with this approach for a very long time, can you imagine how many problems I have already solved? That is why, in fact, I have a bust for skills. I can solve the problem with Ruby, with C ++, with Assembler I can even if there are problems. With 1C, of ​​course, with business applications, with applications written by third-party developers, with OpenSource, Commerce applications. I just went through all this. Cartridge accounting? Yes please.

“CANNOT BE UNSOLVED PROBLEMS”


Business Application Specialist


Then I have a counter question. My career began in the distant two thousandth, and I started with 1C. But after 6-7 years, I ceased to be an odnosnik in the literal sense of the word, although, probably, somewhere deep down I still still program on the seven. But why do you still with such a wealth of technical experience still consider yourself a classmate?

In fact, I usually call myself a business application specialist. And in Russia, and not only in Russia, it is impossible to create business applications without the 1C platform.

Is it possible to say that in this case 1C is the most common platform for creating business applications, at least in Russia?

1C is an implementation of the concepts of a problem-oriented language. Let's go back to the 95th. There was a problem. There are many businesses. Just imagine how many configurations are now in Russia, written from scratch, without taking into account the typical. That is, de facto, we can say that every 1C specialist wrote his configuration from scratch. Bad, good is not important. The portal INFOSTART.RU now registered 450 thousand active users, 1C-specialists, that is, we can say that each of them wrote his own configuration.

“1C IS THE IMPLEMENTATION OF THE CONCEPTS OF A PROBLEM-ORIENTED LANGUAGE”


You know, I won’t go far, for example, I have 4 full-fledged software systems. This is not counting small developments and reports.

I am usually a supporter of saying that there are so many 1C specialists, so many atypical 1C configurations written from scratch. And how many businesses are there in Russia? There are many more.

Probably all the same business models?

Yes, business models. Most often, the business architecture is directly proportional to the architecture of the team creating this business. There are no identical businesses and identical processes either. Even if they are based on the same principles, the concrete implementation is always different. You have to put up with it.

Where did the 1C platform and its language for developing business applications come from? All this appeared in response to the problem, which was that business was growing in Russia - there was a transition from the old system to the new: many small enterprises appeared, the growth was very rapid. Many small businesses have sprung up. They could not all work on the "template" business practices ("best practices").

Then such practices did not exist as such in Russia.

Yes, and consulting as such for this market has not yet been. But already it was necessary to work somehow.

There is a need for a language for a quick description of business processes. Because in no platform you will find a language in which you can write "Documents. Incoming invoice. Conduct ()" (register, print, send to a printer, set off a sale, and so on). And it had to be described.

Conventionally, the idea was that even an accountant could describe his business process. It didn’t quite work - it still required special people who possess an algorithmic base and can describe business processes in a special DSL language (problem-oriented language). But in this way it was possible to reduce costs and quickly automate any business of 5-10 people.




In fact, this saved time and costs in creating these base classes, base models, because they already existed.

Yes, it was a huge leap. The fact is that at that time, in the 95th year, the main language for developing business applications was C ++, which had a low level of abstraction.

Then there was a lot written on Clipper, as far as I remember.

Clipper - it was also too low-level language. Then Java just appeared, as a kind of framework that raised the level of abstraction. But he raised this level only one step up - he allowed the component model to be built, and 1C jumped straight up through 5 levels to the top, immediately to the level of a businessman. Even now, after 20 years, neither abroad nor in Russia still has such a language that would allow describing business processes directly.

Now banks are trying to create a language for automating traders and describing their algorithms in a certain DSL language - they are trying to do this in the Java world (or, more precisely, in the functional world). And we have such a language, conditionally, has existed for 20 years, so we are here in a winning position. And it is unlikely that in the near future a language of the same level will appear there, which makes it equally effective to level the system at basic levels, so that you can not stop at the first stage with problems with code and memory, so that you can immediately think about the benefits of business.

Remember what Agile came up with? In order for developers on third-party platforms to start thinking about the benefits for the end user. They did not make space memory management algorithms, but thought how these algorithms could be useful to business. Not to the businessman in the shirt (to the owner who invests money in this), but to the end user - the storekeeper, operator, accountant.

There is still such a moment: how to justify for business the need to optimize some kind of algorithm in order to win one and a half megabytes of memory? In C ++, it is almost impossible to prove the feasibility study for such an optimization for a business. But it is easier for one employee, his tasks are close to business goals, so he can explain what will become faster, what will improve (moreover, he can implement the optimization by memory with the help of C ++).

And if you go back to why I consider myself a 1C specialist, I always work with businessmen. Initially, 20 years ago, I started at the Compulsory Health Insurance Fund. My first task was to automate the collection of payments for mandatory medical insurance. My first customer was the head of this MHI Fund, he explained the strategic business goal: why did he need it and so on. And the technical implementation and the technical risks associated with it were completely on my side - the choice of the platform, whether it be Access, Clipper, and so on, fell entirely on me.

This was my first task - at that time I was 15 years old and there were simply no database specialists in our city at all. Besides me and Andrei, my colleague is a good C ++ programmer. And we also had a “senior comrade” in our team, a radio engineer of about 35 years old - he explained to us how to technically implement everything, and then “combed” what was done. And we, young guys, took the strategic goal of the person who was responsible for all district compulsory health insurance, and tried to realize this. Bad, good, with mistakes - it doesn't matter anymore. Perhaps if he sees us now, he will say that we all did poorly there. But it normal.

Is it possible to say that he decided for you then, that you need to develop, that, putting his goal at the head of your work, he gave you an impetus for further development?

Yes, of course, then we were greatly influenced by the fact that he believed in us. We were young tenth-graders, we won at the Olympics, such IT specialists to the core - but, in fact, we were guys with no work experience. But he took a chance and gave us the opportunity to try to do something. And we tried, yes. In order to be close to computers and generally to be around in everything. It was such a good motivation.


Different levels of abstraction


I remember the beginning of my career - it was Vodokanal, there was 1C. I found 1C under DOS version 2.0, then the transition to 7.5, to 7.7. But when I started writing something under 7.7, I quickly realized that I was missing the very accounting background. I then went to a three-month course, and this probably for me, on the one hand, served as an impetus for further development, and on the other hand, served as a kind of click for me to start moving further from programming, already deep into the business processes. Isn’t it so that IT specialists who write programs or applications for various business tasks will move on to move away from programming and move to adjacent planes, to other platforms, to other tasks, or to another area in general?

Yes, this usually happens. The world is dividing. At first you just have some programming skills. You can write in Pascal, in C ++ something, some kind of algorithms. This is a basic skill - at this stage you do not yet have experience with business tasks. But here comes the 1C platform. You try to solve business problems with the help of it, pass it through yourself and your first level arises. And what's next - you decide. You can go into business - this happens. Perhaps you just realize that IT is not yours.

You can go to business methodologists (or else it's called an analyst-methodologist). This is not the one who describes the methodology, but the one who tries to be the link between the developers (those who create a product) and business customers. This is some kind of analyst who studies business processes, tries to find hidden requirements, and, possibly, attracts external methodologists.

Is this probably something close to the architect?

No, this is more about system analysis. An architect - he builds component models, and this specialist is a kind of designer, he is more engaged in the analysis of how exactly it is necessary to build the final model.

One way or another, you start to specialize. You may want to leave this 1C world at that moment, because you suddenly decide that you can design everything yourself on some low-level software. You take, for example, Java, since it is free, and you start to design something on it. As a result, people either begin to do something else, or, what happens most often, return back to 1C, but with a different knowledge.

The amount of experience is directly proportional to the number of mistakes made as the errors grow. This is such a feature. Therefore, in the end, you still in most cases return to the 1C world. Maybe in a different capacity - for example, as a business customer, or as a chief architect, looking at 1C from the side, but working with it anyway. Because 1C is a platform for automating business processes, and you don’t really leave it anywhere.

“NUMBER OF EXPERIENCE DIRECTLY PROPORTIONAL TO NUMBER OF ERRORS”


But what about the reputation of odnosnikov? I remember when I started, many of my classmates laughed at me. Say, here we program in normal, full-fledged languages, and you program in a language that is not only done in C, it is also written in Russian.

Unfortunately or fortunately, I had a lot of teams in my work, which are not the same team. In general, sometimes I consider myself, besides the 1C specialist, also a specialist in Ruby on Rails and Java - it so happened that I have experience writing applications on these frameworks. But there is another problem. People who write in .NET, in Java, on anything, they are too far from the people. They do not automate the business. They write some components for business, or rather components for those programmers who will then build a business application from these components.

In fact, they build cubes, from which someone will build the final product.

Yes, that’s how it works. After all, we never think about the fact that there are people who write assembler programs that implement the logic of microcircuits. And there are also internal algorithms - various south, north bridges.

Let's make it easier. Every day we control the mouse, we don’t think about how the movement of the mouse is transmitted to the screen.

Yes, somewhere there are people who program microcrystals inside microcontrollers. There is a specialty “Physical Chemistry”, where they are taught to work at the level of microcontrollers, to program there. For them, 2 bytes is a lot. They have there the memory is measured not by gigabytes, but bytes. These people give their finished components to other people who already describe working with devices at something higher level, for example, in C ++. Then some other people take these components written in C ++ and make their applications, components or libraries from them - already in .NET or Java, or something else. And then the same people come, take these components and make them the ultimate business application. This is how it works.

Let's go back to the classmates. Is it possible to say, based on your words, that there is a certain contradiction that you, on the one hand, do not want to be a single-source, but you have to.

You have to be a peer, but you don't have to be a peer. This is the contradiction. For ease of understanding, you just need to remove the word 1C. 1C - this is 1C CJSC, it is a company that develops, which invests both money and methodology inside this platform. One must be a specialist in business automation, but one does not need to be a specialist in business automation. Reminds schizophrenia. But in general, you just have to learn how to switch the toggle switch.

That's when you communicate with a business customer, your task is not to discuss with him any technical issues - technical debts, technical architecture. The customer does not know how to build a cluster - horizontally or vertically, how to build racks and so on. He tells you a certain wish. Generally, the customer wants to get some kind of alleged visual behavior of the mold as a whole. Unless, of course, this is the customer who orders the compiler from you.

... Let's just say that if your customer is a business representative, and not a representative of the IT industry.

Yes. We are talking about the ultimate business. I just worked a lot in the end industries, that is, I was engaged in finite automation. This is a rather complicated process - there you need to learn how to switch the toggle switch to specialize in a business platform - for example, quickly build a prototype if you need to experiment with projects. This is your skill.

But when you return to your internal IT world, you need to switch the toggle switch back, and there you should no longer be a classmate, a specialist in business platforms. You should just be a development specialist. And there you already forget that it is 1C - you just have a language, there are components, there are algorithms (the theory of algebraic sets, for example) and so on. There you already recall everything that you were taught at the institute, if you, of course, had a profile one.

Good. Let's get back to the reputation of 1C-specialists. What, in your opinion, is the reputation of the business man?

The business is excellent. Only 1C specialist can dispute half-firms for a dispute in two days, conditionally. Let sloppy to throw a prototype, but in which you can already run the storekeeper and user. He will begin to swear, but in general, he will already begin to generate some kind of data, it will already be useful. That is, the launch speed of 1C solutions is high.

"1C ALLOWS TO IMPLEMENT QUICK START"


But is this rather a merit of the platform?

And experts who know how to run it all. Therefore, the reputation of 1C in the business as a whole is good. When we just start to run a business, he gets used to the fact that we do everything for him very quickly. Conditionally - we launched a prototype, and now we need to mass-launch the entire company. Naturally, the quality of such initial automation is close to zero, but the prototype itself is working. And when we continue to try to switch to improving the quality of the solution itself, here we are already beginning to lose our business reputation because we are no longer satisfying it.

That is, we gave him 80%, for example, in 2 days, and we bring the remaining 20% ​​to mind for several months. This does not suit him anymore.

And here a dilemma arises. We have to fight for a reputation. Businessmen, in fact, are very fond of 1C: it is fast, inexpensive, you can start up “on your knee”, on a small computer under the table. If you run the prototype for 10 users, then, seriously, even a server is not needed there.

1C allows for quick start. For a businessman, this is understandable. There is such a paradigm: than taking the feasibility study for one project for half a year, it’s easier to launch 100 unsuccessful projects in the same time, incur these costs, and one of them will suddenly fire. For business, this model is more successful, therefore 1C-nicknames are very important for them. For the same reason, most 1C specialists are most often close to the center of financial responsibility. Not to key users, but to people who own budgets.

Do you mean bookkeeping, financiers?

Yes. Those who own automation budgets. Up to the commercial director. In my practice, 1C-specialists are most often tied either to a commercial director supervising IT, or to a chief logistics specialist (who is responsible for the operational activities of the entire enterprise) - that is, directly to a top manager, bypassing the average level of managers. This is a common practice in the end business.

They, in fact, work at different levels of abstraction.

Yes. 1C-specialists do not want to go down, do not want to understand the technical details, and specialists on other platforms do not want to go up to business goals. Consulting in neighboring platforms is trying to teach .NET people to love business, and I have to teach classmates to love IT, that is, quite the opposite, although the principle is exactly the same.


L at the end of HTML (DSL, XML, WSDL, etc.) means language - language.


But if we have a clear situation with "clean" developers, the question remains about typical odnosnikov: why is it suitable for them? Indeed, as a result, it turns out that, in addition to the fact that they are well disposed towards the business and love it, they must also love their allies. How do they look at it?

Differently. Firstly, there is a key point that all odnosniki lie. It is more convenient for them to be classmates, clearer, calmer.

The last 10 years I have to conduct interviews on internal vacancies. Having talked with a large number of 1C developers, I noted an interesting point: most of them say that they are 1C specialists, although in fact 80% of 1C developers have some knowledge of a second language - it can be Android, maybe Clojure is functional, but they do not advertise it. Maybe at home, maybe in the evenings. JavaScript, HTML. L at the end of HTML means language.

Odinasnik is a specialist in the ultimate automation of business, and this implies not only 1C knowledge. Therefore, when the peer reviewer says that he is only the peer reviewer, he lies because he is obliged to work with XML in the last 8 platform. If it works with web services, then the language is WSDL (Web Services Description Language), this is also L - language. He can’t say that he is only a 1C specialist, but it’s more convenient for him to be called a classmate, because then they give him one platform, don’t get into his small world and let him calmly do automation. Therefore, until recently, most people in this sense were happy with everything.

Now, over the past year and a half, I notice that classmates are not quite satisfied with this state of affairs, because business needs are growing, and development basically begins to be required when the business is no longer designed for 5 users.

If there are 5 users, then it is not necessary to hire a developer - you can take some ready-made standard solution or some kind of cloud product that works in the service mode. Now, the last 6 years, to quickly start a business, it’s enough to take a typical cloud service, pay the operating costs of 20 bucks a month, and that’s all, you can think about the purpose of your business. At the first stage (approximately the first year), developers are not needed.

Developers become needed when the business is already developing, enters the use of advanced technologies, requires high-level improvements. Therefore, for the last year and a half, I notice that classmates begin to think about further growth, get their knowledge out of zagashniks, begin to learn Python, .NET, 1C plus XML, 1C plus HTML ... For example, I am a specialist in 1C plus Web. If you look at the submitted resumes, most except 1C have some kind of platform. In order to somehow specialize, that here I am doing not only 1C for business, but some other special "little thing."

We must not forget that there is an article by Sergei Nuraliev published in February 2014 - he determined that it is not enough for peers to remain just peers, it is necessary to develop further and specialize. It lists six main areas of development for 1C-specialists (analyst, developer, optimization expert, usability specialist, specialist in new development areas and project manager). Therefore, when we say "typical odnosnik" - this is a meme from the 2000s. They are no more. They, along with the "seven", probably died.

I can say that PHP specialists, by the way, are not a gift at all, and their quality suffers. But they are happy with everything, because so much has been written on this PHP that it would seem that you can continue to live with it calmly. But now Node.js or Ruby on Rails is also used everywhere, where it is already without it. And PHP also becomes ill for specialists, and they begin to reprofile, to go somewhere ... This is the current trend.

“80% of 1C DEVELOPERS HAVE A SECOND LANGUAGE IN THE BASIS”


And if you return to what you were talking about - about the separation of the developers of the "pure" and 1C-developers. How to make sure that there are no two departments, there is one department, and at the same time, one is friends with others and lives in peace and harmony?

Each of these two sides has its own laws - professional development in industrial languages ​​on the one hand and development on the business application platform on the other. 1C developers live according to the 1C company’s methodology, which is published on ITS, described in yellow books, and so on. And the developers of .NET, Java, Phyton live on their books. In order to unite both those and others, I had to lower them in the 95th year, and show them four books of those authors, about which I have already mentioned (Brooks, Wirth, Ward and Hyudak).

This is a real case from my practice, when two development teams were given books about fundamental programming concepts. It so happened that none of them had read these books before - this theory was new to them. And two weeks later, when they read all this and formulated the concept of DSL languages ​​for themselves, they began to argue. In fact, this whole holivar was about nothing. Holy wars, which is better: 1C or .NET, is generally too costly. They are just sharpened for different tasks.

And the next move worked. We selected one (maximum two) .NET or Java specialists into two 1C teams of 5 people each. And these two (one per team, interchangeable, two teams provide) - they help reduce the number of technical problems for the 1C-team when they are struggling with performance in the working base, and it turns out that they help each other.

That is, a donor is hidden from the business, he is allowed to do his space things, and classmates are not substituted for the business, because they have a backend specialist in a high-level language that eliminates their technical miscalculations. That's how it worked - it worked out well.

It happened that one of the classmates came to this donor (let's call him Sergey, for example) and said: “Seryozha, teach me .NET, I want to try.” And he teaches him. And Sergey, as practice shows, will sooner or later ask: “Listen, tell me about 1C, what is happening here?” And in the end, odnosnik teaches the features of the 1C platform of the donor.

And then an exclamation arises: a person from 1C who really wants to do development and programming says: “What a cool thing is .NET”, but a .NET chic at a certain point says: “What a cool thing 1C, 1C is rulez,” I even remember this quote. This is how it unites.


About the difference between CTO and CIO


I will now ask a slightly abstract question. Here you are the technical director, I am the IT director. I see a certain difference in how you solved the problem in your team, and how I would solve it, because, for example, from those 4 books, from those 4 authors that you named, I read only 2, well, plus, Donald Knuth’s three-volume is also about the art of programming. But in your opinion, if we are talking about team management, what is the difference between a technical director and an IT director? After all, one and the second work in the field of information technology. In fact, these are two adjacent positions, but the difference in approaches is very significant.

I do not really like being called a technical director, because in my opinion this is only one hypostasis.

The difference between the technical director and the IT director is only one thing: who operates with what, basic concepts. For the IT director, the basic concept is risk, which can be converted into money - that is, the IT director manages the risks of money, team, psychological and so on. And I control the contradictions. A technical (engineering) contradiction is a concept originating from invention.

So you never thought how rockets were created? There is a whole algorithm how to create an invention, a whole concept - how to resolve contradictions. An invention cannot be made revolutionary; stagnation cannot be allowed, but evolution is needed. How to provide it? It is necessary to manage every contradiction, level it, increase ideality, and so on.

I manage the contradictions. I am not saying in vain: I solve problems, because problems are contradictions when something is good and bad at the same time. Something that it is impossible to choose one of two things: “One must be one-ednik, but you cannot be one-ednik” - here, for example, a contradiction.

Therefore, the difference between the IT director and the technical only in the basic concept: risk or contradiction. But in general, the approaches are the same everywhere.

In general, I am a supporter of technocracy, I believe that the technical director, and indeed any managerial staff should have a technical basis. I can’t take it any different.

“ANY GOVERNOR MUST HAVE A TECHNICAL BASIS”



On the interaction of 1C-nicks with third-party developers


Let's continue the topic of information and technology. We talked about how third-party developers can help 1C-nicknames. But could it be the other way around? Can 1C-nicknames help third-party developers, and if so, with what?

Yes. From practice: the office where I worked suddenly needed WMS - they accidentally formed a warehouse of 7 thousand squares. I then worked at Uyuterra, there was not a single-source engineer at all, but a Java developer, Ruby on Rails, and even written a bit of driver in C ++. As my first test task, the director of Uyuterra gave me a Linux console for a month, a label printer and said: “Here you have a label printer (it was called DZBZ2 Godex), write an adapter for it, write a driver.”

I remind you - I just left 1C, I just ended the era when during the year I tried to launch my franch together - I was just in the franchisee, and then suddenly I become a C ++ developer, and I have to write under Linux What happened to my brain next is terrible to remember. Within a month, I had to remember working with memory, working with block devices, and so on ... But I did not give up. This is about how.

There was a problem. But I said that I can solve any problem. They drew a problem for me: I need to automate the work of a Chinese machine with an unknown driver, which has a description in Chinese. In fact, this problem could only be solved by the selection method. And this is my first test task, so I studied.

So, then this company, Uyuterra, had a need for systematic work with the warehouse, and for this they had to write their WMS in 1C from scratch. From scratch - it's a long time. Therefore, in order to start faster, we, together with Andrei Mezhov, acted as a kind of tandem. Andrei is a Java programmer, a well-known personality, he is registered on Infostart, he has many articles on the integration of Java and 1C.

So, I transferred to him my knowledge on the 1C platform - I told you what platform 1C objects should be taken to implement a specific business task (for example, for inventory, etc.), and he would get a quick start.

Of course, he still encoded on the 1C platform in the Java style. Spitting for three months - he said that it sucks, etc. But then he said that “1C is rulez.” I won’t say that I helped him very much, but here we acted as a tandem and he was able to launch a business task faster. I won’t be surprised if it later turns out that he simply threw it out of the process of refactoring this WMS-system to 1C and then wrote a new one from scratch. But I helped him to quickly understand the context of the task of how warehouse logistics in trade works. This is a pretty big problem. To understand how the cashier works at the checkout - not every affiliate will be able to.

Yes, you need to see it with your eyes and feel for yourself.

This is a typical problem that can be converted into money - I usually like to convince people with money and expenses of people. When you have to communicate with the customer, you have to measure money.

A typical problem: I come to you as a customer, and you are a subscriber, or iaver, or pythoner. I come to you and say: "I need a simple cash register software at the cash register." Usually people answer: "Formulate a business requirement, write a piece of paper, then I will start." What does the odnosnik do: “What are the business requirements? And so everything is clear. This trade is 2 and a half thousand years old, all the requirements have long been described. So, we’ll do it now. How much money will you give? ” That is, quite the opposite.

And we, it turns out, are useful for donors precisely by knowing the methodology, business requirements, we can design a model (the first conceptual project) and not waste time on it.


About cost reduction


Now I really liked how you touched on the topic of costs. Recently - perhaps due to cloud computing - a situation has often become apparent when a development team is taken somewhere to the regions. As an IT director, I see this primarily as a reduction in costs. What pros and cons do you see in this, from the point of view of the technical director? Is it possible to say that the quality of the code suffers from this? Or is it still a matter of costs?

Quality suffers from it for sure.

Does code quality suffer unambiguously?

Everything is suffering. Firstly, when you have a difficult-to-distribute team, managing it is almost impossible. The only one who can manage this is, in my opinion, Alexander Belov. He has the only successful management experience.

The developers of such a team should have a special psychotype. You cannot hire a person with the character of a stationary developer somewhere in Izhevsk or Yekaterinburg. You need to look for a completely different person who will be able to work in a remote team, reporting to the “center”.

In a distributed team, manageability costs generally increase. It seems that you are saving on money and on the payroll fund due to the fact that you are leaving for the regions, but you are starting to lose on manageability.

When you build your team, in any case you need to make a separate small development department methodological, separate, with your leader, with an office manager, and so on. Then it somehow works. Then this cost center pays off because it makes the final product. This is from practice.

If someone tells you that development in a distributed team will be more profitable, then they lie, they just say that for money, for payroll, it will be less expensive. But the total cost — called the total cost of ownership — in remote development is likely to be higher. And the point here is not quality, but the costs that you will bear.

That is, I correctly understand that it is often said that direct costs - these initial investments (if I may say so) will be less, but indirect ones that affect common bones - are they really either forgotten or specially kept silent?

Usually people, when they take the office outside, realize the situation with indirect costs like this: wow, it turns out that indirect costs are much higher than in Moscow, St. Petersburg or other central cities.

Is there a difference between simple developers and 1C developers from the point of view of remote companies?

From practice, I have not seen. The money is different, but the same percentage.

At the remote office, you still need a “champion”, the cost of which will be two times higher than the typical average salary. And in the end, you will need to compensate for this small leadership at the expense of office costs, maybe even reduce the cost of marketing, accounting. But sometimes an accountant will need a local just in case, or an office manager. This practice.

I myself come from the regions. I’ve only been in Moscow for the last 4 years, and before that I was shaken from Rostov to Pskov, and even in Siberia, I happened to be for some time. I mainly worked in the regions.


About the clouds


Good. And if you use some newfangled tools for team development in the clouds, where everyone works in one place and does not communicate live?

Firstly, for 1C of the world this has not yet been created. There are our attempts in collaboration with the guys, experts on Linux, to deploy the cloud configurator now - a special system for group development of configurations in the cloud with a customized environment, with all the tools. This configurator is currently undergoing internal beta testing. Maybe it will be possible to roll it out in the near future or the 1C company itself, perhaps, will do something similar in the future.

Do I understand correctly that this is just some kind of virtual machine with the configurator running, then the question is: how is multiple access organized there, how is joint development going on in it?

Come on, separate the flies from the cutlets. We remove the word 1C. The infrastructure of the developer in the cloud is a big problem now in the whole market. In 1C, in Java, in .NET, in Java Script and so on.

Now there is such a concept Vagrant. 1C: Bitrix uses it (just started using it). This is when a small virtual tuned machine with Bitrix deployed comes to you - so that you do not waste time, but immediately starts coding. In the same way, you can deploy Bitrix locally on your virtual machine, or somewhere in the cloud - your own, if you have it, or in the private - whatever. As a result, we operate on these small virtual operating systems that come pre-installed to you and are automatically updated. Such a trend is everywhere. Therefore, we remove the word 1C - this is everywhere now.

This reduces costs. For example, to buy iron. Because if you imagine some ideal 1C developer’s stationary computer, then it will probably cost about 40 thousand rubles now, if you buy it very, very cheaply. Although at current prices, it’s probably already already 60. There should be something like i7 (multi-core), 16 gigs of RAM and a terabyte SSD screw for working with the configurator’s cache so that everything fits there.

Well, yes, software requirements are growing faster.

Yes, and you need to pay back 90 thousand rubles. If you work in Moscow, you can somehow do it, and in the region 90 thousand rubles, even with a loan, it’s quite difficult to recoup.

And when using the remote environment, you just need a browser or some stationary client that will work with this over the network. With the development of communication channels (and they are still developing) it will be quite good and convenient. Therefore, this is a really interesting trend.

And how in your case with the cloud configurator will the channel speed influence? It seems like it is clear that this will affect the image display, but how good will the performance be on the cloud side? And what will it depend on?

From practice - the performance there will be 3-4 times higher than, say, on your local machine, even with an SSD. Because the performance of the solution itself already depends on the provider of this solution.

All of our final business decisions, final consulting, practices, we still sell. But the tools for people to evolve are laid out in OpenSource.

How did our community form? We shared our tools, our best practices. Yes and Infostart so formed. All tools laid out. So we, it turns out, debug it. Instrumentation (the same Snow Maiden), it is in many ways more productive than 1C, several times. Working with configuration, working directly with 1C storage there is also implemented several times faster than regular work. Due to the fact that there are good C-shniks, sometimes assemblers come across.

Well, yes, Mercedes AMG, of course, it is better than just a Mercedes, because it is brought to mind.

Yes, for example, there is an opinion that 1C on virtual machines slows down and reduces performance by half. But there is another opinion that if you correctly configure virtualization, then it will not lose in performance. And if you correctly configure the parallelism of flows, that is, implement the code of internal tools in a slightly different way by parallelizing the flows, then you can win by a factor of two compared to a typical machine. This is from practice.

Therefore, the performance there actually turns out to be higher than on the local machine due to the fact that you implement this multithreading, or, in other words, the MapReduce approach, when we parallelize the stream and then finally assemble it. That is, only the assembly flow occurs synchronously, and the load distribution must occur horizontally. But this is already a zone of architecture. In approximately the same way, the 1C-th cluster works in 8.3. All code must be asynchronous, must be executed in several threads, so that it can be parallelized, manage memory, and so on.


About experts in the world of 1C programming


You say that 1C-nicknames are cunning when they say that they only know 1C, because in addition to this they know other programming languages. Does this mean that we are on the verge of some turning point? Previously, 1C-nickname was the one who programmed in 1C. Now he needs to understand virtual machines, know XML, and understand how Postgre servers are configured for Linux ...

What you are talking about is called a Performance Expert. He likes to understand how 1C behaves in a Linux environment or in a Windows environment. He studies performance on different servers - on Windows Server 2012, Windows Server 2008 - they cost different money. Some of them are more convenient for him, he can work with it. He does not do business automation at all, but he is a 1C specialist anyway. This face is leveled. He is just a specialist, an expert in infrastructure, environment for 1C.

You put such a person, for example, a Tomcat application server in Java, and he says: “Ah, some regular service, not 1C-naya, well, yes, in Java, but it behaves the same way.” And he suddenly becomes an infrastructure support specialist for application servers.

Do I understand correctly that, unlike the IT specialist of the 95th year, who set 1C himself, and then in two days gave the business some kind of semi-working, but working solution, the current 1C-nickname, in the narrow sense, plays a dominant role, and the rest 2 development department perform a supporting function? Is it not possible that due to this we come to "world peace"?

It may be so, but there is another question. Again in the money. God bless him, with technocracy, technical issues there are all resolved. Now the question is how to monetize it and how to make money on it.

So now, upon transition to the “service model”, a new fashionable theme begins - these are microservices, microcommands. People begin to say that IT suddenly becomes not a cost center (like a support service), but a profit center. According to the new ideology, any IT service should earn money, therefore, in fact, we should put up a billing service for the internal service (calculation of benefits), and conditionally 1C-nickname buys some of its services from a donor.

“A NEW FASHIONABLE TOPIC - MICROSERVICES, MICROMANDS”


In fact, a kind of internal cost accounting.

Yes, and if every micro-process there will be a micro-command, then they simply buy these services from each other in partnership. Moreover, the model of franchising and a typical “updater” is also just one of the services. For a business customer, he looks like a typical 1C nickname, who arrives, updates ITS, can talk heart-to-heart with an accountant, tell him about the innovations that he read on ITS. This is a service, support for basic money. But this service also provides project activities, because if you have a service of such support, then the development department as a whole is also developing due to it, because in fact the real requirements from the business customer are brought by the employees of this service, because they They talk heart to heart with users.




Can we say that this, in fact, is some kind of technical support?

It is impossible. Technical support - those who are techies and do nothing else. In reality, this is not so.

The following happens: the person went, updated the ITS, talked to the payroll accountant, and returned to the development team. At this moment, the accountant directed to the development the requirement to add the props “Daisy” (this is a real requirement, it really sounded like that). The real developer looks and resents: what kind of props is “Chamomile”, what are we talking about?

And then the same “updater” comes to them, and explains that there, in fact, the problem is this: a large rotation of staff, a person can quit and return next year, they call such employees in the jargon “daisies”. Because they have two labor contracts, and the certificate 2-NDFL one. Therefore, they asked to add such a requisite to the employee directory so that there are no problems with the tax. It turned out that they talked about it “over tea” during the ITS update. Therefore, there is no need to modify anything, because this is so in the standard functionality of the RAM.

As a result, it turned out that the analyst here was this man who traveled and talked.

But this, again, provided that he knows the typical configuration well, and generally understands the essence of the problem, as well as the specifics of the business - that is, it must be a 1C nickname of a certain level.

Yes. But he must reach this level.

By itself.


About the transition period


The problem of people who do not develop can be solved in two ways. What is happening on the market right now?

There are people like you and me who are developing ourselves, realizing that it is impossible otherwise. On this occasion, there is Moore's law, which says that the further development of technology is faster and faster. So, we need to accumulate basic tools to keep pace with development, to be faster than development. And then we can be in the trend and mitigate these risks, because now we are thinking about what will happen tomorrow.

But there are other people whom the platform itself is already compelling. You know that so many left the 1C world only because they heard that the 1C platform is bad and so on. But in fact, they could not rebuild from approach 7.7 to approach 8, from approach 8 to approach 8.3. I very often say that the 8.3 approach in the Java world (and not only) is the de facto standard: a three-link with a call from the client and execution on the server. If someone from Java-developers would come to 1C development now, then in 1C 8.3 he was on a horse, because here everything would be familiar to him

I remember when I switched from Delphi to programming in the seven, I probably programmed for several months as follows: first I generated the code in the English version in my head, and then translated it all into Russian code in 1C. And I caught errors in exactly the same way.

Well, these are such transition costs. The goal is good.

Yes, the output was good.

And the second type of people are those who do not keep pace with development (development goes on continuously). And in the end, they are either thrown out of the market, or substituted, or retrained, or dismissed.

Either you are developing, or are you developing, or are you completely falling out of this scheme?

Yes. You can even leave, run away. In my memory, there was a case when an IT specialist went to the wilderness to Saratov and became a farmer. He was tired of it, he realized that IT was not his. And this is also normal.

We are talking about the fact that any problem can be solved - sometimes the problem can be solved simply by “fixing losses”. If we understand that IT is not ours, we can sometimes (very rarely) record losses and say - that's it, I'm not an IT person.

This is in any field, in principle.

Yes, we remove the word IT, and in fact, there is a fix for losses in any methodology. It happens, it’s not scary.

I used to be an orthodox too. For example, when I was Yavery, I negatively related to 1C. When I was a 1C nickname, I thought Java was too slow. But now, after I visited “on both sides of the barricades”, I came to a certain heterogeneous approach (to a certain “Zen”), that there is no “bad” and “good”, but there is a problem, there is a language and there is a solution. The main thing that a person wants, what he feels love, desire and so on.

“THERE IS A PROBLEM, THERE IS A LANGUAGE, THERE IS A DECISION”



“For the love of art”


We return to the fact that those who love what they do are in priority. Their main motive is not money, but love of work and self-development.

They are developing. They are usually heard and the result of their work is visible. And there are those people who do not want to develop and do some kind of routine work. I will not say that I agree with their views, but such people are also necessary.

We are now talking about development and about different types of people. As far as I know, you are a member of various communities, including 1C. We just talked about paradigms and concepts changing. In your opinion, will there be any change in the communities themselves? Will they somehow be rebuilt, for example, the same Infostart, will there be a change in composition, audience?

Infostart in any case will develop. Where does he go, he has been developing since 2006. I joined the Infostart community in 2007.

“INFOSTART WILL EVOLVE ANYWHERE”


You and I are the same age.

Before that I talked on 1C ProClub and 1C ++. I didn’t really like Mista, because there was little practice, I did not develop there. It was probably possible to talk there, but only this conversation did not develop me in any way. And on the 1C ++ forum there was more professional communication and the authors of this component taught me a lot. Therefore, I talked with them on the forum, studied with them, and they taught me.

By the way, do you know how we came to Infostart? It’s just that at some point in 2007 we decided to publish our developments there - then there was nowhere else to publish, and here we liked the +1 rating system. It was cool. We, as end users of the “pluses”, “measured” them at that time :)

I remember, I remember.


About IT Communities


Since then I have observed that the Infostart community is developing, changing. There is less trolling, more professionalism, more opportunity to get an answer. Communication “about nothing” goes to social networks, and professionalism remains in professional communities. When you issue a publication, ask a question on the forum, and as a result you get sane criticism.

There is a GitHub approach - this is when socialization is done using code. There you publish the operating time code, the approach “less words - more work” is initially used there. And on Infostart, you publish the developments yourself, and people evaluate them. In the direction of such communication, it seems to me, further development everywhere will strive. On HabraHabr, site authors in PHP communicate in the same way - there are also most of the links that say "guys, I made, here is a link to my code." And in the comments, people give new links as answers, etc. Professional communities do not develop as “communicate” communities, but as “help” communities.

A new round has begun in development.

Yes. A friend of mine from Skolkovo said that activity is the same as entries in the information register, activation stream. The main thing is which entity is the registrar for this activity.

Communication becomes informal, and the essence becomes professional. I have been observing such a trend for the last three years - he came from America, there are already examples there of how to capitalize this. This approach has not yet arrived in Russia, but most likely it will. And I think Infostart will be the first to bring it.

“COMMUNICATION BECOMES INFORMAL AND THE ESSENCE BECOMES PROFESSIONAL”



About the Silver Bullet Philosophy


You are holding the entire cartridge in your hand. I know that your team is currently called the Silver Bullet. But at the same time writing the site SilverBulleters. If there was just a Silver bullet, then there would be a Silver Bullet. And if you take a certain analogy and transcription, it turns out that you are silver ticketers. The question is: to whom and what are you selling? Silver bullets or still an aspen stake and garlic?

There must be a philosophy in any action. Including, and in the name.

Remember, I talked about 4 authors: Brooks, Wirth, and Ward and Hyudak. These are 2 camps. Brooks and Wirth fought there for one. And Ward and Hyudak - for another. And there Wirth has a quote that most IT people know. This is “Silver Bullet Doesn't Exist”, there is no technology that would be “Silver Bullet”.

So, the silver bullet does not exist, but there are people - “silver bullets”. That is, there may not be technology, but there is a person who will solve the problem. Now translate to me, please, the “silver bullet man” into English. Or "people are a silver bullet." This trick was the basis for the site’s name, because it reflects the concept that we have chosen for ourselves.

"SILVER SULFIT DOES NOT EXIST, AND PEOPLE -" SILVER SULVES IS "


That is, the difference in company name and site name in Latin is conscious?

Yes, and therein lies a great philosophy. It was done in such a way as to lay there more philosophical meaning and, possibly, less marketing attractiveness. Because we are techies, our task is to solve specific problems. How we do this is a separate issue. Tools are all free. But the knowledge of where to poke on the floor and how to solve the problem - this is a paid product. Few do it. We have chosen for ourselves such a monetization, such a niche.

image

Well, Alex, I thank you for the conversation. What would you wish our viewers in the end?

I still advise most people now, especially in the current realities, to try to develop, design, predict a certain strategy for their development as a whole. To act as a strategist in relation to yourself. Try to create a plan of how you will develop yourself, how you will communicate personally, how you will relax, etc. It is advisable that you create it 3 years in advance, try to throw it, because here it is not scary to make a mistake.

The main thing is the movement. You can develop in any direction. I advise more to do some things with your hands, at least prototypes. I wish you more interesting work in general and fewer problems at home in the next three years and in the coming year. For the wives to understand you, relatives, parents.

Lesha, thank you very much. Friends, make more mistakes and get more experience. The Ready-made Solutions program was with you, and I, Sergei Gorshenin. Well, for now - the end of the procedure.

______________________________________________________________________________________________________ You can

watch and listen to us here:

youtube
itunes
podfm

Also popular now: