With this series of articles, I plan to talk about my own experience of turning an employee into startups (currently, the Megalent offline browser has been successfully created and published in the AppStore). Some articles will contain technical details, and some (like this) will be more reasoning on both programming and IT as a whole.I don’t really like the term “devops”, although in modern terminology this is the closest (but far from exhaustive) description of the range of work that I performed for more than ten years at my last job. I studied some areas deeply enough, some superficially, but throughout my 20-year IT career, I constantly encountered one strange feature that I decided to call the “cult of unnecessary knowledge”. I’ll warn you that this is my personal opinion, which I’m not going to impose on anyone, but I’m forced to start my cycle of articles from this, so that the logic of my “wrong” at first glance can be understood (from a technical or from any other point of view) making.
Being at the very beginning of my career, I could not help but notice that each IT field has its own microreligion, at best, propagating a certain way of thinking, and at worst - requiring knowledge of a bunch of special terms and imposing certain rules indicating that " correct "and what not. Moreover, many terms are either invented specifically for this field, or they have a specific meaning in it, which is radically different from the meaning of this term both in human language and in other areas of IT. To make it clearer what I am talking about, remember the number of meanings of the terms "domain" and "node" in different areas of IT. I agree that in some cases (for example, in programming languages ​​or well-designed frameworks) this seems logical and looks organic. However, in many cases (for example, accounting systems, CMS of the “Bitrix” type, etc.), the abundance of unfamiliar and sometimes illogical terms and rules in a person from the outside cause an explosion of the brain and often an unjustified sense of inferiority.
')
For the first time I suspected that something was unclean in the Kingdom of Denmark, when for each branch, regardless of its size (now and later in this article, when I mention the company, I will refer to my last job as an employee) responsible for the IT infrastructure in terms of hardware, OS and communications, installed at least three Windows servers (and this is without redundancy for reliability). I can not describe the technical details, because I am not an Active Directory specialist, but it was somehow related to the rules of forest organization and replication in Active Directory. The fact that everything complied with the rules of Microsoft, I have no doubt, because He completed Microsoft courses for system administrators. Yes, and then, at a workshop at Mayroskoftovtsev, I clarified whether we did everything right. As a result, the organization of even one workplace required the presence of at least three computers with Windows Server. It is possible that everything is now easier, but in 2003 it was like that.
The insight regarding such “rules” as a whole and Microsoft in particular came to me several years later, when in response to a request to publish my add-on for Excel, I received a letter from a Microsoft employee with a return address like “loram@microsoft.com ". It turns out that we lived quietly with corporate addresses like IvanK@firma.com, then at Microsoft courses we were told that everything was wrong with us, and we redid it, as they taught. They made the root domain "firm.com", it has subdomains "city.firma.com", and in them the addresses of the format "Name.Family@city.firma.com". How many of us were all spitting and swearing at such long addresses, but, like, if it is right, it means so. Well, Microsoft, as it turned out, does not necessarily follow its own rules. And, if earlier, when I, for the sake of speed, optimization, or even unwillingness to mess around for a long time, stupidly drove a “crutch”, violating some dogmas and paradigms, a feeling of some kind of inferiority did not leave me, and even, in a certain sense, tormented conscience, now such an internal conflict began to occur much less frequently. In the future, my liberty in interpreting the rules (both internal and generally accepted in a certain language or region) was often the cause of disputes with colleagues who were extremely negative about such “crutches”. But business is business, and if my crutches helped him, then I could not be called completely wrong. Often, as a result of these disputes, I wanted to tell the joke about the camel at the zoo again:
A little camel asks a camel father:
- Dad, and dad, why do we have such wide hooves?
“Well, we live in the desert, we walk on the sands, so that our feet in the sand do not fall down at the ends there are specially wide hooves ...”
- Ah, well, yes ... But why then such a thick coat?
- So in the desert it is hot during the day, the wool does not let the sun's rays to the body, it is cool to the body, it's cold at night, then it warms us ...
- Oh, I see ... Why do we have such a bulging lip?
- Well, it is specifically to eat camel thorns. Snatch her lip and mouth ...
- Dad, well, why do we have humps on the back ??
“So we are the ships of the desert, we walk for a long time through the desert expanses without food, without water, and in the humps there is food and water ...”
- Ah, well, yes ... But only one thing is not clear: why do we need all this tuning in the Samara Zoo ?!
Much later, when, for various reasons, I stopped participating directly in the development of our corporate product, I came across two wonderful articles:
Do not let Astronauts of Architecture intimidate you and
Kostylny programmer . They brought me a little closer to the formation of the current attitude to dogmas and paradigms.
Then I began to notice a similar situation in other areas other than IT. In finance, perfumery, cosmetics, accounting systems, and even English courses for teachers - everywhere there were micro-pseudoscience of varying degrees of development and maturity, puffing up cheeks by people who studied these pseudoscience, as well as paid tuition and certification. In some cases, the situation was still not obvious and more cunning. For example, a well-known perfumery manufacturer organizes training and certification in Paris for the best seller of the month / quarter / year under the pretext of a competition. Naturally, sellers and consultants forget about the existence of other brands a month before the competition, and another couple of months after (I want to spit on with new knowledge). And sometimes this situation takes on an even more ugly form: when the presence of a certificate of training for some banality becomes either obligatory or highly desirable. Let me remind you, now I'm not just talking about IT. For example, there is some kind of international certificate for teachers of English, where one of the test questions sounds like this: “You ask a student to get a ruler from a portfolio and say its name in English. What is this action called? ” That is, they invented their own term even for this!
In general, the hypertrophied manifestation of the cult of unnecessary knowledge in my understanding looks like this: one talented or even just a sane person does something well, further in the process of developing his technology / idea some corporation picks up the topic and decides what can be earned by that the others also want to learn it. They create a pseudoscience with a bunch of terms, so that even a moron, having learned the terms and learned this science, can repeat the same thing, and then begin to sell the training and organize the “puffy-cheek” community. But then the saddest thing happens: the cause-and-effect relationship is lost, and even if you have common sense and are able, just on the basis of this very common sense, to generate a solution to the relevant task “on the go”, this community will either reject you or not seriously because of the ignorance of this pseudoscience and its terms.
Nevertheless, the awareness of the above situation did not bring me closer to a final understanding in the area of ​​"what is good and what is bad" in the construction of its product. Also, I didn’t quite understand how, when creating it, it was “right” to organize work with a technical task for myself and other programmers, how ideally it should be detailed for the maximum flexibility / efficiency ratio, whether it is necessary to work out the architecture in detail, draw UML, etc. After all, when creating a new product, I choose technologies in which I am not a specialist, and I can neither prioritize architecture nor qualitatively assess terms. Another irony is that when I become a specialist in this technology, the next task will either be on another technology, or the current one will evolve so that I will again feel like an amateur.
I understood that there was some logical explanation for all this, but I could not formalize it. And then the music came to help and put everything in its place. There is classical music played by a symphony orchestra. There are an architect (composer), PM (conductor), a detailed technical project (musical score). And there is a rock rup that creates and plays music in a completely different way. Can you imagine Brian May asking for notes from Freddie Mercury to play Bohemian Rhapsody? In a rock band, everyone understands each other completely and makes their contribution to the performance at the expense of skill and talent. As a result, I came to the conclusion that there are three approaches with different rules - an orchestra, a rock band and a jazzman. If I make any framework or complex product with a hundred programmers, then I will have to work according to the rules of the symphony orchestra. For a startup with a few people, it’s enough to be played by a rock band, but with super-talented musicians. Well, a lone saxophonist does not prevent anything from going into full improvisation and doing everything as it is convenient for him personally and for the sake of the speediest release of the finished product. Another question is that it is impossible to improvise without an absolute ear for music - it will be a complete mess, but I like it (in the form of many years of experience and professional “flair”, where you can drive a crutch, and where it is better to make a system decision). With this, I calmed down, chose the jazzman option for the sake of flexibility and speed of decision-making, and began work on the product. How I chose which product and under which platforms to do, which toolkit to use, what dead ends I went through - read the following articles, but for now you can evaluate the result -
itunes.apple.com/ru/app/offline-brauzer-megalenta/id1013837150 .