99developers – Telegram
99developers
1.83K subscribers
42 photos
5 videos
1 file
127 links
Делаю банк для мигрантов.

Построил IT в Додо.

DM: @alexandronov
Download Telegram
Forwarded from Dodo Engineering
Domain-Driven Design (DDD) или предметно-ориентированное проектирование — набор правил, которые помогают проектировать ПО со сложной бизнес-логикой быстрее, чем без него. Но в самом DDD много абстракций и понятий. Всё ещё усложняется тем, что статей с разбором принципов и понятий DDD много (не считая трех разноцветных книг), а вот реальных примеров — не очень. Из-за этого на него страшно смотреть, не то, что внедрять. Чтобы убрать немного сомнений, мы написали статью о том, как с помощью DDD мы решили у себя большую проблему с «бумажными» ревизиями. Будем рады, если материал поможет, когда задумаетесь о DDD или даже захотите применить в своём проекте.
21 октября 2020 года.

Создана компания Dodo Engineering! 🥳

Начинается новая глава в нашей истории. Скоро расскажу об изменении ролей и о новом CTO.

PS. Число 21, видимо, с нами навсегда 🙂
Новый CTO в Dodo Engineering

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

В Додо развиваться может каждый. В 2015м в Додо пришел Паша Притчин, пришел разработчиком. Был в Core-команде, занимался сайтом, системой аутентификации, переводил куски Dodo IS на .NET Core, собирал команду один раз, второй раз, третий раз и каждый раз умудрялся делать свои команды все сильнее и сильнее! Затем перешел в команду Платформы и в 2019м возглавил ее, усилив развитие SRE-практик и стабильности Dodo IS.

В декабре 2020 он становится новым CTO в Dodo Engineering. За все это время я убедился в главном – Паша один из самых надежных людей, которых я встречал.

PS. Паша, я знаю, ты это читаешь. С тебя статья о том как пройти путь от разработчика до CTO 🙂
Отвечаем на разные вопросы о разработке в Додо на сессии AMA (Ask Me Anything) а группе в Facebook.

Про QA, конские релизы, монолит, процессы и много чего еще.

Присоединяйтесь и задавайте вопросы 🙂
Инсайт ценою в миллион

Я не задумывался о том что у инсайтов есть цена. Упущенное время, упущенная прибыль, явно выброшенные деньги, все что угодно. Каждый раз, когда инсайт приходил, это было что-то сродни эйфории, как будто прям видишь свой рост. О цене не задумывался.

Главной целью 2020ого было прийти к такой понятной и простой (относительно) структуре, когда развиваются и продукт, и команды. Мы пришли к понятной матричной структуре:
- продуктовые вертикали. Они ориентированны на бизнес, выручку, стабильность, P&L пиццерий. Это фича-тимы, где с необходимыми компетенции для развития продукта.
- горизонтальные функции. Их задача которых – стандартизация подходов и качество этих самых функций, т.е. они ориентированы на конкретную экспертизу.

И вроде выглядит неплохо, но есть один нюанс, который я осознал, потратив немало денег и потеряв одного человека в команде. Если бы я был умнее, все могло быть иначе и куда лучше, но добраться до этого инсайта я смог слишком поздно.

Когда мы говорим о горизонтальной функции в такой структуре, есть три варианта реализации. Это может быть гильдия, где каждый человек принадлежит продуктовой команде, а дела гильдии управляются на добровольных началах кем-то из энтузиастов. Это может быть один лидер, кто развивает фулл-тайм функцию, но остальные ребята – в продуктовых командах. Это может быть лидер и команда, которая развивает функцию постоянно, плюс еще ребята в продуктовых командах.

Я был уверен что если не первый, то уж второй вариант сработает всегда. Ключевое слово – всегда, т.е. вне зависимости от состояния продукта, зрелости людей и команд. Ну и после потречанных денег и расставания, понял – хрен там. Все сильно зависит от того, насколько развита эта функция в конкретный момент времени. В нашем случае я говорю про QA и моя ошибка оказалась в том что я не дал человеку выделенную команду для развития этой функции. Недооценил состояние этой функции и изменения, которые нужно было сделать. 

Если ретроспективно смотреть на все остальные горизонтальные функции что у нас есть (дизайн, работа с данными, архитектура, SRE, mobile), все они подкреплялись небольшими командами, которые так же были фича-тимами, имели у себя компетенции для развития функции. Дизайнеры работали вместе с верстальщиками и фронтенд разработчиками, Mobile работают с мобильными разработчиками и мобильными QA, чтобы запустить систему тестирования. 

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

И увы, человека и денег уже не вернуть. Что ж, научился, разобрался, работаем дальше!
Первый рабочий день прошёл необычно. Мой ноут с разбитым экраном, а новый доедет завтра, поэтому день провёл чисто с телефоном и планшетом. Интересный опыт.

