Как найти в своей разработке те задачи, о которых стоит рассказать сообществу
Сегодня мы не будем касаться вопроса, зачем выступать. У каждого свои причины. Может быть, вы узнали на работе что-то такое, чем обязаны поделиться с миром — иначе вас просто «разорвет». Может быть, собираете портфолио для карьерного роста и верите, что выступление вам поможет. А может быть, деврел держит в заложниках вашего кота, пока вы не выступите на ближайшей конференции.
Как бы то ни было, вам надо выступать. Остается понять, откуда взять тему. Роман Поборчий с 2015 консультирует докладчиков наших конференций. Давайте посмотрим, где он советует искать технические темы для выступлений.
Тема легко найдется, если вы посмотрите на свою работу с четырех точек зрения:
Задачи над которыми вы работаете — первое, о чем стоит подумать.
Инструменты, которыми вы пользуетесь — плодотворный источник хороших выступлений.
Процессы, то есть часто повторяющиеся действия, которые лучше автоматизировать, чтобы избежать человеческих ошибок. Для выступлений полезны придумки.
Развитие и самосовершенствование — в работе должно быть какое-то поступательное движение. Об этом тоже бывает интересно поговорить.
Эти сущности не равноценны. Задачи ценны и интересны сами по себе, а остальные три — в приложение к задачам, которые решаются с их помощью. Поэтому сегодня начнем с них.
Задачи
Задачи — это то, что соединяет вас и ваших слушателей. Разработчики мыслят задачами, а не архитектурами или описаниями. Но очень часто, говоря про задачи, можно сбиться в описание. Например, в описание того как вы пилите микросервисы. Но людям, которые придут на ваш доклад, не нужна полная пошаговая инструкция, позволяющая повторить всё, что вы сделали. Им интересно, как вы обошли те острые углы, с которыми они пока не разобрались. Если пришлось думать, изобретать и пробовать, долго не получалось, но вы наконец-то решили проблему — это и есть та задача, о которой имеет смысл рассказать на выступлении.
А если вы решаете задачу путем «сидим и отлаживаемся через боль» — хорошей темы не получится. Здесь нет ни открытия, ни совета людям. Поэтому посмотрим, про какие задачи удобнее всего рассказывать.
Узкая задача
Зайдем сразу с козырей и рассмотрим в качестве примера выступление Алексея Миловидова. Его рассказы всегда интересны. Он начинал с описательных докладов о работе ClickHouse, но потом, по его же словам, это стало интересно. И Алексей начал вытаскивать на свет узкие задачи, с которыми столкнулся на работе:
ClickHouse пакует все данные с помощью LZ4, чтобы они занимали меньше места на диске. Но чтобы оправдывать надпись на футболке, распаковка должна происходить быстро. В этом докладе вся история посвящена тому, как Алексей сначала изучал, как вообще устроен алгоритм разжатия, а потом пытался его применить на аппаратном уровне.
У него так и не получилось детерминировано угадывать по списку параметров (процессор, память), какой из четырех вариантов алгоритма применить. В результате он вкрутил туда «многорукого бандита» из машинного обучения и статистики. Получилась захватывающая история с детективным сюжетом, но всё равно продвигающая ClickHouse, пусть и косвенно.
Если у вас есть не одна глубокая задача, а несколько связанных, то можно поговорить о них.
Баги
Баги бывают разные, вплоть до багов в железе — и может быть интересно услышать, как вы их исследовали. Например, если у вас много данных, пользователей и всего остального, то нужно что-то сделать, чтобы даже в самой плохой ситуации застраховаться от худшего сценария и не потерять их. Об этом Алексей Миловидов тоже сделал отличный доклад. Обратите внимание, как он совмещает рассказ о багах и их исследовании с рекламой своего продукта:
Трудная задача
Бывает так, что вы долго решаете какую-то задачу. Вы перепробовали разные варианты, но все равно не смогли ее полностью победить. На эту тему тоже можно найти пример среди выступлений Алексея Миловидова:
Они столкнулись с тем, что пользователи предложили снять футболку, так как у них тормозил ClickHouse. Но как это проверить, если пользователи отказались прислать данные из-за NDA? Для выхода из тупика хорошо было бы иметь хитрый инструмент для шифровки данных, чтобы сохранить их свойства и воспроизвести поведение ClickHouse, которое было у пользователя.
Задача оказалась трудной, плохо специфицированной и с большим количеством подводных камней. И хотя несколько частных случаев удалось обработать, общего хорошего решения так и не нашли. Рассказ об этих пробах и ошибках получился очень интересным, в нем не только много идей для обфускации данных, но и анализ слабых мест каждой из них.
Интересная предметная область
У вас обычная задача, но интересная предметная область? Про это людям просто любопытно узнать. Яркий пример — выступление Артема Кондюкова:
Биокад делает лекарства от нескольких видов рака. Оказывается, у разных видов рака разные клетки. Для каждой приходится индивидуально придумывать химию, которая будет вступать в реакцию с белком раковой клетки. Мало того, нужно еще придумать способ доставить эту химию до цели. Бывает, что понятно как собирать молекулу, но непонятно пойдет ли реакция. Вариантов сотни, все их проверять в пробирке тяжело, долго и дорого. Об этом была первая часть выступления, и это было интересно само по себе.
Чтобы решить задачу, к проверке подключили нейросеть, но оказалось, что описание химических молекул в принципе неудобно в неё засовывать. Сначала с ними что-то надо сделать, чтобы привести в удобный формат, а дальше уже пытаться предсказывать результаты реакции. Эта, вторая часть, была интересной уже с точки зрения разработчика.
Давайте подведем итоги и еще раз перечислим вопросы, на которые надо ответить, чтобы найти тему для выступления.
Резюме
Что было вами придумано за последнее время? Может быть, что-то сразу не получилось и пришлось изобретать, но после этого все-таки получилось?
С какими багами вы боролись?
Что у вас не вышло? Вы придумывали, но все равно не вышло. Какие были варианты и почему они не сработали?
Интересная (необычная) предметная область.
Помните про пользу людям. Конечно, микросервисы сейчас — популярная тема, она гарантирует +50, а то +200 человек в зале, в зависимости от конференции. Но будет ли им интересно, что у вас разработка проходит как у всех?
В следующей статье разберемся, что можно рассказать про инструменты, которые вы используете.
Saint Highload++ 2022 конференция разработчиков высоконагруженных систем в Санкт-Петербурге пройдет 22-23 сентября. Сейчас ещё действует спеццену для раннего бронирования билетов. До повышения цены осталось 2 дня.
Билеты можно купить здесь.