📜 ⬆️ ⬇️

About resource development pipeline

I have long wanted to somehow write down my thoughts on how best to organize the content of the pipeline and its checks.

In large projects, when the speed of content development and its quality is comparable in importance to the reliability of the code and its stability, and its volume significantly exceeds it, building a good content development pipeline becomes an extremely important event.
In this case, the main thing is to decide for yourself what the correct and good pipeline is.
On the one hand, content producers should be given flexible and convenient tools, and on the other hand, they should constantly monitor that the flexibility does not develop into chaos. Unfortunately, too often faced with situations where an attempt to issue a microscope, led to the fact that they began to hammer nails without ordering a hammer.
At first, I thought that it was necessary to somehow restrict access to the microscope so that those who do not know how to use it could not take it in hand, and then I realized that this is a completely wrong approach. It is much easier to write a few tests for using the tool correctly and catching the wrong use cases, explaining how to do it correctly. This is the only way to correct the main cause of the error, which is not at all in the fact that the nail was hammered by the microscope. In the end, the goal to hammer a nail is fulfilled and it doesn’t matter how exactly, it’s just a pity that time was spent foolishly. The reason for the error in the head of the person who did not think to order a hammer and that is what should be caught and corrected. Teach a person to work properly.
Any prohibitive measures are useless, if you don’t provide human thought with a convenient course, then at first it will accumulate in front of your dams, it will rot and this muddy will break through after a while and flood either the entire project or a decent part of it.
Because a person always follows the simplest scenario, it is necessary to put a huge amount of effort into ensuring that the correct scenario of using the functionality is the most convenient. It is clear that there are always technologically difficult moments that will not go anywhere, but at the same time it is necessary that even there, the right way is the most convenient.
Pay particular attention to complaints from people about the inconvenience of using the right script. The fact of the complaint indicates that the feeling of a great employee is already identical to yours and it protests against inconvenience on the right path and resists hacks and detours. We must respond to such complaints as quickly as possible, because the right way of thinking is our greatest value and it is under threat.
It should be noted here that one of the cornerstones of this system is that error correction should have a higher priority than creating new features and content. Otherwise, all your checkers, builds catching strange situations will not make people think correctly. After all, the correction of the error, the correct use of the feature - read - the correct understanding of the feature in the brain of the content creator - is our most desirable result. It is important that time is short and the person does not forget what he did and why. Otherwise, the concept of right and wrong in his brain will not communicate firmly.
Of course, this system must constantly evolve with the project. If possible, finding the next enchanting "crossing a microscope, a hammer and lawn mower" should be carefully added to the tests. Of course, in an ideal world, it is necessary to think through all this while the feature is still in development, but in real life this is almost impossible to do. Unfortunately (((.
Another worth noting is that you should not get involved in the complexity of checks, because You should always understand that the design may change and some of the restrictions will have to be removed. Therefore, it is better to have many small trivial checks that are easy to rewrite, supplement, or disable if necessary, than a few mega cool, complex checks that you yourself cannot figure out after a month without reading the description. Do you need it? Understand, or rather, remember that you will then explain the consistency of this error to the person who makes the content, which is often never a technical specialist. It is desirable that the very fact of failure of the check almost unambiguously indicated an error. Do not forget, our goal is the heads of our employees, who also want to do everything right, just do not always understand how. Simple checks are easy to get across.
Are you afraid that one mistake will generate a bunch of failed tests? In vain! The more tests failed, the deeper the mistake, the more important it is. This is wonderful when looking at the report, you can immediately assess the scale of the disaster, without getting into details.
Of course, we should add to this a merciless war of duplication. This is one of the worst enemies of all IT. Copying a house in the real world and adding a couple of ryuschek to it, in the real world is equivalent to building a new house. In IT, unfortunately this is a matter of a few clicks. As a result, then it turns out that the foundation of this house is poorly designed and needs to be redone. As a result, often only the original is redone, and the copies continue to carry all the bugs until they are found separately. Awful, but unfortunately a regular situation. If it is possible to take something away with the code, then it is very hard to do this with data automatically.
The only thing that can be done easily is to destroy duplication between data fields. The benefit of this can be done in your own brain. Next, finding potential functional dependencies, it is necessary either to immediately exterminate them, or to make procedures that will implement these functional dependencies. Those. when declaring one of the fields as original, we hard-write the values ​​in the dependent ones, even if someone tries to set them to another value, marking the change as made automatically. Usually a person seeing that his value is reset by automatics, realizes that he is wrong and does everything as it should be.
To the lovers of lovers and lovers to always do their own not wanting to learn, the system must be ruthless. Their heads are unrecoverable errors in the system and it is better to get rid of them. Therefore, their cries about the iron curtain and the prohibition of creativity should not be particularly listen. Creativity is the ability to do beautifully within the specified framework, and not at all as my left heel wants.

Summarizing.
')
The right pipeline should be convenient for proper use and aggressive to the wrong.
Simple checks, simple and clear tools, simple interfaces, they themselves tell people how to do it right.
Incorrect use is stopped as gently as possible, but with no alternative. Circumvention should be extremely difficult. Remember, a person will always go where it is easier, so invite him to the right path, making it difficult for the wrong ones.

Source: https://habr.com/ru/post/54183/


All Articles