About the standards of fresh thoughts a few

Published on November 13, 2013

About the standards of fresh thoughts a few

    It will be 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. I will not repeat the obvious things, everyone knows that standards are good and right, that they contribute to the unification and, therefore, the compatibility of systems and their modules. I hope that my generalizations of experience, in the form of “notes for myself”, will be useful and non-trivial.

    Lower level - you will fix it with a standard if, at the upper level - wait for diversity

    Explanations : in IT we deal with multi-level systems, and having fixed one level with the rules (reducing the degree of freedom at this level), we immediately increase the diversity and get additional freedom at the level that directly relies on the fixed one. For example, the emergence of a mass of diverse and interchangeable peripheral devices was due to the introduction of standards such as RS-232, ISA, PCI, RJ45, SCSI, USB, etc.
    Useful Findings:
    • The more variety we have on one layer, the less variety we can build on top of it. By diversity we need to understand here - entropy and lack of unification.
    • The standard can be extended to a standard, but its stability will be less or the same as the basic standard.
    • If you want to create diversity, step down one level and strengthen the standards at that level. For example, if you want complex forms, go in for a library of components, rather than riveting 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 increase the enthusiasm and self-expression of programmers in a team, fix clear conventions for writing code and architectural principles.

    Only the simple can cope with the diverse

    Explanations : It is possible to 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 road surface is hard, there is a variety of shoes, and on impassability and dirt, only the simplest and coarsest, only boots are suitable. An example from IT: on the basis of web standards, a variety of sites of very different design, structure, functionality and navigation has formed. And only search engines could unite them, which roughly analyze everything as text, discarding the variety in functions and design. Large flows of unstructured data can be digested only by circuit-free, document-oriented DBMSs and file storages that process everything roughly, in large chunks, without going into details.

    Do you want to exchange if - specification of invention

    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 taken into account something and that we can do better. It seems that by issuing such a standard we are exchanging, not having achieved what we want.
    Useful Findings :
    • The main thing to understand is that it is impossible to get rid of this feeling, and it should not stop.
    • If you did not trade, then you lived in vain, only dreaming of the ideal.

    The standard is complete arbitrariness, knowledge is not substantiated

    Explanations : There is a common misconception that norms, standards and laws are based on a scientific method and are justified. Although in fact, any norms are the result of someone’s arbitrariness, very often based on the self-interest of certain interested parties. To understand that this is arbitrary, you can always ask the following questions to the norm:
    • Is it possible otherwise?
    • Is it everywhere, or somewhere else?
    • Why so, and not otherwise?

    For example, why is the order of bits (or bytes) from high to low or from low to high taken somewhere? This task is a pure dispute between “big-endian” and “little-endian”, in English the order of bits and bytes is also called. Why is the bracket taken square, and not round, angular or curly? Of course, we can say that this historically happened, but initially there was arbitrariness. We can say that in order to make just such a decision, “these are these” parameters and criteria were taken, and on the basis of their analysis we arrived at the optimal solution. But, why exactly these parameters and criteria were considered, and not some others, no one will answer, because engineering is rationalization of intuitive insights, and everything can be justified.

    Who controls the standards, because he is unrestrained in his pride

    Explanations : from historical analogies, we know that every ruler of antiquity knew that it was more efficient to introduce laws than to fight. Napoleon fought Britain with the introduction of a global system of measures and weights and strengthened his country with a sound system of legislation. Genghis Khan established the standards for express courier service between remote parts of the empire, the UK was able to create a postal service with similar speed and reliability of delivery only in the XIX century. IT-shny examples of the war of standards, I will not even give. The standard is the most effective means of combating competition in IT.
    Useful Findings : Obvious.

    Standard - He doesn’t think every time.

    Explanations : in addition to the positive aspects of standardization, do not forget about the negative. The introduction of any canonical rules always leads to the fact that the team, or the entire industry, no longer poses the questions “why?”, “How?”, “Is it possible otherwise?”. This allows you to focus on solving other problems, for which, in fact, the introduction of norms is necessary. But this also leads to stereotyped thinking, inertia and slowness of systems. It is always difficult to get rid of the old and good specification, even if it has long been irrelevant.