📜 ⬆️ ⬇️

Software development as the most important of the arts (immediately after the movie)

image Many sources mention that programming is creativity. Others compare it with construction. And the third with the cultivation of the garden . But in general, agree that it is more like art. And as you know, the most important art for us is cinema.
Have you ever thought about how similar are the processes of cinema art and software development (since we consider ourselves to be creative people)? In both these cases, the result is a work of art ... or filth, which the end user will not be satisfied. To further understand the comparison, let's take a few steps from the film to the app.
First step. The closest relative of the film - cartoon, animation. But by and large, most modern films are inherently cartoons.
Next step. Cartoons (especially modern ones) are madly similar to video games. They lack interactivity from the behavior of the viewer. In turn, modern games are only slightly inferior to the quality of images for cartoons and even films.
And here we are already in the development of games, from which it is close at hand to the production of applied software systems. The goals are different, but the process and approach to development are the same.
I propose to look at the software development process through the lens of filmmaking. Perhaps someone will just amuse themselves by comparing and this allegory, while others will begin to more understand and appreciate their role in this process.
(I’ll say right away that I didn’t shoot and didn’t act in the cinema, but I participated and participate in the development. It’s a fantasy - don’t judge strictly.)
So where does the movie start? ... from the viewer.

Viewer


Well, everything is simple: the viewer is a user. There are different contingents of users and different needs. Someone wants to play, someone wants to draw, someone wants to work.

Cinema


This is where the user uses the product. In our case, this is the computer or other device where the application is installed. The newer the equipment, the better and more convenient the user will be.
And the larger the screen, the more pleasant the user!
')

The distributor


This is the one who brings the product to the user. In our case - it can be an integrator or a seller. His task is to distribute as many copies of the product as possible and bring it to the user. The faster he is, the more effective.
Here you can also enter the implementer if the product was intended for a single customer.

Publisher


This is the company that launched the product to the market or the customer with whom the development contract was signed. It is under this label that the product will be known, or it is this company that will declare that it uses a superfood system.
It is the “publisher” who pays money to the developer in the hope of a good product. And it is he who is interested in making the product available to the user.

Producer


It is the organizer of the whole process, from the idea to the user. Usually, this is a project manager. He represents the company of the developer, not the customer, because the customer receives the product, and the “producer” - the money.
The project manager represents the customer in the development team and represents the developer when communicating with the customer. It was the “producer” who agreed with the “publisher” on the creation of the “film”.

Script Source


This is the source of ideas for the script (books, comics, fairy tales). In development - these are technical requirements presented by the customer or ideas proposed by the producer.

Scenario


This is a document on the basis of which the rest of the action will take place. This technical task is an important stage in the interaction between the “publisher” and the “producer”. Those task is based on the requirements. It is prepared very thoroughly, to take into account all the features, including architectural. The “scenario” includes a list of the main “heroes”, their behavior and interaction. It is desirable that the “script” does not change significantly during the work on the “film”, but no one is immune from this.

main characters


These are the main modules of the developed system. That basic functionality which will be used (for the sake of which all this was started). The characteristics of the “main characters” should be carefully described and defined. Their functionality must be reasonable and comply with the law (or "laws of the genre"). They must interact with each other, and not be detached. Again, it is important not to mix them, but to preserve individuality (the component structure of the system) - because a different “spectator” falls in love with his “hero”, that is, he uses the functionality of only the task he needs.

Producer


This is the person who will lead the development. Often, "producer" and "director"
are one person, but it is not necessary. It is the “director” who is responsible for what and how it will work in the system. He has to represent in what sequence the “spectator” “sees” the “main characters” and how they will act on the screen.

Operator


And this is a usability and design specialist. His task is to make a high-quality picture pleasant to the “viewer”. But not only pleasant, but also dynamic. Also at the right time and place on the screen should be visible and accessible characteristics of the "heroes" and their associated functionality.

Preparing to shoot


