OpenAI¶
English · Русский · AI Interview Atlas › Компании
Лаборатории frontier-AI · Международный · Этапы проверены 2026-09-26
Гайды описывают практический кодинг вместо головоломок, презентацию проекта и в части циклов раунд кодинга с AI-ассистентом. От продакт-менеджеров ждут роли, близкой к генеральному менеджеру. Официальный гайд по интервью для этого выпуска прочитать не удалось, поэтому все этапы ниже — вторичные.
На этой странице: Этапы интервью · Вопросы (31)
Роли¶
- AI-инженерия: Разработчик ПО (общий процесс интервью), AI/LLM-инженер, Forward deployed engineer (FDE)
- AI-лидерство: Продакт-менеджер (общий процесс интервью)
Этапы интервью¶
| Этап | Что происходит | Основание |
|---|---|---|
| Звонок с рекрутером | Около 30 минут о бэкграунде, мотивации и соответствии роли. | † гайд или подборка OpenAI's Interview Process & Questions, interviewing.io, проверено 2026-09-26 OpenAI Product Manager (PM) Interview Guide, Aced (formerly Exponent), проверено 2026-09-26 |
| Технические скрининги | Около часа практического кодинга, а для инженеров — отдельный часовой скрининг по system design. | † гайд или подборка OpenAI's Interview Process & Questions, interviewing.io, проверено 2026-09-26 |
| Финальные раунды для инженеров | От четырёх до шести часов: кодинг, system design, презентация проекта со слайдами, поведенческая беседа с senior-менеджером, включая безопасность AI, и раунд о совместной работе. Раунд агентного кодинга с AI-ассистентом на существующей кодовой базе был в бета-режиме. | † гайд или подборка OpenAI's Interview Process & Questions, interviewing.io, проверено 2026-09-26 |
| Цикл для продакт-менеджера | Разговор с нанимающим менеджером, часовой скрининг по product sense и скрининг по execution, затем четыре–шесть финальных раундов: product sense, execution, go-to-market, работа с инженерами, стейкхолдеры и поведенческие вопросы. | † гайд или подборка OpenAI Product Manager (PM) Interview Guide, Aced (formerly Exponent), проверено 2026-09-26 |
| Процесс для forward deployed engineer Forward deployed engineer (FDE) |
Гайд описывает процесс, который зависит от команды: звонок с рекрутером, начальные скрининги по кодингу и проектированию или домашнее задание с разбором, затем виртуальный onsite. Общая длительность по оценке гайда — три-четыре недели. | † гайд или подборка OpenAI Forward Deployed Engineer (FDE) Interview Guide, Aced (formerly Exponent), проверено 2026-09-29 |
Кодинг: неизвестно. Вторичные гайды описывают кодинг; в этом выпуске нет подтверждения требования компанией или участником интервью. (OpenAI's Interview Process & Questions, interviewing.io, проверено 2026-09-26, OpenAI Product Manager (PM) Interview Guide, Aced (formerly Exponent), проверено 2026-09-26)
Вопросы, о которых сообщали для OpenAI¶
Основы LLM¶
- Выведите объём памяти KV-кеша декодера в зависимости от размера батча и длины контекста.
- Знания · Где спрашивали: Amazon †, OpenAI † · ✍ Ответ
- Что проверяет: Умение рассчитать размер кеша с учётом архитектуры.
- Сильный ответ покрывает:
- Для равных длин использовать 2 × батч × слои × токены × KV-головы × размер головы × байты.
- Объяснить, почему запросы не сохраняют для последующих шагов декодирования.
- Отдельно учесть веса, активации, padding и накладные расходы выделения памяти.
- Читать: Efficient Memory Management for Large Language Model Serving with PagedAttention (Kwon et al., arXiv) · GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints (Ainslie et al., arXiv)
- Свяжите cross-entropy, KL divergence и perplexity в предсказании следующего токена и назовите условия корректного сравнения.
- Знания · Где спрашивали: OpenAI †
- Что проверяет: Умение согласованно использовать вероятностные определения.
- Сильный ответ покрывает:
- Показать, что cross-entropy равна энтропии данных плюс KL от данных к модели, поэтому при фиксированных данных минимизировать одно и другое равносильно.
- Определить перплексию как экспоненту среднего cross-entropy на токен в натах; она зависит от токенизатора, текста оценки и длины контекста.
- Сравнивать разные токенизаторы в битах на байт, зафиксировав текст, обработку контекста и основание логарифма.
- Читать: Deep Learning: Probability and Information Theory (Ian Goodfellow, Yoshua Bengio and Aaron Courville)
- Объясните рост стоимости self-attention с длиной контекста и сравните способы её уменьшить.
- Знания · Где спрашивали: OpenAI †
- Что проверяет: Умение отличать оптимизацию исполнения от изменения поведения модели.
- Сильный ответ покрывает:
- Показать стоимость: произведения оценок и значений в prefill растут как T², а каждый шаг decode читает KV-кеш, линейный по T.
- Отделить точные ядра вроде FlashAttention, сокращающие обмен с памятью, от окон, разреженности, вытеснения KV или GQA, меняющих выход модели.
- Для методов, меняющих поведение, заново прогнать оценки на длинном контексте; для точных — проверить только численную эквивалентность и скорость.
- Читать: FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (Dao et al., arXiv) · GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints (Ainslie et al., arXiv)
Инференс, serving и стоимость¶
- После релиза p99 задержки удвоился, хотя веса модели не менялись. Как локализовать причину?
- Прикладной сценарий · Где спрашивали: Amazon †, Databricks †, OpenAI †, Perplexity † · ✍ Ответ
- Что проверяет: Умение разделить ожидание, планирование, зависимости и изменения трафика.
- Сильный ответ покрывает:
- Сравнить состав трафика, время в очереди и задержки этапов до и после релиза.
- Проверить попадания в кеш, батчинг, хвосты зависимостей и насыщение ресурсов.
- Проверять гипотезы по одной и подтвердить причинность откатом или canary.
- Читать: The Tail at Scale (Dean and Barroso, Google Research)
Агенты, инструменты и протоколы¶
- Спроектируйте восстановление после ошибок и тайм-аутов инструментов, включая случай, когда операция уже изменила внешнее состояние.
- System design · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Умение сохранить корректность при повторных попытках.
- Сильный ответ покрывает:
- Различать временные, постоянные и неопределённые исходы до повтора.
- Использовать ключи идемпотентности или сверять состояние после неопределённых записей.
- Ограничить попытки и время; добавить backoff, jitter и эскалацию.
- Читать: Designing robust and predictable APIs with idempotency (Stripe)
- Спроектируйте подтверждение человеком значимых действий агента, связав разрешение с конкретным исполняемым действием.
- System design · Где спрашивали: OpenAI †, Palantir † · ✍ Ответ
- Что проверяет: Умение обеспечить контроль разрешений вне модели.
- Сильный ответ покрывает:
- Показать конкретное действие, адресата и последствия до подтверждения.
- Связать разрешение с проверенными аргументами и повторно проверить права при исполнении.
- Записать решение и результат; аннулировать разрешение при существенном изменении действия.
- Читать: Building Effective AI Agents (Anthropic) · Designing robust and predictable APIs with idempotency (Stripe)
Дообучение и post-training¶
- Выберите между изменением промпта, retrieval и дообучением для неудачной AI-функции; учтите свежесть данных, задержку и полную стоимость.
- Прикладной сценарий · Где спрашивали: Databricks †, Microsoft †, OpenAI † · ✍ Ответ
- Что проверяет: Умение выбрать вмешательство по выявленной причине ошибки.
- Сильный ответ покрывает:
- Разделить нехватку знаний, плохие инструкции и нежелательное поведение.
- Задать промптовый baseline; проверить retrieval для свежих знаний с источниками.
- Дообучать при достаточных характерных примерах и сравнить полную стоимость и отложенное качество.
- Читать: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., arXiv) · LoRA: Low-Rank Adaptation of Large Language Models (Hu et al., arXiv)
Оценка качества и наблюдаемость¶
- Как измерять неподтверждённые утверждения в работающем RAG-приложении, не принимая гладкий текст за правильный ответ?
- System design · Где спрашивали: Anthropic †, OpenAI † · ✍ Ответ
- Что проверяет: Умение отличать опору на источники от беглости и правдоподобия.
- Сильный ответ покрывает:
- Сделать единицей измерения утверждение, проверенное против фрагментов, реально найденных для этого ответа.
- Масштабировать разметку судьёй, откалиброванным на размеченной людьми выборке.
- Разделять ошибку поиска и недостоверную генерацию при отнесении причины.
- Читать: Your AI Product Needs Evals (Hamel Husain)
- Клиент жалуется на худшие ответы после обновления модели. Как проверить регрессию и решить, что восстановить или изменить?
- Прикладной сценарий · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Умение воспроизвести реальные клиентские ошибки и выбрать исправление.
- Сильный ответ покрывает:
- Собрать точные неудачные запросы клиента и перечислить все изменения, вышедшие с обновлением, а не только модель.
- Прогнать старую и новую конфигурацию на одинаковых входах с повторными сэмплами и слепым попарным сравнением.
- Выбрать исправление по причине: починить конфигурацию, адаптировать промпт или закрепить версию; добавить кейсы в критерии допуска.
- Читать: Your AI Product Needs Evals (Hamel Husain)
Безопасность, защита и governance¶
- Как вы организуете безопасность потребительского продукта на основе генеративного AI?
- Продуктовый кейс · Senior · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Учитывают ли требования безопасности реальных пользователей и возможный вред.
- Сильный ответ покрывает:
- Выбрать конкретный сценарий, аудиторию и модель злоупотреблений.
- Объединить продуктовые ограничения, оценку модели, жалобы и эскалацию человеку.
- Измерять вредные ответы и необоснованные отказы по сегментам пользователей.
- Читать: AI Risk Management Framework (NIST) · OWASP Top 10 for LLM Applications (OWASP Gen AI Security Project)
- Какие защитные меры нужны AI-системе, действующей от имени пользователя?
- System design · Senior · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Различаете ли вы предложенное моделью действие и разрешённое выполнение.
- Сильный ответ покрывает:
- Ограничить полномочия пользователем, ресурсом и операцией.
- Показывать значимые действия для подтверждения и проверять политику при выполнении.
- Фиксировать действия, ограничивать расходы и предусмотреть восстановление после частичного выполнения.
- Читать: OWASP Top 10 for LLM Applications (OWASP Gen AI Security Project) · Designing robust and predictable APIs with idempotency (Stripe)
Дизайн AI-систем¶
- Спроектируйте помощника по десяти миллионам корпоративных документов с индивидуальными правами и постоянно меняющимся корпусом.
- System design · Где спрашивали: Amazon †, Databricks †, Microsoft †, OpenAI † · ✍ Ответ
- Что проверяет: Умение связать загрузку, поиск, контроль доступа и обслуживание в рабочую систему.
- Сильный ответ покрывает:
- Уточнить объём запросов, свежесть и семантику прав до расчёта мощности.
- Разделить загрузку и версии индекса с проверкой прав и поиском во время запроса.
- Оценить обоснованность ответов и проверить отзыв прав, устаревание и частичные отказы.
- Читать: Document-level access control (Microsoft Learn) · Contextual Retrieval in AI Systems (Anthropic)
- Спроектируйте потоковый чат для сотен миллионов пользователей с планированием мощности, хранением диалогов и работой при перегрузке.
- System design · Где спрашивали: Anthropic †, Google и Google DeepMind †, Meta †, OpenAI † · ✍ Ответ
- Что проверяет: Умение вывести решения по мощности и надёжности из предположений о масштабе.
- Сильный ответ покрывает:
- Оценить число потоков, спрос на токены и хранение по явным предположениям о трафике.
- Разделить допуск запросов, планирование инференса и долговременное состояние диалога.
- Предусмотреть запас мощности, отмену, отказ при перегрузке и восстановление после частичного сбоя.
- Читать: Site Reliability Engineering (Google) · Efficient Memory Management for Large Language Model Serving with PagedAttention (Kwon et al., arXiv)
- Спроектируйте надёжную доставку событий на webhook клиентов при тайм-аутах, повторах и недоступности получателей.
- System design · Где спрашивали: OpenAI †
- Что проверяет: Умение точно задать гарантии доставки и обязанности получателя.
- Сильный ответ покрывает:
- Заявить гарантию как at-least-once без порядка и обязать получателя отсеивать дубли по стабильному id события.
- Записывать события в надёжный outbox в той же транзакции, затем повторять с ограниченным backoff и jitter.
- Изолировать сбойные endpoint-ы отдельными очередями, отключать после окна повторов и поддержать повторную отправку.
- Читать: Designing robust and predictable APIs with idempotency (Stripe) · Standard Webhooks specification (Standard Webhooks)
Практический кодинг¶
- Напишите кеш с постоянным временем поиска и обновления давности, затем добавьте срок действия без нарушения правил вытеснения.
- Кодинг · Где спрашивали: OpenAI †
- Что проверяет: Умение сохранить инварианты структуры данных при расширении требований.
- Сильный ответ покрывает:
- Уточнить ёмкость, обновляет ли чтение давность и учитываются ли просроченные записи до их удаления.
- Использовать хеш-таблицу с двусвязным списком для O(1); один путь удаления обслуживает и истечение, и вытеснение.
- Проверить ёмкость, равную единице, обновление существующего ключа и истечение ровно на границе с подменяемыми часами.
- Читать: collections: OrderedDict objects (Python Software Foundation) · heapq: Heap queue algorithm (Python Software Foundation)
- Реализуйте token-bucket limiter и объясните изменения для общего лимита, применяемого несколькими воркерами.
- Кодинг · Где спрашивали: Anthropic †, OpenAI † · ✍ Ответ
- Что проверяет: Умение сохранить квоту при учёте времени и параллельных обновлениях.
- Сильный ответ покрывает:
- Пополнять токены по монотонному времени с ограничением ёмкости.
- Сделать проверку и списание атомарными для конкурирующих вызовов.
- Проверить всплески и временные границы; задать контракт общего хранилища или разбиения для распределённого лимита.
- Читать: Scaling your API with rate limiters (Stripe)
- Реализуйте key-value хранилище в памяти с begin, commit и abort, явно задав поддерживаемую семантику транзакций.
- Кодинг · Где спрашивали: OpenAI †
- Что проверяет: Соответствие отката и видимости чёткому контракту.
- Сильный ответ покрывает:
- Зафиксировать контракт: вкладываются ли транзакции и видят ли другие клиенты незакоммиченные записи.
- Держать стек слоёв записей с маркерами удаления; чтение идёт сверху вниз, commit сливает слой в родительский.
- Проверить удаление ключа, заданного в той же транзакции, откат вложенного уровня и commit или abort без открытой транзакции.
- Читать: Transaction Isolation (PostgreSQL documentation)
- Отрефакторите небольшую плохо структурированную программу с проходящими тестами. Объясните первое изменение и сохранение наблюдаемого поведения.
- Кодинг · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Умение улучшать код постепенно с понятной пользой для сопровождения.
- Сильный ответ покрывает:
- Сначала зафиксировать наблюдаемое поведение, добавив характеризующие тесты там, где существующие проверяют слишком мало.
- Сделать первое изменение маленьким и механическим, например выделить функцию, прогоняя тесты после каждого шага.
- Обосновывать каждый шаг устранённой ценой сопровождения и никогда не смешивать рефакторинг с изменением поведения.
- Читать: Working Inside Existing Systems (Palantir Careers) · Refactoring (Martin Fowler)
- Сделайте семантический поиск по каталогу товаров, который чат-модель может вызывать как инструмент.
- Кодинг · Где спрашивали: OpenAI †
- Что проверяет: Умение совместить поиск с понятным, проверяемым интерфейсом инструмента, которым модель может надёжно пользоваться.
- Сильный ответ покрывает:
- Задать контракт инструмента: запрос, типизированные фильтры, лимит результатов и компактный ответ со стабильными id товаров.
- Индексировать описания товаров эмбеддингами вместе с поиском по ключевым словам и применять фильтры до ранжирования.
- Возвращать понятные ошибки и явный пустой результат; оценить выбор инструмента и аргументы на реалистичных запросах в чате.
- Читать: Writing effective tools for AI agents—using AI agents (Anthropic) · Tool use with Claude (Claude Platform Docs)
- Реализуйте систему кредитов с разными правилами сгорания и условиями использования и расширяйте её по мере поступления новых требований.
- Кодинг · Где спрашивали: OpenAI †
- Что проверяет: Выдерживает ли ваше решение меняющиеся бизнес-правила без переписывания.
- Сильный ответ покрывает:
- Моделировать кредиты как начисления с суммой, сроком и условиями, а списания — как записи в журнале только на добавление.
- Вынести политику списания, например сначала ближайший срок через кучу, чтобы новые правила подключались без переписывания.
- Проверить истечение ровно в момент срока, списание из нескольких начислений, нехватку баланса и пересчёт остатков по журналу.
- Читать: heapq: Heap queue algorithm (Python Software Foundation) · Transaction Isolation (PostgreSQL documentation)
Стратегия и метрики AI-продукта¶
- Как бы вы улучшили ChatGPT для корпоративных клиентов?
- Продуктовый кейс · Senior · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Умеете ли вы выбрать конкретный рабочий процесс и обосновать его ценность.
- Сильный ответ покрывает:
- Выбрать сегмент клиентов, пользователя и существенную проблему рабочего процесса.
- Сравнить AI- и обычные решения, сложность интеграции и требования к доверию.
- Определить результат пилота, ограничения по качеству и условие расширения запуска.
- Читать: Measuring the User Experience on a Large Scale: User-Centered Metrics for Web Applications (Rodden, Hutchinson and Fu, Google Research) · Rules of Machine Learning (Google for Developers)
- Модель существенно мощнее, но стоит в десять раз дороже. Как решить, какой продукт на ней создавать?
- Продуктовый кейс · Senior · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Умеете ли вы связать возможности модели с готовностью платить и экономикой продукта.
- Сильный ответ покрывает:
- Найти задачи, где улучшение делает возможным новый результат.
- Оценить стоимость успешно выполненного процесса с повторами и проверкой человеком.
- Проверить готовность платить и выборочное использование модели до массового внедрения.
- Читать: Rules of Machine Learning (Google for Developers) · Measuring the User Experience on a Large Scale: User-Centered Metrics for Web Applications (Rodden, Hutchinson and Fu, Google Research)
- Вы изобрели «машину воспоминаний», которая создаёт видео, изображения, запахи и звуки. Как вывести её на рынок?
- Продуктовый кейс · Senior · Где спрашивали: OpenAI †
- Что проверяет: Умеете ли вы превратить непривычную возможность в конкретную стратегию выхода на рынок.
- Сильный ответ покрывает:
- Выбрать первый сегмент и повод и оставить только те модальности, без которых этот повод не работает.
- Измерять повторное платное использование с ограничениями по дистрессу пользователей и согласию изображённых людей.
- Проверить готовность платить на пилоте, проводимом вручную, до разработки устройства для запахов.
- Читать: User Needs + Defining Success (Google PAIR) · How the alpha phase works (Government Digital Service)
Программы и delivery¶
- Расскажите о самом сложном продуктовом запуске, которым вы руководили.
- Поведенческий · Senior · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Умеете ли вы объяснить зависимости, решения и собственный вклад в результат.
- Сильный ответ покрывает:
- Описать цель, ограничения, участников и критические зависимости.
- Разобрать важное решение, альтернативы и согласование действий участников.
- Назвать достигнутый результат и изменения для последующих запусков.
- Читать: Site Reliability Engineering (Google) · Design Docs at Google (Industrial Empathy)
Прикладные и клиентские сценарии¶
- Клиент хочет автоматизировать обработку страховых требований с помощью AI. Что вы сделаете за первые две недели?
- Прикладной сценарий · Senior · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Умеете ли вы превратить широкий запрос в ограниченный и измеримый рабочий процесс.
- Сильный ответ покрывает:
- Разобрать текущий процесс, решения, исключения и ответственных пользователей.
- Проверить доступ к данным, последствия ошибок и этапы, требующие решения человека.
- Выбрать узкий пилот с базовой линией, критериями приёмки и владельцем.
- Читать: Building Effective AI Agents (Anthropic) · AI Risk Management Framework (NIST)
Поведенческие вопросы и ценности¶
- Расскажите о своей ошибке, её последствиях и последующих изменениях в работе.
- Поведенческий · Senior · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Берёте ли вы ответственность и подтверждаете ли выводы конкретными изменениями поведения.
- Сильный ответ покрывает:
- Описать своё решение и данные, которыми располагали тогда.
- Объяснить последствия, восстановление и свою ответственность без перекладывания вины.
- Назвать устойчивое изменение и признаки его пользы.
- Читать: Postmortem Culture: Learning from Failure (Google)
- Каким проектом вы больше всего гордитесь и почему?
- Самопрезентация · Senior · Где спрашивали: OpenAI †
- Что проверяет: Умеете ли вы объяснить значимый результат и свой реальный вклад.
- Сильный ответ покрывает:
- Выбрать проект по тому, что изменилось для пользователей или бизнеса, а не по технологии или громкому имени.
- Отделить то, что вы лично решили и сделали, от работы команды, и назвать самое трудное своё решение.
- Закончить подтверждением результата и тем, почему вам важен именно этот проект, а не более крупный.
- Читать: Measuring the User Experience on a Large Scale: User-Centered Metrics for Web Applications (Rodden, Hutchinson and Fu, Google Research)
- Расскажите о конфликте с коллегой: как вы его разрешали и чему научились.
- Поведенческий · Senior · Где спрашивали: OpenAI †
- Что проверяет: Понимаете ли вы позицию другого человека и свою роль в конфликте.
- Сильный ответ покрывает:
- Выбрать конфликт, в который внесло вклад и ваше поведение, а не историю о просто трудном коллеге.
- Изложить позицию коллеги так, как изложил бы её он сам, с учётом давления на него, и только потом свою.
- Закончить тем, какими стали рабочие отношения и что вы сами теперь делаете иначе.
- Читать: Communication (GitLab Handbook)
- Расскажите о противоречащих приоритетах участников проекта и о том, как вы согласовали действия.
- Поведенческий · Senior · Где спрашивали: OpenAI † · ✍ Ответ
- Что проверяет: Умеете ли вы явно обсудить конкурирующие цели и договориться о действиях.
- Сильный ответ покрывает:
- Назвать участников и цель, по которой каждого действительно оценивали.
- Показать, как вы вывели конфликт в плоскость компромисса, а не столкновения характеров.
- Закончить договорённостью, тем, чем пожертвовали, и свидетельством, что она держалась.
- Читать: Organizational Change Management (GitLab Handbook)
- Как вы управляете конфликтом, когда нужно действовать срочно?
- Прикладной сценарий · Senior · Где спрашивали: OpenAI †
- Что проверяет: Меняет ли срочность процесс решения без отказа от уважения и ответственности.
- Сильный ответ покрывает:
- Сначала явно назвать владельца решения и срок, чтобы срочность сокращала обсуждение, а не отменяла его.
- Коротко выслушать каждую сторону, предпочесть обратимый шаг и зафиксировать несогласие, а не молча его отбросить.
- Вернуться к вопросу после спада давления: разобрать решение, восстановить отношения и устранить причину спешки.
- Читать: Site Reliability Engineering (Google)
- Какую самую крупную неудачу вы пережили как продакт-менеджер?
- Поведенческий · Senior · Где спрашивали: OpenAI †
- Что проверяет: Умеете ли вы честно разобрать продуктовое решение, последствия и изменение практики.
- Сильный ответ покрывает:
- Выбрать по-настоящему крупную неудачу, коренящуюся в вашем собственном продуктовом суждении, а не в чужом исполнении.
- Восстановить, во что вы тогда верили, какой сигнал недооценили и чего это стоило пользователям и бизнесу.
- Закончить изменённой практикой, например тем, как вы проверяете спрос, и более поздним решением, которое она улучшила.
- Читать: Postmortem Culture: Learning from Failure (Google)