Size: a a a

2019 December 11
xpinjection
Давно ничего не писал в канал, потому что был сильно погружен в работу. А писать лишь бы что, если нет интересных мыслей или материала для читателей, не вижу смысла. И вот решил полистать свою ленту в Twitter, в который я захожу чрезвычайно редко в последнее время. И совершенно случайно натолкнулся на твит о книге, которая стоит у меня в ТОП-3 для прочтения в ближайшее время. Это "Monolith to Microservices" от легендарного Сэма Ньюмана. Книжка чрезвычайно полезна для тех, кто не знает как подступиться к своему монолиту или микромонолитам. Ну и даже ради уважения к автору ее стоит прочитать. :)

Так вот, в найденном мной твите NGINX раздает данную книгу совершенно бесплатно за ваши контактные данные. Я совершенно забыл купить ее на Black Friday, поэтому акция пришлась как раз вовремя. Надеюсь, что она порадует и вас. Не благодарите! :)
источник
2019 December 13
xpinjection
​​Для поднятия пятничного настроения!
источник
2019 December 14
xpinjection
​​На этой неделе провели в одной продуктовой компании инженерные дни. Идея очень простая: 2 дня, 2 параллельных потока, доклады, дискуссии и практические воркшопы на выбранные сотрудниками заранее темы. Каждый может выбрать только интересные для него слоты и посетить их. На эти два дня компания всех участников освобождает от работы.

Мне кажется, данный формат великолепно подходит для получения новых идей, обмена опытом между сотрудниками, а также вдохновения на изменения в рамках команды или даже всей компании. Несколько вещей, которые я бы улучшил следующий раз в таком формате:

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

А вообще, очень круто и живо получилось. Столько кейсов живых обсудили, много важных тем покрыли, на кучу вопросов ответили.
источник
2019 December 20
xpinjection
​​Пятничное про Full Stack инженеров. :)
источник
2019 December 26
xpinjection
Пришло время окончательно подвести итоги нашей конференции XP Days Ukraine 2019, которая прошла в Киеве месяц назад. Мы традиционно подбиваем рейтинги докладов и публикуем список ТОП-10, чтобы вы могли более взвешенно подойти к изучению материалов конференции. Итак, вот победители по результатам голосования участников этого года:

1. Saga about distributed business transactions in microservices world (Mikalai Alimenkou) weighted rank: 4.489
2. Effectiveness tips from Kubernetes trenches by Captain Obvious (Mikalai Alimenkou) weighted rank: 4.461
3. Building a security program at Grammarly. Integrating security in product development. (Dmitry Tiagulskyi) weighted rank: 4.344
4. In search of Domain-Driven-Design in the world of microservices (Anuar Nurmakanov) weighted rank: 4.262
5. Practical GitOps on Kubernetes with ArgoCD (Igor Borodin) weighted rank: 4.232
6. 100 deploys per day (Dmytro Voloshyn) weighted rank: 4.215
7. The Zen of logging. How to face the worst day of your life. (Eugene Safonov) weighted rank: 4.194
8. 30 minutes to Prod (Vasyl Strutynskyi) weighted rank: 4.192
9. What we’ve learned once processed first 150k production incidents (Matvey Kukuy) weighted rank: 4.173
10. Tracing for Java Developers (Philipp Krenn) weighted rank: 4.145

Ну и конечно же, мы выложили все материалы в открытый доступ в отличном качестве (в этом году мы немного усовершенствовали формат видео). Грядут новогодние праздники, а это много времени и возможностей для самообразования. Удачного просмотра!
источник
2019 December 28
xpinjection
​​Для поднятия праздничного настроения немного про инженерные практики...
источник
2019 December 31
xpinjection
С наступающим Новым Годом!
Хочу пожелать вам в новом году зелёных тестов, автоматизации всех скучных повторяющихся задач, настоящей DevOps культуры в командах, успешных спринтов, сходящихся берндаунов, крутых и быстрых фреймворков, высоких зарплат, интересных задач и новых вызовов...

