1.1

Смотреть на английском

1.1 Ценности программной инженерии

Обзор и мотивация

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

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

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

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

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

Ключевые принципы

  • Психологическая безопасность фундамент; без неё любая другая практика деградирует.
  • Сбой это данные. Обучение без поиска виноватых превращает инциденты в устойчивые улучшения.
  • Ответственность означает подотчётность за результаты, а не только за выпускаемое: «ты построил, ты и эксплуатируешь».
  • Письмо это мышление. Культура, которая записывает решения, масштабирует своё суждение.
  • Устойчивый темп лучше героизма; выгорание это сбой системы, а не личный сбой.
  • Разнообразие, равенство и инклюзивность инженерные преимущества, повышающие качество решений.
  • Ценности задаются сверху личным примером и подкрепляются снизу; действия руководителей весят больше их слов.

Рекомендации

Выстраивайте психологическую безопасность намеренно

Психологическая безопасность это общая уверенность в том, что можно высказаться, задать вопрос, признать ошибку и оспорить решение, не опасаясь унижения или наказания. Это самый сильный из известных предикторов эффективности команды в масштабных исследованиях. Выстраивайте её намеренно. Пусть руководители вслух признают собственные ошибки («вот ошибка, которую я допустил, и вот чему она меня научила»). Встречайте плохие новости любопытством, а не наказанием. Открыто приглашайте к несогласию на встречах. Меняйте порядок выступающих, чтобы голоса старших не задавали тон обсуждению. И сделайте обычным делом фразы «я не знаю» и «мне нужна помощь».

Практикуйте обучение без поиска виноватых

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

Устанавливайте ясные модели ответственности

«Ты построил, ты и эксплуатируешь» делает команду, написавшую сервис, ответственной за его эксплуатацию, включая дежурства. Это сокращает петлю обратной связи между проектными решениями и операционной болью, а значит, повышает качество. Дополните это каталогом сервисов, где для каждой системы записано, кто ею владеет, как с ним связаться, какие у неё зависимости и ранбуки. Держите владение явным и непересекающимся. Размытая ответственность это то, как системы гниют, а инциденты затягиваются. Если команда действительно не может эксплуатировать систему самостоятельно, дайте ей платформенную поддержку, а не размывайте подотчётность.

Взращивайте культуру письма

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

Защищайте устойчивый темп

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

Относитесь к DEI как к инженерному преимуществу

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

Компромиссы: плюсы и минусы

ПодходПлюсыМинусы
Постмортемы без поиска виноватыхВыявляют настоящие первопричины; укрепляют доверие; ведут к системным исправлениямДля посторонних могут выглядеть как «отсутствие подотчётности»; требуют дисциплины для закрытия задач
«Ты построил, ты и эксплуатируешь»Тугая петля обратной связи по качеству; ясная ответственностьНагрузка дежурств; нужна сильная платформенная поддержка, чтобы избежать выгорания
Культура «сначала документ» / RFCДолговечные решения; переживает смену людей; удобна для асинхронной работыМедленнее для тривиальных изменений; риск бюрократии при чрезмерном применении
Устойчивый темпУдержание людей, надёжность, долгосрочная скоростьВ авральный период кажется медленнее; требует от руководства твёрдости

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