Одно могу сказать точно. Я этот опыт буду повторять и не раз. https://twitter.com/alex4zero/status/1348749770727239682
Очень хорошая статья о разнице в отношении к разработчикам между компаниями старого и нового поколения. Все больше компаний понимают ценность инженерного мышления и инженерного подхода к решению бизнес-задач, причем иногда там где это кажется вообще не могло случиться.

- Автономия и принятие решений
- Problem solver -vs- Resource utilization
- Прозрачность во всем
- Взаимодействие с бизнесом
- Прямые коммуникации, минуя менеджеров
- Разработчики для разработчиков
- Идеи и их реализация

И вот все это в совокупности дает рост бизнеса, причем иногда там, где вы даже не предполагали что можно расти.

Почитайте статью, она очень любопытна.
GDPR. Истории.

Эта статья написана на основе данных, которые собрала наша команда юристов, за что им безмерное уважение!

General Data Protection Regulation, GDPR (Общий Регламент защиты персональных данных Европейского союза) действует с мая 2018 г. и применяется ко всем компаниям, обрабатывающим персональные данные резидентов и граждан ЕС, независимо от местонахождения такой компании.

Административный штраф за несоблюдение GDPR установлен в статье 83 и составляет до 20 тыс евро или до 4% от общего годового мирового оборота за предыдущий финансовый год. Выбирается та сумма, которая окажется больше.

Еще раз – БОЛЬШЕ, а не меньше.

В 2019м Google  получил штраф 50 млн евро. Нарушение требований прозрачности в отношении получения согласия от клиента на получение рекламы.

ЕЩЕ РАЗ! 50 МИЛЛИОНОВ ЕВРО за нарушение прозрачности получения согласия на рекламу. Они не теряли данные, их не украли, просто был не совсем очевидный UX. Если вам лень читать по ссылке историю про Google, вот небольшая цитата:

> When an account is created, the user can admittedly modify some options associated to the account by clicking on the button « More options », accessible above the button « Create Account ». It is notably possible to configure the display of personalized ads.
That does not mean that the GDPR is respected. Indeed, the user not only has to click on the button "More options" to access the configuration, but the display of the ads personalization is moreover pre-ticked

Будьте аккуратны с галочками. Они могут стоить вам больших денег.

Еще больше историй.
Forwarded from Dodo Engineering
Dodo Open Source 2020 → 2021

В прошлом году мы начали проект Dodo Open Source, чтобы помогать разработчикам выводить проекты в Open Source, и рассказывать о наших OSS-проекты во внешний мир (ну и внутри тоже).

Результаты:

— Опубликовали 9 репозиториев (без учета GitHub Actions) на GitHub.
— В работе над репозиториями поучаствовало 22 человека.
— Собрали 100 звездочек в сумме по всем проектам.
— К нам пришло 2 внешних контрибьютера: один писал реальный код и присылал PR'ы, другой пришел в issue.
— Провели Dodo Hacktoberfest.

Результаты довольно скромные, но важнее, что работа над Open Source положительно сказывается на культуре работы с кодом и другими проектами. Однако, большинство наших проектов специфичные, да и продвигать OSS-проекты оказалось сложнее, чем казалось. Это из минусов:)

Сейчас работаем над планами Dodo Open Source 2021, и хотели немного «подытожить» результаты за 2020. Большая благодарность всем, кто помогал и участвовал в OSS-проектах, и Мише Кумачеву, как овнеру:) Оставайтесь с нами!
This media is not supported in your browser
VIEW IN TELEGRAM
Выдача заказов в Дринкит. Придумана и реализуется одним из наших разработчиков, Андреем.

Устройство интегрировано с трекингом и автоматически отмечает заказ как выданный, когда клиент заберет свой кофе.

Очень крутая штука! Тот случай, когда технологии открывают возможности, о которых ты мог даже не предполагать!
«Додо Пицца» внедрила систему на базе ИИ для прогнозирования расхода ингредиентов

Наша работа в машинном обучении еще только начинается и этот кейс показывает потенциал, возможности, которые открывают перед бизнесом данные и их умелое использование (а это важнее, чем сами данные). Только сейчас экономия на масштабе уже достигает 54 миллионов, а когда система заработает на полную мощность, улучшим точность прогноза, вырастет еще! Это только верхушка айсберга.

Я хочу сказать отдельное спасибо ребятам из Crayon. Темпы и скорость их работы невероятны! Буквально за день мы договорились и на следующий уже начали работать, погрузились и вовлеклись по полной в наш кейс и вместе с нашими командами разработки довели все до продакшена.