Ну а так как все это зависит только от вас, то ещё вдогонку желания учиться и развиваться, крепкого здоровья, нескончаемого вдохновения, умения признавать свои ошибки и постоянно улучшаться, а также получать удовольствие от своей работы и всегда относиться к ней как к любимому хобби!
источник
2020 January 06
xpinjection
Новогодние праздники подходят к концу и у нас есть для вас первые новости в этом году.

Во-первых, мы открыли продажу первой партии blind birds билетов на конференцию JEEConf 2020 по минимальной цене. Их всего 100 и обычно разлетаются за пару дней. Не упустите возможность сэкономить!

Во-вторых, программный комитет конференции Selenium Camp утвердил первую партию докладов и мы уже добавили часть докладчиков на сайте. Основная работа по подготовке программы должна завершиться на этой неделе. Если у вас есть что рассказать на тему автоматизации тестирования или вы знаете кого-то с интересным релевантным опытом для крутого доклада, то напишите нам. Подача докладов все ещё открыта. Большая часть билетов на Selenium Camp уже продана, мы ожидаем к концу января распродать остаток. Присоединяйтесь, будет круто!

Ну и последняя новость касается самого канала. Я практически ничего не писал в него последние пару недель. Получился своеобразный творческий отпуск. С этой недели возвращаюсь в активный режим. Буду стараться радовать вас интересным материалом.
источник
2020 January 09
xpinjection
На днях закончил читать очередную книжку. Она стала скорее случайной в моем списке, потому что я не планировал ее к прочтению и внезапно узнал о ее существовании. Речь пойдет о новой книге легендарного в мире IT "дядюшки" Боба Мартина под названием "Clean Agile: Back to Basics" (многим он знаком ко книге "Clean Code").

Книга очень своеобразна и неоднозначна, в основном благодаря категоричному и прямолинейному стилю повествования автора. Вот что мне понравилось:

- Историческая перспектива появления Agile движения, хотя и сокращенная, однобокая и не до конца раскрытая. Хотелось бы больше мнений участников и разностороннего контекста, но очень важно понимать какую проблему решали лидеры того времени.
- Фокус на МАЛЕНЬКИХ командах, инструментах предсказуемости и прозрачности в руках менеджмента. Никто не ставил целью решить проблемы большого энтерпрайза, вместо этого предлагалась проблематика организации слаженной эффективной работы маленьких команд. При этом менеджмент не рассматривается как абсолютное зло, как это стало модно сейчас.
- Ставка делается на XP как наиболее технически продуманный и близкий к разработке подход. Очень хорошо, с точки зрения здравого смысла, описываются все принципы и практики XP. Явно постулируется, что без инженерных практик можно пытаться сколько угодно, но ничего не выйдет в долгосрочной перспективе.
- Очень хорошо описана абсурдность такого явления как сертификации в Agile мире. Для настоящих стоящих сертификаций предлагается иметь долгосрочное обучение с реальной практикой и по ней выдавать сертификат. Но делать так никому не выгодно.
- Сквозь всю книгу прослеживаются призывы к разработчикам быть профессионалами, не жертвовать качеством ради непонятных целей, не спрашивать разрешения на написание тестов или работу в паре, не слушать навязываемые менеджментом технические подходы, быть в ответе за свой код и решения.
- Отлично подчеркивается, почему Agile не имеет смысла в больших иерархических организациях. Во-первых, ценности менеджеров среднего звена сильно противоречат Agile ценностям. Во-вторых, задача организации большого количества команд - уже решенная задач (стройки, армия, производства и т.д.), Agile помогает малым ячейкам в этой системе работать эффективно. Поэтому так модный сейчас масштабируемый Agile на примере SAFe - нонсенс и попытка заработать на хайпе.

Что не понравилось в книге:

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

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

#книги #books
источник
2020 January 10
xpinjection
Самое крутое прагматичное определение Agile из известных мне:

Agile is an algorithm for finding the highest-value-producing features in the market and then turning them into revenue faster.

Кратко, лаконично, без соплей и философии.
источник
2020 January 11
xpinjection
Обновил расписание публичных выступлений на зиму и первую половину весны. Буду готовить 3 совершенно новых доклада:

1. Как выглядит современный CI/CD для мира микросервисов с учетом использования Kubernetes, что меняется в подходах и инструментах, как выглядят пайплайны и управление окружениями. С ним я выступлю на Selenium Camp 2020 и JEEConf 2020.

2. Про статические и динамические анализаторы как важную часть процесса обеспечения качества. Все больше и больше проверок можно делегировать качественным инструментам, которые справляются куда лучше кожаных мешков (нас с вами). С ним я выступлю на Selenium Camp 2020.

3. О проблемах применения story points в современных командах для оценки и планирования итераций. Вместо него я опишу свой опыт использования capacity-based планирования. С ним я выступлю на Simplicity Day: Agile Magic.

А еще планирую доработать и развить на конференциях Java Day Lviv 2020 и JEEConf 2020 доклад про SAGA паттерн для распределенных бизнес-транзакций в мире микросервисов. Так что должно быть интересно!

#доклады #конференции #выступления
источник
2020 January 13
xpinjection
Многие знакомы с таким неприятным явлением как «моргающие» или flaky тесты. Эти тесты один раз проходят успешно, а второй раз могут упасть на одном из шагов. Самым неприятным является то, что при отладке и попытке найти проблему они снова могут отлично проходить. В результате, на них тратится много времени и часто команда разработки начинает видеть красные билды на CI без особой причины.

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

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

#тестирование #testing
источник
2020 January 14
xpinjection
Интересно, что роль классного менеджера на любом уровне является самопоглощающей. То есть, основная задача классного менеджера состоит в том, чтобы построить устойчивую систему/структуру/процесс, который без проблем бы работал самостоятельно. Поэтому возникают такие вопросы:

- А зачем вообще нужна роль менеджера в данном контексте?
- По какой причине для выполнения моих должностных обязанностей нужен отдельный человек?
- Что я могу сделать, чтобы потребность во мне свелась к минимуму?

В позитивном случае, чем больше работает менеджер, тем более устойчивой и независимой должна становиться система/структура/процесс. А его время высвобождается для того, чтобы заняться следующими вызовами.

В данном контексте мне всегда была непонятна долгосрочная full time позиция менеджера на проекте без цели бурного развития. Получается, что через некоторое время он для оправдания своего существования вынужден будет перетягивать на себя одеяло по каким-то направлениям (требования, общение с заказчиком, процессы и т.д.) или же просто изображать «бурную деятельность». Отсюда и берутся популярные антипаттерны, которыми люди потом радостно делятся на конференциях...

#менеджмент
источник
2020 January 20
xpinjection
Часто наблюдаю, как трудно разработчикам переключиться в режим continuous discovery инкрементально-итеративной разработки. Это режим, когда ты точно не знаешь конечного решения, да и неуверен что оно вообще имеет чёткие очертания, ведь бизнес тоже далеко не всегда понимает что хочет. Но делаешь следующий шаг и планируешь небольшой эксперимент в рамках итерации, который поможет получить обратную связь и понять куда двигаться дальше. И совершенно неважно, что в результате эксперимента не получится идеальный технический дизайн и «продуманное на века» решение. Ведь цель совершенно другая.

В качестве проявлений сложности переключения мышления можно услышать такие фразы:

- «Так потом же придётся все переделывать!»
- «Давайте сразу спроектируем нормально, чтобы учесть все требования.»
- «Нет смысла делать обрезанные требования, все равно потом будем дорабатывать.»

И команда пытается построить «правильный дизайн» в условиях неполноты требований и додумываний в разных областях. Процесс затягивается, возникает много споров в попытках учесть все нюансы. Время разработки увеличивается и бизнес получает первую версию «на пощупать» позже ожидаемого. А потом оказывается, что хотелось немного другого, да и новые требования в данной области уже накопились... И все равно приходится переделывать «идеальное решение». Таким образом, шаг за шагом у бизнеса накапливается внутреннее ощущение медлительности разработки, а разработчики негодуют по поводу постоянно меняющихся требований и невозможности проектировать «по-человечески».
источник
2020 January 21
xpinjection
​​Сегодня не пятница, но это очень смешно и жизненно. :)
источник
2020 January 24
xpinjection
Мы рады наконец сообщить, что финальная версия программы Selenium Camp 2020 опубликована на сайте. Все еще возможны небольшие изменения в расписании, но они должны быть незначительными. Началась активная фаза подготовки докладов и докладчиков к выступлениям.