Вопросы для обсуждения с командой

  1. Как сделать так, чтобы «без поиска виноватых» не читалось аудиторами, руководителями и обществом как «без подотчётности»? В регулируемой компании или государственном органе под надзором постмортем, не называющий виновного, может выглядеть для людей вне инженерии как сокрытие. Соображения здесь действительно противоречивы: вам нужна честность, которую рождает только отсутствие поиска виноватых, и вам нужно, чтобы лица, принимающие решения, верили, что сбои устраняются. Приведите в обсуждение конкретные свидетельства, например долю повторяющихся инцидентов и долю закрытых задач постмортемов: система, которая надёжно закрывает свои последующие действия, видимо подотчётна и без козла отпущения. Разделите два вопроса, которые культура обвинений склеивает: что сделало эту ошибку лёгкой и действовал ли кто-то с настоящей небрежностью или недобросовестно. Если ваш ответ в том, что подотчётность живёт в исправлении условий и закрытии задач, опубликуйте этот механизм, чтобы посторонние увидели подотчётность, которую ищут.

  2. Какие команды несут дежурство по системам, которые не могут реально эксплуатировать, и кто платит за этот разрыв? «Ты построил, ты и эксплуатируешь» сокращает петлю обратной связи, но предполагает, что у команды есть платформенная поддержка для эксплуатации созданного. В масштабе корпораций и государства некоторые команды наследуют унаследованные системы, «чёрные ящики» поставщиков или сквозную инфраструктуру, которой ни одна небольшая команда не способна по-настоящему владеть в одиночку. Компромисс лежит между размыванием подотчётности (плохо) и подготовкой команды к провалу на пейджере, на который она не может ответить (тоже плохо). Приведите данные о вызовах: если одного человека или одну команду постоянно вызывают, считайте это дефектом, который нужно устранить инженерно, а не знаком отличия. Ответ должен показать, куда инвестировать в платформенные команды, поэтапные выкатки и актуальные ранбуки, чтобы владение оставалось ясным, а операционная нагрузка человечной.

  3. Совпадает ли поведение, которое вы на самом деле продвигаете, с ценностями, которые вы публикуете? Ценности вырождаются в цинизм в тот момент, когда руководители поощряют то, что осуждают плакаты, а в масштабе этот разрыв остаётся невидимым, пока его не выдают текучесть и тихое накопление знаний в одних руках. Внимательно посмотрите на последний цикл повышений: поощрялись ли борьба с пожарами и героизм или предотвращение пожаров и склеивающая работа, поддерживающая здоровье большой команды? Корпорации и государственные органы усугубляют риск, поскольку жёсткие системы грейдов и долгие сроки службы позволяют несоответствующему стимулу действовать годами, прежде чем кто-то его исправит. Приведите реальные свидетельства: кого повысили, кого публично хвалили и что эти люди на самом деле делали. Если награды получает героизм, вы приучаете организацию производить кризисы, решение которых она затем празднует, и исправлять нужно стимулы, а не настенные картины.

  4. Как вы на самом деле узнаете, высока или низка психологическая безопасность в конкретной команде, а не предположите это по оргструктуре? Безопасность фундамент, на котором держится любая другая практика, и это легче всего обманывать самого себя, потому что команды, где её меньше всего, меньше всех склонны вам об этом рассказать. В масштабе среднее по тысяче человек скрывает дисперсию, которая важна: один руководитель может тихо вести команду на страхе внутри в остальном здоровой организации. Здесь сталкиваются откровенность и комфорт: вопросы анкеты, выявляющие реальные проблемы, те, на которые люди менее всего склонны отвечать честно, и сам сбор сигнала может казаться небезопасным. Приведите конкретные свидетельства вместо ощущений: результаты на уровне команды по проверенному инструменту оценки безопасности, частоту, с которой люди письменно признают ошибки, отчёты о «почти-инцидентах», выявленных до того, как они стали инцидентами, и темы выходных интервью. Для корпорации или государственного органа настаивайте, чтобы данные оставались на уровне команды и никогда не использовались для наказания команды с низкой оценкой, ведь в тот момент, когда оценка безопасности становится палкой, она перестаёт измерять безопасность и начинает измерять страх перед измерением.

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

  6. Какие значимые решения последних двух лет не имеют письменной записи своего обоснования и чего это будет стоить, когда авторов не станет? Культура письма переносит замысел через смену людей, и её отсутствие незаметно ровно до того момента, когда кому-то нужно изменить систему, которую больше никто не понимает. Противоположная сила это скорость: написание проектного документа или записи о решении в моменте кажется трением, а при чрезмерном применении превращается в бюрократию, замедляющую тривиальные изменения. Приведите свидетельства для калибровки: долю значимых изменений, у которых есть проектный документ или запись о решении, как часто люди действительно могут найти и процитировать обоснование существующей архитектуры и сколько времени новому инженеру требуется, чтобы стать продуктивным на недокументированном сервисе. Для корпораций и государственных организаций, чьи системы переживают срок службы всех, кто их создал, и которые могут столкнуться с аудитом или проверкой по закону о доступе к информации, письменная запись одновременно институциональная память и свидетельство должной осмотрительности, поэтому ответ должен проводить границу там, где вес решения оправдывает письмо, и не ниже.

Взгляд по секторам

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

Малый бизнес. Без выделенного специалиста по инженерной культуре и при ограниченном бюджете опирайтесь на лёгкие ритуалы, а не на инструменты, которые нужно покупать или обслуживать. Общий канал инцидентов, одностраничный журнал решений и привычка спрашивать «что сделало эту ошибку такой лёгкой?» ничего не стоят и несут большую часть пользы. Будьте осознанны и в вопросе «купить или построить» для практик: возьмите готовый шаблон постмортема и простой график дежурств вместо самодельной системы, которую вы не сможете поддерживать.

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

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

Примеры

Стартап. Команда из шести человек живёт на доверии и разговорах в коридоре, поэтому никто не записывает ценности команды. Когда инженер-основатель выкатывает плохую миграцию, а технический директор срывается на него в Slack, в комнате воцаряется тишина, и следующие два бага тихо скрывают, а не выносят на поверхность. Команда выправляется, приняв одну лёгкую привычку: пятиминутный разговор без поиска виноватых «что сделало эту ошибку такой лёгкой?» после каждого инцидента, без всякого шаблона. Этот небольшой ритуал сохраняет здоровье самозарождающейся культуры без процессных накладных расходов, которые потребовались бы более крупной организации.

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

