
It's about technical standards, i.e. protocols, specifications, patterns, conventions, interfaces, data formats, notations, and other industry and especially internal standards that we use or invent when developing software systems. Obvious things I will not repeat, everyone knows that standards are good and right, that they contribute to the unification and, therefore, compatibility of systems and their modules. I hope my generalizations of experience, in the form of “notes for myself,” will be useful and non-trivial.
The lower level is fixed by the standard if, on the upper level, the diversity is expected
Explanations : in IT we deal with multilevel systems, and having fixed one level with the rules (having reduced the degree of freedom at this level), we immediately increase diversity and get additional freedom at that level that directly relies on the fixed one. For example, the emergence of a mass of diverse and interchangeable peripherals was due to the introduction of standards such as RS-232, ISA, PCI, RJ45, SCSI, USB, etc.
Useful conclusions:- The more variety we have on one layer, the less variety on it can be built from above. Under the diversity here you need to understand - entropy and the lack of unification.
- On the standard, you can ramp up the standard, but its stability will be less or the same as the basic standard.
- If you want to create diversity, move one level down and strengthen standards in this level. For example, if you want complex shapes, take a library of components, and not rivet forms from anything. If you want tens of thousands of forms - fix the freedom of their components even more - make a form generator. And if you want to raise the enthusiasm and self-expression of programmers in a team - consolidate clear conventions of writing code and architectural principles.
Simple can only cope with diverse
Explanations : You can create a stable layer on an unstable (disordered) basis, but its essence should be rough processing and simplification. This is similar to the fact that in a city where the hard surface of the road, there is a variety of shoes, and on the road and mud - only the most simple and rough, only boots fit. An example from IT: on the basis of web standards, a variety of sites of different design, structure, functionality and navigation have been formed. And they could only be combined by search engines, which roughly analyze everything as text, discarding diversity in functions and design. Large streams of unstructured data can be digested only by schema-free, document-oriented DBMS and file storages that handle everything in rough, large chunks, without going into details.
')
You want to exchange if - specification invent
Explanations : it is impossible to come up with an ideal standard, but you always want to strive for this. As a result, having fixed the specification in the current level of our understanding, we always struggle with the idea that we have not considered something and can be done better. It seems that by issuing such a standard, we are exchanging, and not having achieved the desired.
Useful conclusions :
- The main thing is to understand that it is impossible to get rid of this feeling, and it should not stop.
- If you are not exchanged, then you lived in vain, only dreaming about the ideal.
Standard - this is utter arbitrariness, knowledge is not justified
Explanations : There is a common misconception that the norms, standards and laws are based on the scientific method and are justified. Although in reality, any rules are the result of someone's arbitrariness, very often based on self-interest of certain interested parties. To understand that this is arbitrariness, you can always ask questions such as these:
- Is it possible otherwise?
- Is it everywhere, or somewhere else?
- Why so, and not otherwise?
For example, why somewhere the order of bits (or bytes) is accepted from high to low or from low to high? This task is the purest argument of "blunt-tips" (big-endian) and "little-tips" (little-endian), in English the order of bits and bytes is also called. Why is the square bracket taken, not round, angular or figured? Of course, it can be said that this has historically taken shape, but initially there was arbitrariness. It can be said that for the adoption of just such a decision, these “here and now” parameters and criteria were taken and, based on their analysis, we came to an optimal solution. But why these parameters and criteria were considered, and not some other, or who would not answer, because engineering thought is the rationalization of intuitive insights, but everything can be justified.
Standards who controls, because he is unrestrained in his pride
Explanations : we know from historical analogies that every ruler of antiquity knew that it was more effective to introduce laws than to fight. Napoleon fought Britain with the introduction of a global system of weights and measures and strengthened his country with a well-thought-out system of legislation. Genghis Khan set the standards for express courier service between the remote parts of the empire, the United Kingdom was able to create a postal service with similar speed and reliability of delivery only in the XIX century. I will not even give the IT examples of the war standards. The standard is the most effective means of fighting IT competition.
Useful conclusions : obvious.
Standard - not to think every time he allows
Explanations : in addition to the positive aspects of standardization, do not forget about the negative ones. The introduction of any canonical rules always leads to the fact that the collective, or the entire industry, no longer raises the question “why?”, “How?”, “Is it possible otherwise?”. This allows you to focus on solving other problems, for which, in fact, it is necessary to introduce norms. But this also leads to stereotyped thinking, inertia and slowness of systems. It is always hard to get rid of the old and good specification, even if it has long been irrelevant.