Мы собрали много ярких докладчиков и интересных тем, среди которых:

- инфраструктура для автоматизации тестирования с Kubernetes, Terraform и Serverless;
- новые подходы к измерению тестового покрытия на всех уровнях;  
- разнообразные инструменты для автоматизации тестирования, включая Selenium/WebDriver, Pupeteer, WebdriverIO, REST Assured, Selenide;
- практический опыт и подходы к автоматизации тестирования мобильных приложений;
- хорошие практики и рекомендации в разных областях.

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

#конференция #доклады #тестирование #автоматизация
источник
2020 January 29
xpinjection
Тут в фейсбуке натолкнулся на откровение от одного из Agile коучей, которое звучит примерно так: «Если у вас в Scrum-команде есть бизнес-аналитик, который во время спринта готовит требования на следующий спринт, то, с большой вероятностью, Scrum у вас ненастоящий». У меня пригорело и появился отличный повод высказаться на эту тему.

У меня складывается ощущение, что чем меньше люди работают в режиме hands-on с командами, тем более они верят в реалистичность абстракций. Например, проще всего возложить всю работу с требованиями на роль PO и утверждать, что присутствие аналитиков попахивает «зрадой». Я постараюсь в деталях описать свой опыт и видение в данной области. Поэтому будет несколько последовательных постов.

В первой части я бы хотел поднять вопрос необходимости в бизнес-аналитике в современной разработке. Где есть вовлеченный PO и полноценная feature-команда для работы над самыми приоритетными требованиями в инкрементально-итерационном режиме. Казалось бы, ну зачем тут аналитик?

Оказывается, не все работают в простом бизнес-домене. Хватает бизнес-доменов, в которых за простой формулировкой User Story могут скрываться недели анализа и проработки бизнес-требований. Например, в медицинском домене «я, как врач общей практики, хочу иметь возможность выписать рецепт пациенту, чтобы назначить полноценное лечение» до планирования превращается в целую мини-спеку с кучей очень важных деталей, без которых системой невозможно будет пользоваться или она будет противоречить законам. И PO явно не имеет времени на погружение во все эти детали, так как он занят видением продукта, приоритезацией, работой с внешними стейкхолдерами и другой важной работой. Примеров масса: финансы, логистика, медицина...

Второй пример жизненной необходимости в бизнес-аналитиках заключается в роли SME для команды как по бизнес-процессам так и по самой системе. Все знают, что можно в любой момент обратиться с уточняющим вопросом и получить оперативный и точный ответ, при этом не отвлекая PO, если вопрос не касается приоритетов или изменения взятых в работу требований.

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

Ну и наконец, есть кейсы, когда PO просто никогда не работал с IT и является человеком из бизнеса. Ему чужды все эти User Story и прочие «приседания», он хочет простыми словами описать требования и чтобы команда их сделала. При этом, он четко понимает приоритеты и готов помогать команде во всем. Команде же не хватает доменного и аналитического опыта, чтобы привести эти «бытовые требования» к готовому для разработки варианту. И тут участие бизнес-аналитика помогает соединить воедино PO и команду.

Я могу перечислять ещё много сценариев, но думаю, у вас есть и свои примеры из реального опыта. В следующих частях я расскажу о негативных примерах, откуда они берутся, а также почему обычно не получается команде забрать эти активности на себя.

#аналитики #требования
источник
2020 February 01
xpinjection
Продолжу тему бизнес-аналитиков в современной разработке и расскажу про самые популярные анти-паттерны, от которых и появляются негативные суждения.