Государственный сектор. Государственное агентство цифровых услуг приняло «ты построил, ты и эксплуатируешь» вместе со строгим процессом RFC (запрос комментариев) по принципу «сначала документ». Поскольку его системы должны переживать смену политической администрации и текучесть персонала, измеряемую годами, каждое значимое решение записывается в проектный документ, объясняющий контекст и компромиссы. Новые инженеры и приходящие подрядчики могут прочитать обоснование десятилетней архитектуры вместо того, чтобы восстанавливать его обратной разработкой. Эта письменная институциональная память позволяет агентству сохранять надёжность публичных услуг несмотря на высокую текучесть и строгие требования подотчётности.

Бизнес-обоснование: мотивы, ROI и TCO

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

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

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

Антипаттерны и ловушки

  • Разборы инцидентов в стиле «обвинить и пристыдить»: они загоняют проблемы вглубь, и люди перестают сообщать.
  • Культ героев: поощрение тушения пожаров вместо их предотвращения увековечивает пожары.
  • «Ценности», которые нарушают руководители: заявленные ценности, опровергнутые поведением, порождают цинизм.
  • Ответственность без поддержки: назначение дежурств по системам, которые команды не могут реально эксплуатировать.
  • Процесс как замена доверия: нагромождение согласований вместо построения настоящей безопасности.
  • Театр документов: написание документов, которые никто не читает или которые никогда не влияют на решения.
  • Инклюзивность для галочки: найм ради разнообразия при исключении тех же голосов из решений.

Модель зрелости

  • Уровень 1, Начальный: Ценности случайны и зависят от личностей. Инциденты означают поиск виноватых, знания живут в нескольких головах, а героизм это способ получить результат. Никто не записал, во что верит команда и как она ведёт себя под давлением.
  • Уровень 2, Развитие: Несколько команд начинают постмортемы без поиска виноватых, пишут редкий проектный документ и говорят о владении, но практики непоследовательны, применяются неравномерно и пока не подкреплены руководством. Попадёте ли вы в здоровую команду, во многом дело случая.
  • Уровень 3, Стандартизация: Обучение без поиска виноватых, ясное непересекающееся владение и культура письма это задокументированные нормы всей организации с шаблонами, каталогом сервисов и определёнными ожиданиями по дежурствам. Руководители подают пример ценностей, и одинаковое поведение ожидается везде, а не только там, где оказался хороший руководитель.
  • Уровень 4, Управление: Культура измеряется относительно базовых значений и управляется данными. Вы отслеживаете оценки психологической безопасности на уровне команд, повторяемость инцидентов, долю закрытых задач постмортемов, распределение нагрузки дежурств, среднее время восстановления и нежелательную текучесть и действуете по цифрам, когда команда дрейфует. Отмените стимулы к тушению пожаров на основании свидетельств и поощряйте предотвращение пожаров, потому что теперь вы его видите.
  • Уровень 5, Оркестрация: Культура постоянно улучшается и встроена в то, как вся организация планирует, нанимает и повышает. Безопасность высока, обучение быстрое, а практики адаптируются по мере изменения свидетельств и контекста. Организация перебалансирует нагрузку дежурств, обновляет записи о решениях и развивает нормы намеренно, а не ждёт, пока кризис вынудит это сделать.

Идеи для обсуждения

  • Где в нашей организации люди не чувствуют себя в безопасности, чтобы сказать «я не знаю» или «я не согласен», и почему?
  • Меняют ли наши разборы инцидентов систему или только назначают вину и идут дальше?
  • Не поощряем ли мы героизм, который следовало бы устранить инженерно?
  • У каких важных решений последних двух лет нет письменной записи обоснования?
  • Насколько равномерно распределены склеивающая работа и нагрузка дежурств по команде?
  • Совпадают ли наши заявленные ценности с тем, за что здесь на самом деле повышают?

Главные выводы

  • Ценности невидимая операционная система за каждым техническим решением; в масштабе ценности должны быть явными.
  • Психологическая безопасность фундаментальна; без неё другие практики разрушаются.
  • Обучение без поиска виноватых превращает сбой в устойчивое системное улучшение.
  • Ясное владение («ты построил, ты и эксплуатируешь») сокращает петлю обратной связи по качеству.
  • Культура письма масштабирует суждение через часовые пояса и смену людей.
  • Устойчивый темп и инклюзивность множители долгосрочной скорости, а не издержки.

Источники и дополнительное чтение

  • Amy C. Edmondson, “The Fearless Organisation” and “Teaming”
  • Google re:Work / Project Aristotle research on team effectiveness
  • Sidney Dekker, “The Field Guide to Understanding ‘Human Error’”
  • John Allspaw, “Blameless PostMortems and a Just Culture” (Etsy Code as Craft)
  • Nicole Forsgren, Jez Humble, Gene Kim, “Accelerate: The Science of Lean Software and DevOps”
  • Gene Kim et al., “The Phoenix Project” and “The DevOps Handbook”
  • Camille Fournier, “The Manager’s Path”
  • Will Larson, “An Elegant Puzzle: Systems of Engineering Management”
  • Tom DeMarco and Timothy Lister, “Peopleware: Productive Projects and Teams”