⬆️ ⬇️

C ++: how not to make a movie is not for everyone

image

The cinema screen went out for a moment and showed the first credits. Very scanty applause came from the dark hall. It begins to seem that the film ended very few people liked: the sound can be counted ten applauding spectators ... But then the light comes on and it turns out that everyone liked the movie. A rare group of spectators is sitting in the half-empty hall, and everybody claps ... It was a closed show, which is usually referred to as “cinema is not for everyone”.

What does this have to do with C ++? Perhaps the most direct ...



C ++ language is very many-sided and variable, which gives a huge scope for creativity. “The Art of Programming” is a phrase that is often found in C ++ articles and literature. But how good is it? The development of a software product by individual developers begins to resemble a competition in skill between the developers themselves ... Constructs and interconnections are created that become understandable only to a rare number of “experienced” programmers who are familiar with advanced language development trends. The application of what may soon be included in the standard ... where do without it ?! The result of all this is a poorly maintained software product.



Complication of structures inevitably leads to errors, and only a highly skilled programmer can correct them. But the paradox is that “C ++ stars” do not like to be engaged in code maintenance, let alone stranger. And now the company, having spent substantial funds on development, becomes the owner of something like a unique car, in which it is cheaper to throw out the entire engine and replace the spark plug to replace the spark plugs, as the candle replacement wizard is very expensive and difficult to find.

')

Of course, what I described is somewhat hypertrophied, but this is something that every leader of the C ++ developers team, for sure, has come across. When product development is no longer for the sake of the product itself, but for the sake of its inner beauty, understood only by the developers themselves. Sometimes it comes to the absurd. The amount of resources is spent on elementary tasks to do everything “right”. As advised by the Guru. And then it turns out that this increases the volume and number of errors so much that it takes even more time to debug.



I can not quite clearly name the reason for what is happening from the point of view of psychology or common sense. But I can give you one analogy. I think many watched Disney cartoons. Did you know that among artists, these cartoons are considered something of consumer goods. Like, they are not art. Because at the time Disney developed a greatly simplified and formalized technique for producing such cartoons. This is what made it possible to create full-length tapes on which hundreds of different artists worked and didn’t cause the viewer to ask why the characters are different in different episodes.



Also in the production of software products. In order for the team to work on a large project, it is necessary to simplify the approach to development. It is required to minimize the art of one programmer and move to a new level. When admiration is caused not by what one person did, but by what the coordinated team did. It seems to me that this should be the motivation. Creating a product that will be successful among ordinary people, not only among professionals.

Personally, I do not want to be the director of the film, which was told at the very beginning. All his life he taught how to make movies, and in all this time he made a couple of films “not for everyone”. Art. Among his, he may have achieved respect. But for me, as a person far from “professional” cinema, his words about how awful and vulgar Avatar and its creator Cameron sounded, to say the least, are ridiculous. And I am sure that many in my place would have experienced similar emotions. How can a person who has never made a movie for all his life talk about popular cinema? And also among programmers. The desire to do something special interrupts the desire to work in a group and get a working product. Instead of following a simple and well-known way of getting results, many people strive to find their own way and invent bicycles several times: “I made my XML parser. It is 3 times faster than open TinyXML ”. And do not care a person that nobody needs this speed and will not be noticeable to load settings at the start of the program.

We have a lot of talented people, but each is talented in his own way, each striving for self-realization, not always paying attention to the rest of the team. And this is probably one of the most difficult tasks in software development. Balancing on the verge between the manifestations of talents of individual programmers and the standardization of the process. And how do you solve this difficult task? How to win over yourself and how to show the right path to other developers?

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



All Articles