Review of the most interesting reports of CodeFest 2019: version of True Engineering

    The tenth CodeFest conference was held in Novosibirsk. The program was very rich: ten sections on development, testing, design, management and development. True Engineering employees have been outlining the reports for two days, now we want to share this benefit with you.

    We hope that our review will be useful to those who will watch videos of performances. Part of the presentations has already been published in the public domain, so we have supplemented some reviews with links to them. Reports are sorted by sections.


    How to show the interface to someone who does not see - Valeria Kurmak

    We were hooked by a report by Valeria Kurmak from Sberbank on optimizing software for people with disabilities.

    The main message of the report is that in fact there are a lot of people with disabilities. And these are not only absolutely blind people. These are all those who can no longer see as clearly as in youth: our grandparents, fathers and mothers. These are our friends who temporarily lost their ability to work due to physical injuries. This is from 2 to 8% of men who have difficulty in perceiving colors.

    But such people do not need a separate version of your application - everything has been invented for a long time. By corny making your website scalable, you make it accessible to millions of people. Using standard controls or semantic layout, you greatly help your users.

    Valeria together with the employees of Sberbank made an excellent guideline on this topic. The guideline is divided into several short tutorials for different roles:

    • for designers
    • for iOS developers,
    • for Android developers,
    • for web developers
    • and even for managers.

    You can find it here .


    TCP is dead or the future of network protocols - Alexander Tobol ( presentation )

    Tightly packed with useful knowledge, the report on the TCP protocol device and the problems that, in the conditions of modern mobile communication networks, lead to the utilization limit and channel capacity.

    At Odnoklassniki, the delivery of video content and news feeds plays a crucial role in the success of the service. With a small number of lost packets and an increase in network latency, its utilization drops to almost 50%. To solve the problem, the company is sawing its own protocols for each type of traffic to replace TCP. (Google does the same thing, QUIC). Great respect to the guys for not being afraid to shake the fundamental foundations.

    The new http / 2 standard also runs into the neck of TCP, so http / 3, which runs on top of QUIC, is the right target for client-server systems.

    As a result, Odnoklassniki received a good increase in system performance. The demo was visually visible multiple acceleration of tape loading. Odnoklassniki was also the first in the world to broadcast live HD-quality video. Example: for some reason, American truckers love to broadcast road recordings to the network. Apparently, they use it as a DVR.


    Refactoring: we agree, plan, implement! - Alexey Kataev ( presentation )

    Alexey claims that over the ten-year history of Skyeng, they have never rewritten their application from scratch. How do they maintain code quality? It's simple - they refactor :) The report itself is not at all about what technical means to do refactoring, but about how to convince the manager of his need.

    The first thing developers should do is to stop complaining that the application needs to be refactored for a long time, and instead find a common language with the manager and agree. In short, set up the technical debt tasks in the backlog of your project in advance, evaluate, prioritize them and contact the manager with specific proposals. And be sure to read Gavin Kennedy’s book, You Can Agree on Everything!

    The second important idea of ​​the report is not to lie. Do not include refactoring in feature ratings. This makes the development process less transparent. You run the risk of wallowing in refactoring, as you will no longer track the time spent on it.

    Alex also told how they use telegram bots to plan refactoring, and also shared a couple of checklists and a list of principles of his team. I would like to thank him again for one of the most useful presentations on Codefest X.

    About engineering chauvinism: disgusting to be a manager - Eugene Kot

    Premium report, theater troupes nervously envious. The speaker is very talented, it is worth paying attention to his other reports. A wonderful presentation in the form of a story about the psychological problems of the transformation of an engineer into a team lead.

    Recommended for regular viewing for those who choose between management and deepening in architecture and ask questions:

    • If I become a team leader I’ll be unclaimed
    • If I become a team leader, I won’t be able to code,
    • If I become a team leader, then where should I develop.

    The speaker answered them, and also introduced the abbreviation "S.O.S.O. Syndrome": fear, despair, shame, alienation. And further on all points I made out where these emotions came from and how to deal with them.


    iOS Everything is MVC: why do we need other architectures? - Evgeny Rtishchev

    A very rich report that MVC in iOS is perceived by many as not quite correct, and that this is actually not evil. Interestingly, a few years ago, Eugene made a report against MVC on Mobius , and then re-realized everything. He looked at different types of controllers with examples from the SDK, the advantages of this architecture and explained where the roots of the problems that stand out when working with MVC grow.

    Tips that Eugene shares:

    • use 4 types of controllers,
    • share responsibility
    • avoid cohesion
    • design from model,
    • quick and easy interface changes,
    • massive view controller - a far-fetched problem.

    It is especially interesting to listen to the report when you have already tried MVCC, MVVM, MVP, VIPER or other architectures and share the pain and the advantages that exist in each of them. It makes me think more and more that, by and large, it’s not what the architectural pattern is called.

    iOS E2E UI tests: a lot, green and on Pull Request - Artyom Razinov

    Artyom talked about how by reducing the volume of mandatory regression tests and increasing the volume of UI tests, the team significantly reduced the time of regression testing of a large application and began to be released more often.

    It was useful to hear about techniques and techniques that can be used to achieve optimal results. I especially remember these:

    • evaluate the appropriateness of UI testing based on the frequency of releases and the time for updating the tests,
    • Impact analysis, so as not to run all the tests every time,
    • regular full runs,
    • parallelize tests to speed up.

    We recommend this report to mobile developers.

    Android Instant Apps, two years later - Evgeny Saturov

    In 2017, a tool such as Instant Apps was introduced - in simple terms, this is an application with instant launch. Surf got early access to this feature.

    Eugene said what problems they encountered in the development and testing process. Firstly, there was a harsh SDK issue that came with the zip archive. Secondly, there was no documentation. It was also necessary to withstand stringent requirements in the application architecture. The application could not weigh more than 3 MB and it had to be divided into modules.

    After development, two years later, Google introduced another solution - Android Dynamic Feature Delivery, which allows you to do about the same thing, but with different restrictions. The new SDK is also not particularly stable, difficult to test and has a bunch of bugs and crutches. One of the main limitations is that you need to give Google your key, with which the application is signed.

    Eugene shared tips on what to read and how to solve all these problems. He talked about his experience using the Dynamic Feature Delivery, summarizing that it is still a raw thing.

    Android Tools for solving problems in a large team - Vladimir Tebloev

    Sberbank has a large Android development team - more than 100 people work on one project. At some point, the team began to grow, and the developers had to somehow control. In the report, Vladimir shared a set of practices and tips that can help in interacting with the team, even if fewer people work there.

    For example, new employees are always assigned a mentor. For beginners, there is a knowledge base: guides on design, architecture, code convention, how testing and documentation are organized in Confluence - everything is written down to the point of cloning a project.

    This does not mean that everything is limited to one stack. For new technologies, the company develops good and bad practices in separate modules, and then makes a guide on the use of this technology. The process is structured as follows: we tried, wrote practices, proved the need for this technology, after which the team takes it into use.

    An interesting idea of ​​Vladimir that sometimes a dictatorship is a necessary evil. If you listen and try to please each of 130 people, nothing good will come of it. Sometimes you need to prescriptively say, “We do it.” This certainty is also broadcast by these guides.


    How artificial intelligence turns into new electricity - Ivan Yamshchikov

    The report is from the very Ivan Yamshchikov who participated in the creation of the neural network, which wrote several songs in the style of Yegor Letov.

    The author believes that artificial intelligence will change our world as much as it was once changed by electricity. The main practical message of the report was that it was time to start thinking about what could be automated using artificial intelligence. At one time, electricity made it possible to automate many industries that previously used physical force. Now, artificial intelligence can replace people in intellectual activity, for example, in working with documents. Artificial intelligence does not get tired, large amounts of data are accessible to it and it is not mistaken.

    The report gives you the feeling that the future is already here.


    Immersed in the Web - Luis Diego Gonzalez Zuniga

    The speaker spoke about what immersive web is (immersiveness - creating the effect of immersion, presence). Samsung browser, according to its statistics, ranks fourth in Russia in use. It sounds strange, but perhaps this is due to the fact that the browser is installed by default on the new Samsung.

    In general, we are talking about embedding virtual reality (WebXR) in browsers. The result is a browser with a wide range of features, including various gamepads, joysticks, etc. right inside him.

    Gonzales also talked about the differences between VR (virtual reality) and AR (augmented reality), and how together it forms XR. According to him, "XR covers platforms and content where the user can take digital objects for reality, or, conversely, see physical objects present in the digital scene." The speaker also showed how to enable virtual reality mode in the Samsung browser. During the demonstration, I caught a bug, but assured me that “everything worked before the report”.

    As a result, what is shown looks really interesting. We expect that such decisions will go to the masses and it will be possible to install the application or browser on any smartphone.

    Until the report is posted, Samsung’s immersive web can be found here .


    Trends of the impossible - Evgeny Chereshnev ( presentation )

    Evgeny Chereshnev - IT researcher and journalist, participant in the TED New York conference. The report was perfect for opening the Future section. In it, Eugene touched on topics that we do not think about in everyday life, but which are waiting for us in the perhaps near future. In general, it was about innovation.

    There are several basic thoughts:

    • We are all unique from birth, but the system adjusts us to the community. A person who was able to keep the child inside himself retains the curiosity inherent in children, and with it the opportunity to seek and invent something new. Such people are referred to in the report as "the child who survived."
    • Innovation is possible only in small companies, startups. Large companies, like people, with age and growth lose their ability to introduce something truly new, because it is too risky for them.
    • The problems in innovations in Russian startups are primarily connected with the fact that “a Russian engineer is usually not about money,” which means that many companies burn out at the very beginning simply because they think in a category of “do it cool,” but not profitably. Chereshnev says that the product must be able to sell - "first money, then code."
    • One of the key thoughts of the report and Codefest as a whole is that artificial intelligence will be everywhere everywhere. Robots will gradually begin to displace a person, because there is no need, for example, for a worker in a factory if a robot does it better and does not need to be paid. In response to such trends, the speaker says that human DNA is the same code, data, which means that you can work with them. The only way for humanity to continue to exist in normal mode is to transform itself, to improve as a code. Eugene himself, for example, has already implanted a chip in his hand. Who knows, maybe in 50 years we will all be a little cyborgs.

    Further, Eugene has already talked about more pronounced trends - what will develop in the near future:

    • Eco-energy
    • Automated medicine (the bot will respond to patient complaints, so the need for a visit to the therapist will disappear),
    • Omni education (in the near future, a person will not have a specialty, he will have to have several specialties at once in order to switch between them on time).

    Eugene ended his report by saying that innovation is inevitable and evolution "extends to everything, living and nonliving."

    Why being good for everyone is not too good. And it won’t be - Alexander Orlov

    “Why do you get bombarded from the words and actions of some people? Why can't you insist on talking with someone? ”

    This is a useful report on reality maps, on constructive confrontation, on the needs that we satisfy in the process, on how to switch from irritation to interest, with“ I'm right and you don’t ”to“ why is it like this with you? ” It will be useful to everyone who interacts with other people, that is, generally to everyone!

    It's funny that the very next day the technique that Alexander talked about came in handy: before drawing conclusions and being upset, you can directly say about your expectations and ask why the person you are talking to or thinks differently. Then it may turn out that there is no problem either, but you just have a different vision.

    Non-technological problems of “smart” products - Andrey Servant ( presentation )

    The report was devoted to the fact that it is not enough to come up with something innovative, whether it be artificial intelligence or unmanned vehicles - it is important to prepare people for the fact that innovations are not dangerous and will benefit society.

    Sebrant identifies three main points about how to prepare people for innovation:

    • you don’t need to talk about the product also, as you would tell your colleague-developer about it - to a person who is not immersed in the topic, this is not clear,
    • in communications with consumers, emphasis should not be placed on rationality, but on emotions, to make the product a source of emotions for the consumer,
    • the end-user product should be magic, not an instrument.

    Unmanned vehicles are an example of this innovation. Now it’s easy to find on the Internet how many fears such cars cause - they are unsafe, they will move people, get into accidents, they are not made for Russian roads and so on.

    Sebrant says that such cars have become "new electricity" - they were also afraid of electricity, and now we can not imagine our life without a commonplace light bulb.

    He talked about the experience of managing emotions on the example of an unmanned taxi developed by Yandex. The first tests on the roads were carried out with a driver inside, who just sat and did nothing - the car drove itself. Such a demonstration did not impress unprepared viewers. The presence of a person inside the car suggests that it is he who controls the car.

    The following tests were carried out at a closed training ground, where it was possible to start the car without a driver. The opportunity to experience it was offered to all the same ordinary people who were spectators last time. The effect of a moving car with an empty driver's seat is difficult to describe. People looked at the same car in a completely new way - the very effect of “magic, not a tool” was created.

    Three little cockroaches on the way to a great future - Maxim Dorofeev
    ( presentation )

    The report was significantly different from other reports in the Future section: it did not talk about the future, but about what we face every day - why we get tired, why we do not have time to do something, why we are not growing, etc. The main causes of these everyday problems Dorofeev calls "three cockroaches."

    1. The first cockroach: "This is not urgent, then later." The mistake of many people - there are urgent tasks, there are not urgent tasks. The sequence of their implementation is most often determined solely by an indicator of urgency, but not of importance - this is wrong.
    2. The second cockroach: "Now I’ll figure it out with a trifle." You come in the morning and begin to do little by little tasks, each of which takes about 10-15 minutes, and as a result there are a lot of them and there is no time left for something really important.
    3. The third cockroach: “What if there is something urgent there?” Surely the situation is familiar to everyone - you work and at the same time someone sends you a letter or a Skype message with some kind of “important” task - you are distracted, everything has been done and nothing has been done. There is also an effect of false importance - in the moment the task seems more important to you than it is, you send it to someone further, to that person it begins to seem even more important. At the end of the chain, a frightened developer begins in a panic to quickly and quickly do this initially unimportant task.

    Dorofeev says that we all need to avoid meeting with these cockroaches in work and in life in general.

    An important idea in the report is also the division of tasks into “red” and “green”. “Red” tasks are urgent tasks, for the failure of which will be followed by an inevitable punishment. “Green” tasks are interesting and important tasks for development, which are usually postponed due to fluidity. It is better, having the “red” and “green” tasks, to do both at least somehow, but to get a more useful result than to do only the “red” task, but good.

    In general, the report contained a large number of practical advice for every day, filed very accessible and with humor. Such reports need to be watched.

    The car of the future. We analyze Tesla for engineering solutions and breakthrough ideas - Igor Antarov

    The report is almost impossible to retell in text format - the presentation contains a large amount of materials, a story about Mask, about what he does except Tesla, etc. Let's go through the most interesting facts:

    • Electric cars can take over the world for 15 years,
    • The economy will be economical and environmentally friendly - thanks to electric cars,
    • The difference between Tesla and other electric vehicles is that it is the first electric vehicle that is not only environmentally friendly and economical, but also stylish and powerful,
    • Mask had a “secret plan” for the development of Tesla: build sports cars, use the money to create an affordable car, and while doing this, also provide opportunities for generating electricity with zero exhaust.

    The plan was continued:
    1. Create solar roofs with a fully integrated battery.
    2. To expand the product line for electric vehicles to cover the main segments.
    3. Develop an autopilot that is 10 times safer than manual driving thanks to the training of the entire fleet
    4. Your car makes money for you until you use it - public car sharing.

    Tesla at the moment already knows how to ride on highways and traffic jams, park (with a driver), change lane, offer a lane change, give way to rebuilding cars, stop at a red light (will learn soon).

    Tesla kills retail. Perhaps soon there will be no dealers and car dealerships - the car can be bought on the Internet, and it will come to you.

    This electric car is an example of true Continuous Integration. The car is no longer a car, but an IT platform. I wonder how many years later we will have the position of automotive developer?

    30 professions of the future. 10 professions of the past. 2 professions out of time and space - Evgeny Chereshnev

    The report is from the same Eugene Chereshnev, who on the first day opened CodeFest "Trends of the impossible." This time the report was a closing keynote, turned out to be easy to read and very unusual.

    When people usually talk about the professions of the past, future and present, fairly standard options come to mind: professions of the past - those that will replace the robots (places in factories, cashiers, etc.), professions of the future - something with development, robotics, eternal work - teachers, scientists and other irreplaceable specialties.

    In the report of Chereshnev, everything is not so. To understand this, just look at the lists that he proposed.

    Professions of the past were completely from the past:

    • Chimney sweep
    • Alarm clock people
    • Bowling pins in bowling
    • Pioneer counselors
    • "Chelodars" - people who worked as radars until the last

    Now let's move on to the professions of the future:

    • DNA engineer
    • Farmer human organs
    • Cyber ​​pet developer
    • Infrastructure developer for driverless (by the way about Tesla above)
    • Colonist of Mars
    • Cosmo Stewardess
    • Deep Space Comms engineer (establishing communications in space)
    • Colonial troops
    • Asteroid drilling operator (new perspectives for students of the GGF NSU)
    • Drifting Cities: Architect, Captain
    • Roy / Dyson Sphere Engineer
    • Cybersecurity officer
    • Police: Artificial Intelligence Control Officer
    • Police: prevention officer (people can be arrested because they are prone to crimes on biological indicators, but have not yet committed them)
    • VR-military, operators (as in Avatar, only in life)
    • Full-Time eSportsman (to manage the avatars discussed above, future operators)
    • VR Architect
    • Time-travel Experience Engineer (not “back to the future” or “butterfly effect”, but rather the past restored by artificial intelligence to just see what was there)
    • Talent Manager (aka HR - an eternal and necessary profession)

    And finally, eternal professions:

    • Scout / Counterintelligence
    • Mathematician / Physicist (generally, scientist)
    • Writer
    • Artist
    • Archaeologist
    • Philosopher

    The report was light, interesting and fantastic, and ended with a sweet note that no matter what time we live, the profession of parents will be the most popular and important profession.

    Also popular now: