Аудит інженерних процесів: на що ми дивимося і чому

·8 хв читання

Коли команда доставляє повільно, причина майже ніколи не в інженерах. Зазвичай це чотири-п'ять конкретних тертя, яких ніхто не виміряв.

«Команда повільна» — це симптом, і засновники зазвичай хибно діагностують його як проблему з людьми. За нашим досвідом, це майже завжди системна проблема: робота чекає в чергах, зміни великі й ризиковані, розгортання лякає, і ні в кого немає цифр, якими можна аргументувати.

Почніть із чотирьох вимірювань

Ці чотири добре усталені і, що важливіше, діагностичні: кожен поганий результат вказує на конкретний клас проблеми.

МетрикаЩо вона викриває, коли погана
Частота розгортаньЗавеликий розмір партії, розгортання сприймаються як події
Час доставки змінЧас у черзі — зазвичай code review або очікування QA, а не кодування
Частка невдалих змінСлабке тестування або відсутність відповідності staging продакшену
Час відновленняНемає відпрацьованого відкату, погана спостережуваність

Звичні знахідки

Code review — це вузьке місце, а не ворота якості

  • Пул-реквести завеликі, щоб їх осмислено переглянути, тож review стає театром схвалення
  • Немає очікувань щодо швидкості review, тож зміни лежать днями
  • Один сеньйор — єдиний, хто апрувить: черга з одним віконцем

Розгортання — це подія

  • Ручні кроки, які знає лише одна людина
  • Немає відкату, якому хтось довіряє, тож релізи збираються в пачки, що робить їх ризикованішими, а отже рідшими
  • Розгортання плануються на тихі години — сильний сигнал, що команда не довіряє процесу

Робота насправді не визначена

  • Тікети, які потребують розмови, перш ніж хтось зможе почати
  • Немає спільного визначення готовності, тож робота стрибає між розробкою і QA
  • Забагато роботи в процесі — усі зайняті, нічого не завершується

Що змінювати першим

  1. Зробіть розгортання нудними — автоматизуйте, додайте відкат, відпрацюйте його. Усе інше покращується, щойно випуск стає безпечним.
  2. Зменшіть розмір партії — менші зміни легше переглядати, безпечніше випускати, швидше діагностувати.
  3. Встановіть SLA на review — години, а не дні, з другим апрувером, щоб одна людина ніколи не була вузьким місцем.
  4. Обмежте роботу в процесі — завершувати важливіше, ніж починати.
  5. Інструментуйте те, що відчувають клієнти, щоб інциденти знаходились усередині, а не приходили у скаргах.
Швидкість і безпека не є компромісом у доставці ПЗ. Команди, що розгортають найчастіше, мають і найнижчу частку відмов — бо малі, часті, зворотні зміни водночас швидші й безпечніші.

Досліджуйте роботу без рейтингу людей за метриками

Зіставні задачі показують обмеження системи. Пояснюйте очікування й переробки, не прирівнюючи активність до продуктивності.

  1. Оберіть кілька завершених змін, зокрема термінове виправлення.
  2. Виміряйте черги, цикли рев'ю, передавання та труднощі розгортання.
  3. Перевірте покращення з початковим показником і датою оцінки.

Часті запитання

Скільки триває аудит інженерних процесів?

Зазвичай один-два тижні: збір даних про доставку, інтерв'ю з командою, спостереження за справжнім релізом і огляд інструментів. Результатом має бути невелика кількість пріоритезованих змін з очікуваним ефектом, а не бал моделі зрілості.

Ви скажете нам впровадити Scrum?

Ні. Методологія рідко є обмеженням — ними є час у черзі, розмір партії і ризик розгортання. Команди добре доставляли за будь-якого фреймворку і погано за всіх; змінювати церемонію, не змінюючи цих трьох речей, не дає нічого.

Команда каже, що потрібно більше інженерів. Це правда?

Іноді, але наймати в процесне вузьке місце спершу погіршує ситуацію: більше людей створюють більше незавершеної роботи проти тих самих черг review і розгортання. Спершу виміряйте, куди насправді йде час; якщо більшість — це час у черзі, найм не є розв'язанням.

Чи можна порівнювати команди за сирими показниками?

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

Команда доставляє повільніше, ніж мала б?

Ми вимірюємо, куди насправді йде час, і усуваємо головні обмеження — зазвичай за тижні, а не за квартали.

Інженерія процесів →

Читати далі за темою

Постмортем: як написати той, який справді читають

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

Технічний аудит MVP: що ми перевіряємо в перші 48 годин

Більшість аудитів MVP закінчуються документом. Корисний закінчується рішеннями: що горить, що може почекати і скільки коштує виправлення.