Мы будем и дальше растить компетенции в машинном обучении, у нас есть кейсы и в клиентской аналитике, и в B2B. Если хотите в этом участвовать, напишите мне.
Forwarded from Dodo Engineering
Как разработать мини-приложение для Китая?

В Китае легко затеряться. Наши первые пиццерии в Китае работали по привычной модели: точка с залом на второй линии «на доставку» не в людном месте. Но модель не «взлетела»: рядом с пиццерией десятки лавок со всеми видами еды, вроде боула с мидиями или хрустальной лапши, где клиент получит еду быстрее. Можно было бы сделать своё приложение с доставкой, но на китайских экранах сотни приложений, где можно заказать еду, и наше бы просто потерялось. Поэтому мы «пошли» в WeChat и его экосистему мини-приложений. А теперь рассказали об этом — получился большой «разбор» китайских приложений и экосистемы страны. Пригодится, если решите разрабатывать своё мини-приложение для Китая.
На прошлой неделе произошло одно значимое событие – мы зарелизили приложение для курьеров на iOS. Быть курьером стало раз в 10 проще!

Интерес с технической стороны в том что приложение написано на Flutter.

B2C решения у нас останутся нативными, а вот оптимизация и кросс-платформенные фреймворки для B2B привлекают внимание с той же скоростью, с которой выходят фреймворки для JS.

В разное время я поработал с Mono, Xamarin, React Native и даже с одной секретной технологией от одной огромной компании, так и не увидевшей свет. Для таких универсальных фреймворков есть четкая, понятная ниша – это B2B решения, где миллион правил бизнес-логики, миллион возможных интеграций с корпоративными платформами, а иногда даже есть возможно ограничить парк устройств. Такой подход может дать много экономии во времени и минимизировать ошибки.

Посмотрим что из этого выйдет. Сейчас у нас Android версия приложения для курьеров нативная, а iOS – это вот такой эксперимент с Flutter. Если он будет удачным, распространим Flutter на наши мобильные B2B решения.
Forwarded from fedor. insights
До нашего первого совета директоров остался один день. И сегодня я хочу представить вам третьего независимого директора нашего совета. Это ИТ-предприниматель, инженер, программист, основатель компаний SPB TV, SPB Software и MEL Science Василий Филиппов.

Василий поверил в нашу компанию ещё 10 лет назад, когда у нас была только одна маленькая пиццерия в Сыктывкаре, а наша ИТ-система представляла из себя простенький модуль для приема заказов по телефону. 2012 году Василий стал первым инвестором Додо.

Василий — настоящий ИТ-предприниматель. Еще в школе он завоевывал первые места на общероссийских олимпиадах по физике и программированию. Во время учебы в университете вместе с друзьями в 1999 году основал компанию SPB Software, которая стала мировым лидером на рынке приложений для Windows Mobile. Компания создавала приложения и для Symbian, iPhone, Blackberry, Android, где также добивалась успеха. Офисы компании были расположены в России, Азии, Южной Америке и США. В 2011 году компанию купил Яндекс за $40 млн. После этого Василия три года отвечал в Яндексе за мобильную дистрибуцию. В 2015 году Василий основал компанию MEL Science, чтобы осуществить свою давнюю мечту. С детства Василий мечтал заниматься наукой, а потом приобщал к науке своих сыновей, делая для них занимательные задачи по физики и химии. MEL Science это научно-образовательный сервис для детей для проведения научных опытов с применением технологий виртуально реальности, образовательной платформой в виде мобильного приложения. Сервис работает по всему миру, крупнейший рынок - США. Кстати, я и мой 9-летний сын - увлеченные подписчики, каждый месяц ждем новый набор MEL Science) Так же Василий - один из основателей компании SPB TV, одного из мировых лидеров рынка мобильного ТВ.

Василий - опытный ИТ-менеджер, который понимает как создаются большие ИТ-продукты и управляются большие ИТ-компании. Уверен, что опыт Василия поможет нашей компании в трансформации Dodo IS в мощную облачную цифровую платформу для разных концепций и разных стран, а нашей ИТ-компании выйти на новый уровень развития, сохранив нашу идентичность, культуру и ценности.

Совет директоров создан. Мы начинаем работу.

Прочитать историю MEL Science можно здесь: https://www.rbc.ru/technology_and_media/24/05/2018/5b06cb5c9a79473f4a56d852

А здесь подписаться на научные опыты :)
https://melscience.com/RU-ru/chemistry/
Forwarded from Dodo Engineering
«Залипаем» с 2011 года

22 апреля 2011 года мы считаем днём рождения Dodo IS (и Dodo Engineering, как таковой). Наша ИТ-система в те времена была маленьким модулем для приема заказов по телефону в такой же маленькой пиццерии в Сыктывкаре. А сейчас картинка системы на экран не поместится, столько так всего. Монолитищееее!

Как это всё произошло (с 2012 по 2019) ещё пару лет назад наш SRE Олег Блохин визуализировал в этом классном видео. Хотя с того времени мы ещё выросли, но почему бы не посмотреть это «залипательство» ещё раз?
Додо 10 лет! Невероятно!

У нас есть шутка – монолиту тоже 10, он пошел в 3й класс. Выпустится, в универ поступит!

Не-не! На картинке слайд из внутреннего Q&A от нашего CTO Паши Притчина :).

За последние 2 года монолит подужался в размерах, стал заметно меньше. Наше решение о переходе к изолированным сервисам не просто хайп, оно обусловлено скоростью развития продуктов, где основа – это независимость и интеграции. Dodo IS уже не просто один продукт по управлению бизнесом пиццы. Это целая платформа, внутри которой живут и развиваются совершенно разные продукты.

10 лет! 🚀
Forwarded from Dodo Engineering
Кризис монолита

Психологи говорят, что в 10 лет у детей начинается кризис переходного возраста. Если считать наш монолит за ребёнка, то он уже пошел в третий класс — ему как раз 10 лет. И у него кризис. Мы провели примерно 30 внутренних интервью с разработчиками, QA и Product Owners, и вот, что выяснили по этому поводу.
Forwarded from Dodo Engineering
— Те, кто в монолите, не довольны этим: он замедляет разработку, привносит усталость, выгорание и тлен от ощущения, что монолит никак не распиливается.
— Треть бизнесовой бэкэнд C# разработки – в монолите. А это опять страдания, потому что сложнее, «выгорабельнее» и медленнее (примерно в 5-7 раз, чем вне монолита).
— Lead time(от создания коммита до выхода на прод) за Q1 — около 5 рабочих дней. У нас 3,6 релизов в неделю (это без хотфиксов). Но можно то лучше!
— Есть неожиданные замедления: иногда мы включаем Stop The Line, иногда ломается пайплайн сборки на stage или dev, иногда могут быть нестабильны стенды.
— Работа с монолитным кодом также не вызывает удовлетворения. Много кода уже принадлежит Продуктовым командам (разделение ответственности по функциям и разделение LF endpoint по будущим компонентам), но общего безхозного кода предостаточно.

Мы пилим монолит, но он точно будет с нами ещё несколько лет. Тлен? Нет, есть решение — мы создаём команду Monolith Release Engineering Team!

Команда возьмет на себя владение общим монолитовским кодом, билд-релиз пайплайном, тестами, рефакторингом БД. В принципе, команда возьмёт на себя процессы связанные с монолитом, чтобы постараться убрать вышеназванные проблемы.

В команде будет 2 релиз инженера — .Net разработчика высокой квалификации. Первый участник уже есть. Второго будем искать «после майских», но если кто желает присоединиться — велкам в мир (зачеркнуто — боли и страданий) больших вызовов, драйва и развития в system engineering (с уклоном в инфраструктуру).

Ссылка на вакансию (.NET-разработчика), если решите откликнуться.
Не перестаю восхищаться людьми, которые работают в Додо!

На днях вышло обновление приложения Додо для iOS, которое поддерживает технологию VoiceOver, теперь можно сделать заказ на слух. Уже сейчас технологии в телефонах настолько умны и многогранны, что дело остается лишь за тем, чтобы использовать их в своих приложениях. Это оказалось совсем не так сложно, как может показаться на первый взгляд!

Миша Рубанов, Head of Mobile в Додо, собрал весь опыт и написал книгу о том как адаптировать мобильные приложения для людей с ограниченными возможностями. Книга интерактивная, в ней много материала, много деталей о том как сделать iOS приложение доступным для людей.

Книга будет выходить главами каждую неделю и будет полностью бесплатна. Она доступна по ссылке https://dodo.dev/a11y-book

Друзья, подпишитесь на канал Миши о мобильной разработке и посмотрите видео о том что такое доступность и как ребята адаптировали приложение.

Распространяйте книгу, она действительно может сделать жизнь многих людей лучше!
Всем привет.

Додо ищет аутсорс/аутстафф на .NET + Typenoscript.

Dodo IS – сердце нашего бизнеса, система, через которую проходят все процессы в наших ресторанах. Прием заказа, приготовление, доставка и выдача в ресторане, а так же все управление и часть маркетинга. Dodo IS не так проста, как может показаться и ее особая сложность – это поддерживать систему в разных странах.

У нас получился целый пласт задач, связанных с законодательством разных стран, интеграцией с локальными налоговыми системами и кассовыми системами. Додо уже работает в 14 странах и законы в них постоянно меняются. Мы ищем компанию-партнера, которая возьмет на себя такие задачи адаптации на постоянной основе.

Если вам интересно, пишите на a.andronov@dodopizza.com.