Компания PVS-Studio и Inseq заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.
Программное обеспечение Inseq RBPO предназначено для создания и управления конфигурациями, необходимыми для автоматического развёртывания и настройки компонентов инфраструктуры безопасной разработки ПО — систем контроля версий, анализаторов кода, инструментов автоматизации сборки, тестирования и развёртывания. Управление конфигурациями и политиками безопасности осуществляется централизованно.
"ИНСЕК.РБПО" представляет собой клиент-серверную систему, работающую на локальном оборудовании. Она включает серверную часть, генерирующую конфигурационные файлы, и веб-приложение с графическим интерфейсом для взаимодействия с пользователями.
Внутри этой платформы стало возможным использовать статический анализатор PVS-Studio для поиска критических ошибок в исходном коде.
Также мы провели вебинар с коллегами из Inseq, в котором поговорили о необходимости регулярного статического анализа, а также в целом об автоматизации в РБПО.
Красные флаги в код-ревью: перегибы, которых лучше избегать
Фокус на мелочах. Если уделять много внимания опечаткам и код-стайлу, то времени уйдет много, а реальных результатов будет мало. Главное — это всё-таки архитектура, алгоритмы и производительность, а косметика только на втором плане. Зачем портить настроение себе и команде, если можно ничего никому не портить?
Поверхностный анализ. Забивать на проверку кода — тоже плохая идея. И дело даже не в багах, их отловит тестировщик. Дело в безопасности всей системы. Если какой-нибудь хакер найдет уязвимость, которую QA не нашел, — жди беды. Ну и техдолг никто не отменял: если не делать сразу хорошо, однажды придется переделывать.
Токсичность. Во время код-ревью лучше всё-таки искать потенциальные проблемы с кодом, а не учить коллег работать. То есть фокус внимания — не на поиске недостатков в чужой работе, а на самом коде. А личные предпочтения и вкусы относительно кода лучше обсуждать отдельно.
Обратную связь стоит давать вдумчиво — подбирать слова и контролировать интонацию. Фидбек должен быть таким, чтобы у разработчика не возникало ощущения, будто он ни на что не годится.
А каким должен быть хорошее код-ревью — в нашем блоге.
Эффект «стены Дурова», который я открыл за 10 лет до самого Дурова
По студенчеству я, как и любой джун, совершал ошибки. Одна из них — классический пример истины «работает — не трожь».
2004 год. Я на 3-м курсе факультета прикладной математики и информатики АГУ (г. Майкоп), параллельно работаю программистом в математической школе при университете. Моя вотчина — программа для подсчёта рейтингов учеников, набор текстов для методичек и небольшой сайт с гостевой книгой.
Кто не застал — гостевая книга тогда была чем-то вроде бесконечного чата без регистрации. У детей мат. школы в ней кипела жизнь: по 100–200 сообщений в день (иногда даже больше), свои шутки, обсуждения задачек, разговоры «за жизнь». Формат был простой и лёгкий — написал ник, сообщение, и готово.
А я молодой, амбициозный и несу людям счастье)))
Я тогда подумал. Почему они мучаются с этим бесконечным тредом сообщений? Это же жутко неудобно! А что если я уберу эту гостевую книгу и заменю ее на удобный форум для своих? Хорошая же идея? Ну, если судить логически, то да. Свой форум, регистрация, понятно, кто пишет, можно делать свои темы и не тонуть в бесконечной беседе. На тот момент мне казалось, что это отличная идея сделать жизнь определенного круга людей лучше.
Нашел на просторах хороший движок и в один прекрасный день заменил гостевую книгу на этот форум. Создал темы и стал ждать, как мне люди скажут спасибо.
Догадываетесь, что было дальше? )))
Правильно. Провал… Ученики не стали использовать новый форум!
Была попытка одного человека что-то написать, но когда никто не ответил, то и он перестал что-то писать + пара регистраций пользователей. Моя попытка это исправить ни к чему не привела. Я даже старые сообщения пользователей из гостевой книги загрузил в новый форум. Все бестолку. Сайт, у которого был отличный трафик, буквально за неделю перестали посещать.
Для меня это было потрясение. Как так вообще? Я же хотел сделать как лучше для пользователей! Почему они не стали использовать новый форум?
Рефлексия и мои мысли на эту тему прилагаются:
Новый форум не взлетел, т. к. старый был ламповый, легкий. Можно добавить одну запись под ником «Препод такой-то», а следующую «Иванов Иван». Было интересно переписываться в таком легком формате. Был вайб от использования такого формата. Может, помните в VK знаменитое: «Дуров, верни стену!»? Этот косяк Павла из той же оперы.
Если какой-то сервис работает хорошо, но, на твой взгляд, там все организовано очень нелогично, не надо это исправлять сию минуту! Надо сделать опрос, проверить гипотезы, попробовать узнать мнение пользователей. Бывает, конечно, и такое, что пользователи не могут тебе сказать, что нужно добавить, и при добавлении этого «чего-то» оно действительно взлетает, но делать это нужно аккуратно, просчитывая варианты.
Этот студенческий урок 20-летней давности я вспоминаю до сих пор каждый раз, когда моя команда предлагает «быстро улучшить» какой-нибудь работающий модуль. Часто при взгляде на проблему задаю себе вопрос: «Какую настоящую работу выполняет для пользователя этот старый, неудобный, но привычный функционал? И не убьем ли мы ту самую "ламповость", просто заменив ее на "правильное" решение?»
Вот такая история.
P. S. Если кто-то читает мой пост из тех, кто тогда сидел в этой гостевой книге, прошу у вас прощения. Я не хотел, чтобы так все вышло.
---
Понравилась эта история? Это пример того, как я анализирую ошибки и извлекаю из них практические уроки. В моем ТГ канале Код ИТ-директора я гораздо чаще делюсь подобными мыслями, короткими кейсами и полезными инструментами, которые не всегда доходят до формата большой статьи.
Приглашаем вас на регулярную встречу фронтенд-сообщества в неформальной обстановке 28 августа. В этот раз — MoscowJS в гостях у Альфа-Банка.
В программе:
От JavaScript к DeFi: как инженеры могут изменить мир финансов. Спикер: Даниил Швецов, Full Stack Engineer. Доклад познакомит JavaScript-инженеров с основами DeFi: ключевыми концепциями, математическими моделями и работой с JS SDK.
Архитектура микрофронтендов: от А до Single Spa. Спикер: Павел Шлыков, Team Lead Frontend. Поговорим о микрофронтендах с нуля: от принципов и базовой реализации до инструментов вроде Module Federation и single-spa. Разберёмся, как всё устроено, и рассмотрим нестандартные подходы.
Под капотом платформы. Спикер: Антон Марченко, Ведущий разработчик. Доклад об опыте сборки платформы из готовых решений и объединения приложений через iframe, Module Federation и webview. Узнаете про выбор подходов и работу с командами.
Гильдия: место, где разработчик перестаёт быть одиноким кузнецом. Спикер: Владислав Сазонов, Head of Frontend. Чувствуете себя одиноким фронтендером? Есть решение — гильдия. В докладе — о том, как этот формат помогает расти, делиться опытом и не выгорать, а также краткий исторический экскурс.
Присоединяйтесь онлайн и офлайн — зарегистрироваться можно по ссылке.
Где: г. Москва, Андропова пр-т., 18, к. 3 (офис Альфа-Банка)
OpenAI выпустила GPT-5. Разница между GPT-4 и GPT-5 примерно как между студентом и доктором наук, заявлил Сэм Альтман.
GPT-5 является самой мощной существующей моделью для кодинга. Она может выстраивать более сложные цепочки действий и писать более сложный код в одном стиле. Простым промптом можно создать функционирующее веб-приложение — на презентации сгенерировали Duolingo платформу для изучения французского языка с полноценными дизайном, анимациями, озвучками и игрой. Новая модель значительно меньше склонна к галлюцинациям — она будет меньше врать и притворяться. Также она стала гораздо менее «подхалимской». Тексты, генерируемые GPT-5, стали более естественными и человечными. Вместе с этим модель лучше понимает и исправляет свои ошибки. ChatGPT интегрируют в Gmail и Google Календарь на следующей неделе. Можно будет управлять как электронной почтой, так и своим расписанием прямо в чате. GPT-5 сама определяет, как лучше ответить — быстро или «подумав».
GPT-5 умеет не только вести разговор, но и выполнять реальные задачи: создавать приложения, планировать календарь, проводить исследования. Она сама определяет, как лучше ответить — быстро или «подумав». Модель справляется с генерацией кода, выдаёт меньше галлюцинаций, и даже даёт более точные ответы на медицинские вопросы.
По тестам GPT-5:
Обходит Claude Opus 4.1 и Gemini 2.5 Pro в программировании
Слегка уступает Grok 4 Heavy в тесте «Humanity’s Last Exam»
Отвечает на медицинские вопросы с ошибками всего в 1.6% случаев (у GPT-4o — 12.9%)
Ведёт себя безопаснее: меньше обманывает, точнее различает вредные и безопасные запросы.
Платные подписчики Plus и Pro получили доступ к более мощной версии GPT-5 Pro. В API теперь доступны три размера: gpt-5, mini и nano.
GPT-5 можно попробовать в Cursor — тут, и в Copilot — тут.
Компания PVS-Studio и платформа Hexway заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.
Hexway VamPy — это решение, агрегирующее данные о безопасности из разных источников для работы с уязвимостями.
В Hexway стало возможным загрузить результаты анализа PVS-Studio в виде отчёта и работать с конкретными ошибками так же, как это позволяют другие инструменты. Загрузка возможна двумя способами: через пользовательский интерфейс или командную строку с использованием CLI-инструментов.
Подробнее о том, как загрузить результаты анализа PVS-Studio в Hexway VamPy можно прочитать в соответствующем разделе нашей документации.
Говорим на языке событий: что даёт ивент-шторминг и как его правильно провести
Привет! Я Иван Чернов, системный архитектор, в этом посте расскажу про ивент-шторминг.
В Островке есть набор сервисов, который разбит на логические блоки так, чтобы в рамках блока можно было итерировать: Островок, Островок B2B и Островок Командировки. При этом запускать новые фичи, которые будут сквозь эти слои прорезаться.
Мы растём по количеству и продуктов, и людей, нанятых для их разработки. Недавно начали толкаться локтями: не понимали, как качественно контрибьютить в большие кодовые базы, как они должны эволюционировать. Поэтому пришли к ивент-штормингу.
Что это за практика? На встрече с одной стороны сажаем бизнес, с другой — разработку. Просим бизнес рассказать, что и как он делает в работе с клиентом.
Ивент-шторминг проводится с фокусом на цикличную реактивность: происходит событие, которое визуально меняет что-то для пользователя, тот принимает решение и отдаёт команду, команда приводит к новому событию.
На этих циклах фокусируемся на доске в Miro во время встречи.
В ивент-шторминге 3 этапа:
1. Сейлзы выстраивают по циклам цепочку событий: от «клиента у нас ещё нет» до «клиент нас окончательно покинул». Даже в простых цепочках 20–30 действий. В готовом таймлайне есть happy pass: клиент успешно прошёл весь путь. И альтернативные пути: что-то пошло не так.
2. Проходим по таймлайну с конца, ищем ошибки. Выделяем ключевые события, которые нельзя откатить: клиент зарегистрировался, совершил бронирование, провёл оплату. Здесь происходит стык сервисов. На стыках обогащаем цепочку. Пишем, кто и что делает: актор-клиент зарегистрировался, подключился сервис юзер-менеджмента.
3. Выявляем, какие агрегаты работают с событием. Мапим команды: клиент регистрируется, в работе участвует команда регистрации.
Цепочка готова, мы получили полезный контекст, все одинаково понимают процессы и видят, что нужно делать, чтобы их улучшить.
Во время встречи составляем словарик. Если сейлз говорит непонятное разработчикам слово — мы его добавляем в словарь, и оно просасывается в наш интерфейс и кодовую базу. Всё это учит разработчиков понимать, на какие рычажки они влияют своим кодом.
Поделюсь советами, как круто провести ивент-шторминг.
Онлайн-формат
● Для проведения онлайн достаточно доски в Miro.
● Разбивайте встречу на три части, каждая встреча — один этап.
● На последней встрече отпустите бизнес, выявите агрегаты и сервисы, задействованные в таймлайне с разработкой.
● Максимум людей для успешной фасилитации онлайн — 8–10 человек.
● Ищите представителей бизнеса в оргчате выбранного домена: спрашивайте у руководства, «кто тут самый инициативный».
● Вам нужны работники «с полей», которые лучше всего шарят в процессах, и тимлиды первого уровня.
● Берите людей из разных направлений домена.
● Бизнес-участники должны понимать: ивент-шторминг — процесс обучения, они эксперты, а разработка — ученики. Им нужно говорить на своём языке, а не подстраиваться под разработку.
● Дайте участникам базовый словарь. Четыре самых важных слова: актор, команда, событие, термин.
● Важны вводные по времени и цели: на сессию уйдёт суммарно 6–8 часов, она даст единое понимание процессов.
Фасилитация
● На старте не бойтесь повторить все вводные.
● Дайте сейлзсам 10 минут на то, чтобы каждый выстроил индивидуальный таймлайн, дальше начинайте мёржить таймлайны с общим обсуждением.
● Событие — факт в прошедшем времени, его не отмотать. Следите, чтобы так и записывали.
● Первым делом простройте happy pass, иначе у вас не выстроится цельное видение процесса. Альтернативные ветки обозначьте на первом этапе, а достраивайте на втором, проверяя таймлайн с конца.
● Если бизнес утверждает, что два события происходят одновременно, это важная точка обсуждения.
● Организуйте пост-процессинг: важно передать разработке результаты, объяснить, какие процессы у нас уже верно реализованы, а где нужно обновление и дополнительное внедрение.
Почему ваш новый «гениальный» флоу вызывает тревогу в команде? Всё о психологии сопротивления изменениям — в одной статье!
Представьте ситуацию: вы, как продакт, несколько недель потратили на исследования, кастдевы, прототипирование и дизайн. Вы выносили идею, защитили её перед стейкхолдерами и теперь, сияя от предвкушения, приносите команде разработки новый, идеально продуманный флоу. А в ответ — тишина. Или, что хуже, шквал вопросов в стиле «а зачем?», «у нас и так всё работает» и «это всё сломает».
Знакомо? Прежде чем записывать команду в ретрограды и саботажники, давайте разберёмся. То, с чем вы столкнулись — не вредность, а фундаментальный баг (или фича?) человеческой психики. Имя ему — сопротивление изменениям.
В статье «Почему ваш новый «гениальный» флоу вызывает у команды панику? Разбираем психологию сопротивления изменениям» мы копнём в нейробиологию и психологию, чтобы понять, почему наш мозг так ненавидит всё новое, и что с этим делать продакту, тимлиду или любому другому менеджеру. Узнаем почему понятный костыль всегда приятнее неизвестного счастья, что на самом деле пугает разработчиков и тимлидов, когда вы внедряете инновации, как обойти страхи, не потерять доверие и не получить force push в master обратно и какие психологические лайфхаки реально работают в жизни, а не в учебниках. Автор разбирает реальные кейсы, шутит, находит баги в «операционке» команды и даёт понятные инструкции, как внедрять любые изменения.
Представлен обучающий курс по Python под названием Advanced Python Mastery от Дэвида Бизли, автора нескольких книг-бестселлеров по этому языку программирования и одного из главных знатоков Python. В базе курса представлены данные по работе на уровне процессора и компилятора до продвинутых концепций программирования на Python и самых актуальных фреймворков, а также десятки материалов с PyCon.
Для ЛЛ: перечислены способы мотивации сотрудников, которые вам могут показаться банальными
Недавно на работе разгорелся жаркий спор. Двое наших разработчиков сцепились из-за выбора библиотеки для работы с датами в монорепе на js. Один был фанатом Luxon, утверждая, что она идеально подходит для сложных задач с датами и временем. Второй клялся, что Date-fns – в это лучший выбор, потому что она лёгкая, быстрая и позволяет использовать только нужные функции, не раздувая проект.
Ну не суть. Я сидел рядом и наблюдал за этим словесным баттлом. Проект уже грозил загнуться, не начавшись.
Понимая, что бесконечные дебаты ни к чему не приведут, я решил вмешаться. Первое, что необходимо сделать в таких ситуациях – выслушать всех причастных. Я дал каждому возможность высказаться, кивая и делая вид, что записываю их аргументы в блокнот. В голове я уже прикидывал, как не дать спору остановить работу.
Разрешение конфликта
Чтобы выйти из тупика, я предложил компромисс: «Ребята, давайте так. Каждый из вас реализует свою часть проекта с использованием своей библиотеки. На проверку идей у вас 2 дня, потом сравним, что получилось». Они согласились, и весь накал спора тут же утих – оба погрузились в работу, стремясь доказать, что их выбор лучший.
В итоге мы остановились на одной из либ, но не это важно. Главное, что разрешился конфликт между двумя сотрудниками на почве выбора технологий. А часто бывает и по-другому, что никто не хочет уступать и каждый топит за свой алгоритм/либу в проекте.
В таких случаях я обычно:
Развожу спорщиков по разным проектам
Или принимаю сам решение какую технологию использовать далее
В обоих случаях после конфликта может упасть мотивация, могут затаиться обиды и т.д.
Мотивация-шмотивация
Несмотря на подзаголовок, я приведу реально применённые способы поднятия мотивации разработчиков:
Деньги-деньги, решают многое. Сюда же незапланированные премии.
Повышение должности сотрудника (иногда даже без повышения зарплаты, не везде корректно настроены грейды). Был «разработчик», стал «Ведущий разработчик», потом «Старший разработчик» и т.д.
Обновляешь ноутбук работнику. Иногда для сотрудника это долгожданное обновление, и это очень повышает его мотивацию и лояльность к компании (ну или к тому, кто её выбил).
Про лишние дни отдыха тоже понятно.
Оплата билетов на конференции по IT-тематике (а они не всем по карману сейчас), покупка лицензий на удобный софт.
Признание заслуг в разработке проекта перед вышестоящим начальством и текущей командой. Хотя это должно быть по умолчанию в команде.
Этих пунктов может быть ещё очень много, везде индивидуально.
Конфликты между коллегами в команде – это не трагедия, а возможность для экспериментов и роста. Выслушать каждого, дать шанс доказать свою точку зрения на практике и подкрепить это мотивацией – именно так конфликт становится точкой роста.
Если есть чем поделиться, как вас мотивировали - прошу в комментарии.
Краткий (и не краткий) экскурс в ГОСТ Р 56939-2024 – РБПО
Недавно мои коллеги обработали и опубликовал пятую — финальную — часть моего рассказа про ГОСТ Р 56939-2024 – Разработка безопасного программного обеспечения. Поскольку все части записывались сразу, к моменту выхода этого заключительного видео я понимаю, что сейчас бы немного иначе его сделал. Видение меняется, появляется новая информация. Например, завершился этап домашнего задания испытаний анализаторов кода, и про это стоило бы упомянуть. Или, например, появилась эта методическая рекомендация, про которую стоило бы рассказать.
Но не страшно, про новое расскажем в рамках других митапов и вебинаров. А пока, вот все части общего обзора:
Но на этом история не закончилась. Сейчас вместе с УЦ "МАСКОМ" и приглашёнными гостями-экспертами мы записываем подробный цикл вебинаров про каждый из 25 процессов, описанных в стандарте.
чем отличаются SLI, SLO и SLA и как их правильно применять?
когда компании осознают необходимость этих метрик и как их встраивать в процессы?
как оценить критичность сервисов и доказать бизнесу ценность SLO/SLA?
В теме помогут разобраться Паша Лакосников, руководитель юнита ArchGovernance в Авито, Дима Синявский, SRE-инженер в Ви.Tech, и Кирилл Юрков, Observability and Reliability Engineering Manager в ecom.tech.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
Компания PVS-Studio и платформа AppSec.Hub заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.
AppSec.Hub — это платформа для автоматизации процессов Application Security, которая позволяет объединять различные инструменты анализа, тестирования и мониторинга безопасности приложений.
Отчёт анализатора PVS-Studio теперь можно загрузить для просмотра в платформу AppSecHub вручную с помощью пользовательского интерфейса инструмента либо с помощью специальной утилиты командной строки.
Подробнее о работе PVS-Studio в AppSec.Hub можно прочитать в посвящённом этому разделе документации.
Также мы провели вебинар с коллегами из AppSec Solutions, чтобы на практике показать, как инструменты работают вместе, а также поделиться полезным опытом в интеграции статического анализа в DevSecOps.
Как мы в Страховом Доме ВСК внедряем ИИ: спецпроект System Analysis & AI Talks AI-запросы, Kafka, автоматизация и даже вайб-кодинг — всё это не сюжет киберпанк-романа, а реальный спецпроект IT VSK — System Analysis & AI Talks, который мы недавно провели в Страховом Доме ВСК.
Этот проект родился из простой, но важной идеи: системный анализ — это не скучно, особенно когда в дело вступает нейросеть. И когда в одной комнате собираются системные аналитики, разработчики и эксперты по ИИ, разговор получается горячим. А мы не просто поговорили, мы показали, как всё это работает на практике в рамках корпоративных ИТ-систем.
System Analysis & AI Talks: немного про магию В рамках AI Talks мы разобрали реальное применение LLM в деятельности системного аналитика — не на уровне «что может ИИ», а с погружением:
Что такое LLM в контексте продуктовой разработки;
Как выполнять базовые операции и избегать ошибок в промт-дизайне;
Как тюнинговать промты под конкретные бизнес-задачи;
Как встраивать нейросети в ежедневную практику.
Особый интерес вызвал наш блок «Открытый микрофон», где участники делились собственным опытом: от подсказок к составлению бизнес-требований до генерации тест-кейсов в один клик.
TechDay: ИИ-киборги, вайб-кодинг и Kafka на грани Вторая часть ИИ-марафона прошла под флагом нашего флагманского проекта TechDay по искусственному интеллекту. Делимся тремя самыми горячими темами:
AI-киборги: минус разработчик или плюс вайб?
Где грань между помощником и угрозой? На этой сессии мы:
Подключали ИИ к IDE прямо на глазах у публики
Показывали, как правильно и этично использовать помощников, не превращая их в «копипасту из ада»
Про наш эксперимент с N8N + ИИ: рассказали коллегам про новые возможности в Страховом Доме ВСК.
Вайб-кодинг: как писать сервисы, не трогая клавиатуру?
Здесь мы раскрыли необычную тему: разработка типового сервиса без ручного программирования. Сравнили: кодить по классике, с low-code, с помощью ИИ — где удобнее, где быстрее, а где надёжнее. В финале показали, как собрать прототип за полчаса, даже если вы не fullstack-разработчик.
Kafka без боли: как не утопить прод Завершили встречу рассказом о самых критичных ошибках при работе с Kafka, которые мы реально встречали в проектах:
Как не перегрузить сеть и диск, когда вы рассылаете сотни тысяч сообщений;
Почему архитектура решает (и как её не сломать с первого коммита);
И где границы между гибкостью и хаосом в распределённых системах;
Что за этим всем стоит?
Спецпроект System Analysis & AI Talks стал частью нашей инициативы по созданию открытого инженерного сообщества внутри Страхового Дома ВСК.
Мы убеждены: ИИ — это не волшебная палочка и не замена человеку, а инструмент, который нужно понимать, настраивать и адаптировать. А ещё — это повод поговорить не только про технологии, но и про культуру внутри команды: делиться опытом, сомневаться, спорить, искать нестандартные решения. Именно это мы и сделали.
P.S. Если вы в своей компании делаете что-то похожее — поделитесь, нам правда интересно! Следите за публикациями в блоге — будет много нового: и про Kafka, и про промты, и про реальные грабли с ИИ в проде.
Про сотрудника Игоря, или про того, кто ни в чем никогда не виноват
Работал у меня в компании лет 5 сотрудник, назовем его Игорь. И странное дело, он всегда был ни в чем не виноват. Что бы ни происходило, но он не виноват по определению.
Это был человек, который всегда делал работу только так, что у него не было никаких вариантов для самостоятельного принятия решений. Если ему что-то непонятно (даже по мелочи), он всегда подходил и спрашивал, как быть. Если есть несколько вариантов решения задачи, он озвучит все варианты и оставить выбор за мной.
С одной стороны, это хорошо, как сотрудник он всегда делегировал сложную часть работы и ответственность на руководителя, а с другой стороны, выглядел как маленький ребёнок, которому дали задачу и даже в самых простых вещах человек бежит к тебе и спрашивает, что и как ему делать.
Причём если ошибка была в коде, который он написал. Игорь каким-то волшебным образом умудрялся всегда находить слова типа: «А вот помнишь, ты мне говорил вот это сделать, я так и сделал, и вот в результате появилась ошибка». Иногда доходило до смешного: на форме при разработке были какие-то орфографические ошибки, и он начинал юлить. )) Мне в какой-то момент даже стало интересно, а в принципе он может сказать: «Я сделал здесь ошибку». И знаете что? За 5 лет работы с ним я так и не добился такого признания.
Что еще было: был сон на рабочем месте в рабочее время, несколько жестких будунищ после выходных, и в таких случаях я всегда его отправлял домой, потому что толку от такого сотрудника нет никакого (это другая история). Но нет. Он никогда не виноват. )))
Минутка рефлексии и мои рассуждения по поводу таких сотрудников:
Сотрудник, не берущий на себя ответственность, обходится компании дороже, чем кажется. Его реальная стоимость — это не только его зарплата, но и десятки часов моего времени как руководителя, потраченные на микроменеджмент и исправление последствий и принятие решений там, где это должен был сделать он. Я, как руководитель, хочу платить деньги профессионалу, а не маленькому ребенку.
На собеседовании нужно всегда задавать вопрос об ошибках. Простой вопрос «Расскажите о своей самой серьезной ошибке и что вы сделали, чтобы ее исправить?» мгновенно выявляет «Игорей». Они либо не могут вспомнить ни одной ошибки, либо рассказывают историю, где виноваты были обстоятельства или коллеги. Так не бывает в реальной жизни. Мы все ошибаемся и это нужно уметь признавать.
Нужно вовремя принимать решение об увольнении. Моя ошибка была в том, что я держал Игоря 5 лет в надежде, что он изменится. Люди меняются крайне редко. Моя задача как руководителя — не быть психотерапевтом, а собирать эффективную команду. Я затянул с этим решением, и это стоило компании и денег, и нервов.
Такие дела…
А у вас в практике был такой коллега — Игорь, который никогда не берет на себя ответственность и пытается ее спихнуть на другого человека?
Больше полезной информации про ИТ-управление, спорные вопросы в найме, менеджменте и планировании — в блоге Код ИТ-директора в Telegram, VK, Дзен, Instagram*, FB*. Подпишитесь, чтобы не пропустить новые тексты!
*Признаны экстремистскими организациями и запрещены на территории РФ.
— Слушай, я посмотрел у Тинькоффа — у них такие крутые анимации. Давайте и нам такие сделаем!
— Ну, у нас не финтех, мобильного приложения нет, и вообще — у нас CRM для логистов…
— Ну и что? Люди любят, когда красиво! Сделаем плавные графики, чтобы всё оживало. UX, UI, ты же понимаешь!
— У нас при этом не работают фильтры, отчёты формируются вручную, и у клиента падает система при импорте Excel. Может, сначала это починим?
— Ладно… Только кнопки тогда сделай с закруглениями, как в Тинькоффе. Хоть что-то красивое будет.
Выглядит лучше. Работает — так же плохо.
Потому что копировать обёртку, когда продукт внутри разваливается — это мёртворождение дизайна.
Вдохновение — не преступление.
Но копирование без понимания контекста — худший выбор.
У Тинькоффа и команда дизайнеров, и исследования юзабилити, и огромный бюджет, и полгода на rollout.
Сначала надо решить боль клиента, а не украсить страдание. Сделай стабильный функционал, и только потом — красивый. Иначе копирование по цене тех долга выйдет.
Представлен открытый репозиторий с коллекцией гайдов по почти всем стекам технологий — от операционных систем и языков программирования до паттернов проектирования и принципов дизайна. Все гайды сжаты и структурированы, включая популярные языки программирования — Python, Java, Go, JS, Rust, всё об инструментах, редакторах кода и IDE, а также шпаргалки по горячим клавишам, библиотеки и фреймворки для работы.
Простой и бесплатной CRM не существует? Похоже, теперь такая уже есть!
Мы запустили в открытое тестирование первую версию CRM внутри YouGile. Она доступна всем без исключения пользователям бесплатно. Смотрите подробнее о ее возможностях:
А для команд до 10 человек вся система управления проектами YouGile бесплатна навсегда без каких-либо ограничений.
Привет, Хабр! 👋 Хочу поделиться небольшой, но полезной фичей, которая упростила мне жизнь при оформлении коммитов.
В своей работе я придерживаюсь структурированного подхода к именованию веток и сообщений коммитов. Подробнее об этом можно почитать здесь: 📎 https://habr.com/ru/articles/820547/
Я использую предложенные в статье правила, немного адаптировав их под себя. Например, добавляю номер задачи в текст коммита — это сильно упрощает анализ изменений при подготовке релиза.
Почему это удобно?
Указание номера задачи позволяет быстро понять, какие именно тикеты попадают в релиз. Особенно это помогает при ревью и при деплое.
Пример структуры ветки:
feat/dev-123_filter или fix/dev-432_filter
Сообщения коммитов я пишу в следующем формате:
dev-123 | настроил сортировку в фильтре
Чтобы не вставлять руками номер задачи каждый раз, я написал небольшой shell-скрипт, который делает это автоматически.
Скрипт prepare-commit-msg
#!/bin/sh
COMMIT_MSG_FILE=".git/COMMIT_EDITMSG"
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
if echo "$BRANCH_NAME" | grep -qE 'dev-[0-9]+'; then
TASK_ID=$(echo "$BRANCH_NAME" | grep -oE 'dev-[0-9]+')
if ! grep -q "$TASK_ID" "$COMMIT_MSG_FILE"; then
sed -i.bak "1s/^/$TASK_ID | /" "$COMMIT_MSG_FILE"
rm -f "$COMMIT_MSG_FILE.bak"
fi
fi
Скрипт нужно сохранить как .git/hooks/prepare-commit-msg и сделать исполняемым:
chmod +x .git/hooks/prepare-commit-msg
Как это работает?
COMMIT_MSG_FILE — путь до файла, в который Git записывает текст коммита.
BRANCH_NAME — название текущей ветки.
Сначала проверяется, есть ли в названии ветки номер задачи (dev-123).
Если он найден и ещё не указан в коммите — скрипт добавляет его в начало первой строки сообщения.
Таким образом, ваш коммит автоматически будет выглядеть так:
dev-123 | добавил пагинацию в список товаров
Вроде мелочь, а приятно — экономит время и упрощает навигацию по истории коммитов.
Если будет интересно — это и другие полезные скрипты, на моём GitHub