Первый анти-паттерн мой любимый, потому что максимально деструктивен для команды. Я называю его «царь требований». Речь про бизнес-аналитика, который всю работу с требованиями, доменными знаниями, заказчиками и конечными пользователями замыкает на себя. Явные проявления в том, что коммуникационные каналы закрыты для «простых смертных», в команде мало кто разбирается в доменной модели, требования приносятся уже детализированными до такой степени, что команде не нужно ни о чем задумывать вообще, бизнес ценность тяжело прослеживается или вообще отсутствует как таковая. Очень деструктивный для команды и бизнеса анти-паттерн. Фактически, бизнес-аналитик начинает держать всех в заложниках.

Второй популярный анти-паттерн я называю «передаст». Это когда бизнес-аналитик выполняет для команды роль безынициативного прокси от PO или заказчика. Он не имеет возможности и желания управлять приоритетами, быть SME для команды, принимать мелкие решения самостоятельно в рамках согласованной стратегии, брать на себя ответственность. Обычно проявляется в виде «я не знаю ответа, но у нас созвон завтра и я уточню» или «я без понятия зачем приоритеты именно такие, так сказал заказчик/PO».  А название взялось от самых популярных фраз такого бизнес-аналитика: «я передам ваши вопросы заказчику/PO» и «я передам ваши пожелания команде». :)

Ну и наконец, не менее часто встречающийся анти-паттерн под названием «господин Спека». Это бизнес-аналитик, который видит свою роль в анализе и документации требований, а не в достижении результата в виде работающего продукта ценного для конечных пользователей. Проявляется анти-паттерн в перекидывании требований разработчикам, общении по почте или документами, желании описать «все имеющиеся требования», чрезмерной детализации требований, слабой коммуникации в рамках команды. Зачастую таким страдают бизнес-аналитики, которые долго работали в водопадо-подобных процессах. Они привыкли заканчивать свою фазу и переходить на другой проект.

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

#требования #аналитики
источник
2020 February 02
xpinjection
​​Я в этом году впервые отправился на конференцию FOSDEM в Брюссель. Если вы никогда не слышали об этой конференции, то я вам немного о ней расскажу:

- конференция совершенно бесплатная и собирает больше 10 тысяч участников;
- 2 дня, больше 30 параллельных потоков, больше 800 докладов;
- собирается огромная тусовка open-source сообщества по всем направлениям от ядра Linux до современного JavaScript;
- проходит на территории большого университета в лекционных аудиториях, поэтому люди перемещаются между зданиями постоянно;
- уровень докладов многих весьма посредственный, на интересную тему зачастую невозможно попасть из-за диких очередей (в этом году это все доклады со словом Kubernetes в названии или описании);
- тут можно лично пообщаться с легендарными людьми из мира open-source и узнать кучу полезной информации из первых уст;
- вечерами в разных заведениях компании устраивают вечеринки для общения, угощают всех пивом.

Если вы ходите на конференции в основном ради общения и тусовки, то рекомендую рассмотреть этот вариант. Ну и бельгийское пиво конечно выше всяких похвал. :)
источник
2020 February 04
xpinjection
Я с удивлением обнаружил, что за 2019 не провел ни одного публичного тренинга. :( Все время ушло на корпоративный формат и консалтинг. Поэтому мы решили начать менять ситуацию в лучшую сторону. В рамках конференции Selenium Camp 2020 (перед основными днями) поставили 2 однодневных воркшопа, один из которых мой.

Первый воркшоп под названием "Efficient Selenium Infrastructure with Selenoid" проведет Ваня Крутов из команды разработки Selenoid. Нет ничего лучше, чем узнать об инструменте из первых рук и на практике опробовать популярный технический стек. Ваня умеет раскрывать тему не только интересно, но и доступно для аудитории, за что не раз оказывался в топе рейтинга докладчиков.

Второй воркшоп "Test automation strategy for microservices-based systems" проведу я. Тема достаточно острая, так как переходят на микросервисы сейчас все повсеместно, а подходы и практики автоматизации тестирования у многих остались прежние. Я расскажу множество практических кейсов и покажу как эффективно можно построить стратегию автоматизации тестирования в современной микросервисной системе.

Мест на обоих воркшопах всего по 15, поэтому рекомендую не медлить с покупкой билета. :)

#конференции #тренинги #тестирование #автоматизация
источник