Here in the film industry a lot happens: detailing the script, splitting into episodes, scenes and storyboard, designing and sewing costumes, building scenery, searching for filming locations, creating equipment and technologies, test shooting, etc. That is, everything that immediately begins: "Camera! Motor!"
In our opinion, it sounds like this - pre-project research and the creation of a system layout. One of the most important stages.
“Director” receives the script and / or prepares it himself. Then details it to the "director's script," works out in detail each requirement.
Of course he does not work alone. He has a bunch of "director assistants."
Leading analysts should explore the subject area ("historical era"), search through archives and review a bunch of previous projects. All this should be analyzed and at the exit have a detailed description of how the “hero” looks and acts, as well as a description of all the circumstances in which he falls. As a result, "Episodes" are formed.
Together with the “assistants” and “operators”, the “director” breaks the “episodes” into “scenes” where the action signs in more detail.
At the same time, the technical capabilities of the software platforms are investigated and the most appropriate one is selected (or its own is written). The system architecture and interfaces of interaction of components are laid. It is important that the architecture and the platform does not change throughout all subsequent "filming."
“Special effects” (technical chips) are invented, distinguishing the product from others on the market (it’s necessary to stand out for something).
The overall design and style of the user interface is also drawn here.
A system layout is formed, which is agreed with the customer and / or project manager.

Episodes, Scenes, Storyboard


"Episodes" are internal stages of development. They must be complete and sufficient for demonstration to the “producer” and / or “publisher”.
“Scenes” are iterations within the stages. Each scene is also complete and implements a specific functionality of the modules.
"Operators" should cover the mockups of frames in each "scene", that is, make sketches of the interface of all dialog boxes. This is the "storyboard."

Actors, extras, technical staff


And this is one big development team - all those who participate in the process: programmers, analysts, testers, designers. Inside a large team, you can select smaller groups and give them the development of a separate “hero” - he will be their “avatar”. Here you can already see how a genius programmer discovers his potential in a particular module. The development team may come up with some chips for their "hero", which will be absent from others.

Filming


Setting a specific task. Writing code. Testing. Acceptance.
This is followed by the “director”, in whom a “film” is slowly forming in his head (if he hasn’t been formed yet). If something went wrong, the scene is immediately re-shot.

Editing, editing, post-production


“Director” together with the “operator” edit the order of transition from one functional to another, so that the “spectator” understands what is happening and what to do next. At this stage, prompts are added and / or the interface is simplified, the elements of screen forms are functionally grouped.
The interface design is brought to mind, icons, graphics, backgrounds are drawn. Written documentation and help.
Finally, the “About the program” window is made into which the “titles” fit. :)

Voice acting


This is the localization of the application for different users and languages. Used only for widely distributed applications.

Promotion


"Promotion" begins long before the development is completed. "Producer" wears a "publisher" screenshots of the system, shows the individual "scenes". And the “publisher” accordingly “warms up” the “spectator” with various “teasers” and “trailers”: “that they say we will have a cool system soon !!!”
When the development is over, a presentation of the new system is launched, to which representatives of the “publisher” are invited and several “viewers” ​​are the “pre-premiere show”. After this show, final touches can be made and the product is sent to print, after which it diverges in “distributors”.
Also after the release, an advertising campaign and a presentation are held, as well as a series of seminars / webinars.

Continuation


If the "publisher" liked the effect of the product, then we have a chance to release a "continuation" - a new version. It certainly will add new "heroes" or reveal the secrets of the old. Or maybe we will be asked to make a “remake” of some “movie” existing at the “publisher” ?! Even if it didn’t work with this “publisher”, you can always try to find another one.

Total


For the final presentation, I will tell you how “they make films” in our company.

The publisher is the customer. Rental agents are partners and / or the company itself. The producer of projects is sometimes the General Director, but more often the director of the direction corresponding to the customer (we have a business center). Director - project manager. The director’s assistants are the lead analyst of the project and the head of the development department. Actors - developers and analysts. Usually, all the characters are played by one set of actors, but with a small separation according to their functionality. Operators - partly analysts, partly developers, partly design department. First, analysts draw everything, then developers add to their appearance, and at the end they are polished or reworked by the design department :) Technicians are testers and documentaries.
In our case, we try to shoot in the format of the series, when each episode means the release of a separate version. In preparation for the shooting, we choose a platform (from several available) and sometimes do R & D for new elements that will be used in the project. We use Scrum throughout the process and therefore planning and analysis is done before and after each episode.
We have no voice acting. But there is a promotion and continuation.

Like this. Good luck in the film industry!

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


All Articles