GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

Вчера (15.11.2019) был на GDG Tyumen DevFest 2019 https://devfest.gdgtmn.ru/

Первый доклад был Маттео Бруно с докладом “Признания разработчика: как победить синдром самозванца и превратить его в бесценный ресурс”. Доклад был на английском. Мой английский уровня Elemantry. То, что говорил Бруно я понял ну одно слово из 10. И докладчик говорил с каким –то дивным акцентом, я думаю – это испанский английский. 🙂 Я осознал, пока разговорный английский это не моё. Самое интересное, вопросы из зала русских разработчиков на английском и ответы Бруно я понял. 🙂

Как я понял по слайдам Бруно рассказывает историю своей жизни и как он поборол «синдром самозванца» при помощи наставника.

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

Затем я пошёл на воркшоп по Android-разработке Александра Смирнова «Введение в MotionLayout». Все дружно пришли с ноутбуками, а воркшопа не было. У автора доклада, сначала что-то не скачивалось, затем скачалось и не собралось. Докладчик дал ссылку для самостоятельного освоения https://codelabs.developers.google.com/codelabs/motion-layout/index.html#0

Но докладчик не растерялся, доклад в результате был другой, как организовать крупные команды разработчиков при работе с одним проектом. Если команд 1-3 то метод git-flow, вполне подойдет, но как только команд становится больше 5-7, которые работают над одним проектом. Возникает постоянный аврал, потому что релиз не собирается. Фичи разных команд конфликтуют между собой. Так как фичи разрабатываются пару недель. Сильно усложняется code review и тестирование. Т.к. тестировщики тестируют неактуальный код. Увеличение команды тестировщиков, как ни странно приводит к замедлению процесса тестирования. Более подробно Фредерик Брукс «Мифический человеко-месяц, или как создаются программные системы» Поэтому git-flow был выкинут, и заменён на Trunk-Based Development

Разработчики совместно работают над кодом в одной ветке, называемой «главной» (или master в терминологии Git). При этом второстепенные feature-ветки также могут создаваться, но они имеют короткий срок жизни, в среднем 3 дня максимум 7.

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

Основную ветку и тестируют тестировщики и проводят коде ревью перекрёстно разработчики. Участники команды владеют техникой Branch by Abstraction для постепенного длительного внесения изменений в код, а в повседневной разработке используют флаги функций. Т.е. разработчик ставит флаги начало и конец своей фичи, если фича ломает релиз, её просто исключают из сборки и отправляют на доработку. Этот подход позволяет обойти проблемы, возникающие при работе в изолированных ветках, и придерживаться основных принципов CI/CD.

Кстати, докладчик сообщил, что ReactNative не самый лучший выбор для разработки мобильных приложений из-за особенностей архитектуры, и рекомендовал Flutter.

Следующий доклад Анна Курносова (HR, LaModa) “Почему я, технический специалист, заинтересован в онбординге?”.

Проблемы адаптации технического специалиста - не только окружение, доступы и техника - это все еще стеснение, страх, робость, замкнутость. Социализация нового сотрудника в компании как правило исходит с подачи отдела онбординга либо hr, но это не те люди, с которыми разработчику придется работать на постоянной основе. Именно поэтому очень важно выстроить доверительные и правильные отношения в команде с самого начала. IT - довольно замкнутый на себе мир, но его членам вполне можно предложить познакомиться с людьми из других отделов - так у сотрудника будет более целостное понимание задач компании и ее структуры.

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

В компании Lamoda это решено через систему наставников Buddy. Т.е. у новичка есть возможность задать вопрос не только своему начальнику тим-лиду, но и Buddy. Это коллега уровня новичка, которому можно задать любой глупый вопрос и получить такой же глупый ответ 🙂 Есть определенные этапы адаптации от знакомства с офисом до выпить пива в баре. Это всё сделано в игровой форме. Анна как спикер очень харизматичная и мне больше всего понравилось, как докладчик.

Следующий доклад. Павел Юркин (Leroy Merlin) “От монолита к микросервисам. Rebuilding Leroy Merlin Russia Publication System.”

Доклад о том, как распиливали монолит на микросервисы и что из этого получилось. Французские программисты написали софт для компании Leroy Merlin, который для одного магазина максимум для страны хорошо работал, но вот как только компания вышла на международный рынок и выросла в десятки раз у софта начались проблемы с производительностью. Первое желание у программистов было убить весь этот говнософт и написать новое красивое и элегантное. Но нельзя, т.к. бизнес работает, поэтому пришлось делать операцию на сердце на работающем сердце.

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

В результате они взяли кусочек выпили его в микросервис, написали API, внедрили и т.д. Всё было хорошо, пока не появился целый зоопарк из API. А фронтендерам из разных стран нужно было тоже самое, но только с «перламутровыми» пуговицами, например, другой формат даты. И они заколебались дорабатывать и перерабатывать API под каждую конкретную хотелку. В результате они написали собственное ПО для графической разработки кода на базе существующего API, фронтендеры сами комбинируют то, что им нужно из того, что есть. В конце-концов монолит распилили на микросервисы, проблем было много, но их решили с большим или меньшим процентом потерь.

Следующий доклад Айка Саргсяна(технический директор, Юла) “Остаться в живых. Крупный проект на одной NoSQL”. Многие при создании стартапа для быстрой разработки в условиях неопределенности выбирают NoSQL-решения, планируя с ростом проекта перейти на "более серьезные" базы данных на основе SQL. Юла существует и быстро развивается уже в течение трех лет и всё еще живет на NoSQL и осознанно не планирует перехода.

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

Я наслышан об историях о ненадежности и сложной поддержке NoSQL. В компании Юла с момента основания используют MondoDb, Redis и прекрасно чувствуют. Важный нюанс, Айк прекрасно знает сильные стороны MondoDb, а где её не стоит использовать ни в коем случае. Например, система отчетности в Юле реализована не на MongoDB, а на PostgreSQL.

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

О том где ненужно использовать MondoDb, хорошо описано в статье «Почему вы никогда не должны использовать MongoDB» https://habr.com/ru/post/231213/ Также много у Монги было «детских» болезней, которые в версии 4 были решены. Основной посыл выступления инструменты подбираются под конкретную задачу, внимательно изучается опыт внедрения и проектируется архитектура приложения А не просто берём инструмент, потому что это «модно, стильно, молодёжно» и используем везде.

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться
GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

Последний доклад Алексей Козлов “Как фронтендеры учились работать с UX и что из этого вышло” У каждого проекта есть стадии развития. Доклад о том времени, когда базовый функционал разработан, есть стабильная аудитория пользователей, а дальнейшая разработка выглядит как введение новых фич, но есть неприятные последствия. Ребята разрабатывали интернет-магазин, на модных универсальных инструментах: и под мобайл и под веб, и на сервере и на фронте. Получилось так себе, нигде хорошо это чудо не работало.

И в результате был произведён переход с аутсорс дизайна на штатную работу над UI/UX; выделение десктопа и мобилки из адаптивной версии в две отдельные; смена стека разработки.

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться

Конференция мне понравилось. Отдельное спасибо организаторам, которые создали 3 потока докладчиков. Я сам участвовал в организации большого собрания. Это был ад. 🙂 А у них получилось соединить докладчиков, программистов и всё это не вылилось в непрерывный поток рекламы. Молодцы! 🙂

GDG Tyumen DevFest 2019 или каждый выбирает свои способы ошибаться