惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tor Project blog
B
Blog RSS Feed
M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
罗磊的独立博客
GbyAI
GbyAI
N
Netflix TechBlog - Medium
博客园 - 司徒正美
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
W
WeLiveSecurity
Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
SecWiki News
SecWiki News
V
Vulnerabilities – Threatpost
Google DeepMind News
Google DeepMind News
C
CERT Recently Published Vulnerability Notes
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Register - Security
The Register - Security
Cisco Talos Blog
Cisco Talos Blog
Martin Fowler
Martin Fowler
A
About on SuperTechFans
S
Security @ Cisco Blogs
T
Tenable Blog
C
Check Point Blog
N
News and Events Feed by Topic
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Attack and Defense Labs
Attack and Defense Labs
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cisco Blogs
P
Palo Alto Networks Blog
V
V2EX
博客园 - 聂微东
Project Zero
Project Zero
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
N
News | PayPal Newsroom
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
小众软件
小众软件
Application and Cybersecurity Blog
Application and Cybersecurity Blog
人人都是产品经理
人人都是产品经理
V2EX - 技术
V2EX - 技术
I
Intezer
L
LINUX DO - 最新话题

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
14 уроков за 14 лет опыта работы в Google
vldmrmlkv · 2026-04-25 · via Все публикации подряд на Хабре

Эдди Османи (Addy Osmani)

Ирландский инженер‑программист, руководитель, директор в подразделении Google Cloud AI, где он работает над проектами Gemini, Vertex AI и Agent Development Kit (ADK). После почти 14 лет работы в Chrome, где он руководил разработкой DevTools, Lighthouse и Core Web Vitals, он теперь объединяет команды Google DeepMind, инженеров, специалистов по продуктам и специалистов по связям с разработчиками.

Самые трудные уроки, которые я усвоил, — не о том, как работаешь ты. Они о том, как работают команды: как на самом деле принимаются решения, где ломается координация, чем отличаются команды, которые доводят дело до конца, от тех, кто стоит на месте.

Этот список советов про то, как стать сильнее как отдельный инженер, и больше — про системы вокруг инженерии.

1. Лучшие инженеры выбирают правильные задачи.

Каждое «да» — это неявное «нет» чему‑то другому.

Я видел, как талантливые инженеры выгорали, потому что соглашались на всё: каждый баг, каждую новую фичу, каждую «маленькую просьбу». Их календарь заполнялся чужими приоритетами, а собственная дорожная карта превращалась в кладбище недоделанных идей.

Иногда это просто потому, что им действительно небезразличен продукт. Защищайте своё время от «было бы неплохо» так же, как защищаете продакшен от сбоев. Настоящее мастерство — [уметь расставлять приоритеты - пер.], делать правильные вещи и игнорировать неправильные.

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

2. Если вы не можете сформулировать, какое решение вам нужно, вы не готовы к встрече.

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

Я научился начинать с запроса: утвердить, выбрать, разблокировать или проинформировать.

Эти четыре слова изменили мой подход к подготовке. Если я не могу выбрать одно, значит, я не готов тратить чужое время. А когда я сам участник, я стал спрашивать в первые две минуты: «какое решение от меня требуется?» Это звучит прямо, но люди обычно испытывают облегчение — часто они сами не осознавали, что не сформулировали это.

Скрытая цена расплывчатых встреч — не только потерянное время. Это неделя расфокусировки, пока все ждут ясности, которая так и не наступает.

3. «Надо бы» — не план. «Во вторник я сделаю» — план.

Разница между движением и прогрессом — в конкретике.

Команды тонут в намерениях. Я видел дорожные карты, забитые «надо улучшить онбординг», «надо снизить задержки», «надо задокументировать API». Проходят месяцы — и всё это так и пылится, вызывая лишь чувство вины. Можно подумать, что с появлением агентных ИИ это решено, но не совсем.

Переводите разговор в самое маленькое конкретное действие, которое реально можно сделать, и закрепляйте за ним человека и срок. Не «надо улучшить онбординг», а «во вторник Саша проведёт три пользовательских интервью и задокументирует основные точки трения».

Это про внимание к тому, как люди двигаются вперёд. Размытые намерения вызывают тревогу. Конкретные обязательства создают импульс. План не обязан быть идеальным — он должен быть достаточно конкретным, чтобы с него можно было начать.

4. Медленный код иногда — симптом. Медленные решения — всегда проблема.

Скорость — это про устранение трения, из‑за которого умные люди колеблются. Там, где возможно, нужно переходить к действию.

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

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

Самая быстрая команда, с которой я работал, не состояла из лучших программистов. Она просто принимала решения за часы, а не недели: потому что полномочия были ясны, контекст — общий, а ошибка не считалась карьерным риском.

5. Надёжность — это тоже функция продукта. Относитесь к ней так же.

Пользователи редко хвалят надёжность, но всегда замечают её отсутствие.

Это создаёт опасную динамику: работа над надёжностью незаметна, пока всё работает, и поэтому ей хронически не хватает ресурсов по сравнению с новыми крутыми фичами.

Бюджеты ошибок — один из способов сделать компромисс явным. Если у сервиса SLO 99,9% доступности, у вас есть «бюджет» в 0,1% на сбои ради инноваций. Потратили его — возвращаетесь к надёжности, пока не восстановите запас. Это инструмент для честного разговора о рисках.

Команды, которые сохраняют и скорость, и надёжность, делают это не за счёт героизма. Они рассматривают надёжность как полноценную функцию продукта — со своей дорожной картой, метриками и ответственными.

Вы же не выпускаете фичу без продуктового ревью. Не выпускайте систему без обсуждения надёжности.

6. Невозможно решить проблему плохого взаимодействия между командами, просто «наладив» коммуникацию.

Режимы взаимодействия команд существуют не просто так: сотрудничество (плотная совместная работа), сервис (чёткие API и SLA) или фасилитация (одна команда помогает другой развить компетенцию).

Большинство проблем между командами — не про усилия или добрые намерения. Они про размытые границы и неясные договорённости. Я видел, как команды «улучшали коммуникацию», добавляя встречи, чаты, синки[от synchronization meetings - пер.] — и это не помогало.

Проблема не в том, что люди мало говорят. Проблема в том, что интерфейс между командами не определён. Кто за что отвечает? В чём договорённость? На что команда A может рассчитывать от команды B — и наоборот?

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

7. Лучший способ инициировать обсуждение проблемы — предложить решения.

«Вот проблема» — это только половина работы. Раньше я думал, что моя задача — находить проблемы и доносить их до руководства. Это необходимо, но недостаточно.

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

Вы упрощаете им задачу — и повышаете шанс получить нужную поддержку.

Разница между «мне нужна помощь» и «выберите между A и B, и вот почему я склоняюсь к B» — это разница между тем, кто обозначает проблему, и тем, кто её решает.

Оба видят проблему. Но доверие и автономию получает только второй.

8. Избегайте культуры спасателей. Стройте системы, которым не нужны спасатели.

Выгоревший сотрудник, после решения "срочной проблемы", который не оставил документации и является единой точкой отказа.

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

Когда такие люди уходят — а рано или поздно они уходят — выясняется, что больше никто не понимает, как всё устроено. Культ спасателей маскирует простую вещь: нормальный путь для обычного человека в обычный день не работает.

Сделайте нормальный путь основным. Документируйте систему. Распространяйте знания. Проектируйте под обычный вторник, а не под чрезвычайную ситуацию. Спасатели должны быть не нужны — а если они нужны, значит, нужно работать над тем, чтобы они стали не нужны.

9. Наблюдаемость — это важно.

Фича без телеметрии — это скрытый риск.

Если вы выпустили фичу и не знаете, как она ведёт себя в продакшене, вы создали неопределённость.

Я видел, как команды праздновали релизы, а через недели обнаруживали, что у 20% пользователей всё тихо ломается. Ни логов, ни метрик, ни дашбордов — только пустота там, где должно быть понимание. Исправление такого может быть болезненным — вплоть до отката и повторного запуска с нормальной наблюдаемостью.

Логи, трейсы, дашборды и алерты — это не «операционка». Это способ учиться. Это способ понять, работает ли то, что вы сделали, для реальных людей в реальных условиях.

Лучшие инженеры считают наблюдаемость частью определения «сделано». Не «я написал код», а «я написал код и вижу, как он работает».

10. Небольшие PR(Pull Request) — это забота о других. Особенно если PR сгенерирован ИИ.

Небольшие изменения проще проверять, понимать и откатывать.

Раньше я писал большие pull request'ы. Мне нравилась идея сразу показать законченную фичу. На деле я оптимизировал своё удобство за счёт времени и нервов ревьюеров. Маленькие PR почти всегда - лучшее решение.

Они быстрее попадают в продакшен, потому что не застревают в очереди на ревью, пока кто‑то ищет час, чтобы разобраться в вашем тысячестрочном диффе. Хотите, чтобы команда доверяла вашему темпу работы — делайте работу удобной для ревью.

Есть и скрытый плюс: маленькие PR заставляют мыслить шагами. Вместо одного монолита вы наращиваете функциональность постепенно. Каждый шаг получает обратную связь. Каждый можно откатить отдельно. По отдельности это медленнее, но до продакшена — быстрее.

11. Добавляя людей в команду, вы добавляете не только узлы, но и связи.

Стоимость координации растёт быстрее, чем численность.

Вот почему «давайте просто добавим людей» часто не работает и почему расширение команды в конце проекта может его только замедлить. Каждый новый человек увеличивает нагрузку на коммуникацию со всеми, с кем нужно взаимодействовать. Граф становится плотнее, а не просто больше.

Я видел, как менеджеры искренне удивлялись: команда выросла вдвое, а результат почти не изменился. Ответ всегда один — новые связи «съели» новую ёмкость. Больше людей — больше совещаний, больше обмена контекстом, больше ожидания решений, в которых теперь участвует больше сторон.

Решение не в том, чтобы перестать нанимать. А в том, чтобы осознанно сокращать связи: чёткая зона ответственности, автономные команды с минимальными зависимостями, интерфейсы, позволяющие работать параллельно, а не синхронно. Лучшие организации — не те, где больше всего людей, а те, где выше отдача на человека.

12. Миграция — это никогда не просто миграция.

Любая миграция — это переговоры между текущей системой, желаемой системой и людьми, которые не просили ни о той, ни о другой.

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

Технический план — самая простая часть. Сложнее всего — спроектировать сосуществование. Старое и новое будут жить параллельно дольше, чем вы думаете. Вы обнаружите, что «легаси»‑система хранит решения, которые никто не задокументировал, и процессы, которые никто не помнит, но все от них зависят. Вам понадобится стратегия внедрения, которая не требует от всех команд остановиться и переключиться разом.

Миграции, которые действительно завершаются, объединяют три вещи: вовлечённый спонсор, который не исчезает после старта; команда, для которой миграция — не побочная задача; и чёткая дата отключения старой системы, в реальность которой верят.

Без этого миграция превращается в вечное «почти готово» — а это хуже, чем не начинать вовсе, потому что вы бесконечно платите за две системы.

Если вы не готовы инвестировать в завершение, не начинайте миграцию.

13. ИИ удешевляет создание черновиков, а опыт и насмотренность становятся дорогими.

Теперь каждый может генерировать код. Порог входа в создание кода, контента, дизайна — стремительно падает. ИИ может предложить десять вариантов там, где раньше был один.

Разница теперь — в выборе: что делать, что удалить, что упростить, что не выпускать и что считать «хорошим». Насмотренность["вкус" у автора - пер.] — способность различать варианты и выбирать правильный — становится дефицитным ресурсом.

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

Создавать дёшево. Редактировать дорого. Выбор решает всё.

14. Доверие — это оптимизация задержек в команде.

Самое ценное, что можно построить, — не система, а доверие.

Когда вам доверяют, не нужно пять встреч, чтобы утвердить решение. Предполагается компетентность, добрые намерения и способность доводить дела до конца. То, что в среде с низким доверием занимает недели, в среде с высоким — часы.

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

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

Код ничего не стоит, если вы не можете найти людей, готовых продвигать его вместе с вами.

В заключение

В прошлых статьях я писал, что все эти уроки сводятся к любопытству, скромности и пониманию, что работа — это про людей. Я по‑прежнему так считаю.

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

Addy Osmani

Выделите фрагмент текста и используйте ⌘/CTRL + Enter для отправки сообщения об ошибке.