Процентний показник рівноваги від загальної ємності, що виділяється на виправлення дефектів, дорівнює швидкості введення дефекту .
На цей показник може впливати багато факторів, серед них, звичайно: який продукт розробляє команда, які технології та технічні практики вони використовують, рівень кваліфікації команди, культура компанії тощо.
Враховуючи групу B, якщо вони створюють в середньому 8 одиниць переробки на кожні 10 одиниць роботи, яку вони виконують, то працюючи ці 8 одиниць, створять нові 6,4 одиниці переробки. Ми можемо оцінити загальні зусилля, які їм, зрештою, доведеться витратити, як суму геометричної прогресії:
10 + 8 + 6,4 + 5,12 + ...
Кількість помилок з часом буде експоненціально зменшуватися, але команда B має такий коефіцієнт у своєму експоненті, що він дуже повільно піде на нуль. Власне, сума перших трьох доданків у наведеному ряді становить лише 24,4; з першої п'ятірки, 33,6; з перших 10, 45; з усієї серії, 50. Отже, підсумок групи B: швидкість введення дефекту, 0,8; розвиток функції, 10/50 = 20%; виправлення дефектів, 80%. 20/80 - це їх стійкий розподіл потенціалу.
Навпаки, команда A знаходиться в набагато кращій формі. Їх прогресування виглядає приблизно так:
40 + 10 + 2,5 + 0,625 + ...
Сума цієї серії становить 53 1/3, тому розподіл особливостей розвитку команди А А становить 40 / (53 1/3) = 75%, а розподіл на виправлення дефектів - 25%, що відповідає їх швидкості введення дефекту 10/40 = 0,25 .
Насправді всі терміни в серії «Команда А» після перших трьох незначно малі. Що це означає на практиці, це те, що команда A, ймовірно, може видалити всі свої помилки за допомогою декількох випусків технічного обслуговування, другий випуск має досить малий обсяг. Це також створює ілюзію, що будь-яка команда може це зробити. Але не Команда B.
Я думав про цю еквівалентність, читаючи нову книгу Девіда Андерсона «Канбан» . (Книга на іншу тематику, але теж стосується проблем якості.) Андерсон, обговорюючи якість програмного забезпечення, цитує цю книгу Каперсом Джонсом, "Оцінки програмного забезпечення, орієнтири та найкращі практики" :
"... у 2000 р. ... виміряна якість програмного забезпечення для північноамериканських команд ... варіювалась від 6 дефектів на функціональну точку до менш ніж 3 на 100 точок функцій, діапазон від 200 до 1. Середня точка становить приблизно 1 дефект на 0,6 - 1,0 функціональних балів. Це означає, що командам зазвичай витрачати більше 90 відсотків своїх зусиль на виправлення дефектів ". Він наводить приклад одного з колег компанії, який витрачає 90% часу на виправлення помилок. .
Течія, з якою Андерсон переходить від швидкості введення дефектів до розподілу ємності, що фіксує дефект ( попит на відмову - це термін), говорить про те, що еквівалент двох речей добре відомий дослідникам якості програмного забезпечення та, ймовірно, відомий вже деякий час .
Ключові слова в рядку міркувань, які я намагаюся викласти тут, - це "рівновага" та "стійкий". Якщо ми віднімемо стійкість, то існує очевидний спосіб обдурити ці цифри: ви робите початкове кодування, потім переходите до коду десь в іншому місці і залишаєте обслуговування іншим. Або ви запускаєте технічну заборгованість і вивантажуєте її на нового власника.
Очевидно, що жоден конкретний розподіл не влаштовуватиме всі команди. Якщо ми вирішили, що на помилки потрібно витрачати 20%, то, якщо у команди є наднизький рівень введення дефектів, у них просто не буде достатньо помилок, щоб заповнити час, а якщо в команді дуже високий показник, їх помилки буде продовжувати накопичуватися.
Математика, яку я тут використав, спрощена. Я знехтував такими, як трансакційні витрати (зустрічі з планування та оцінки, посмертні випадки тощо), які дещо вплинуть на відсотки. Я також опустив рівняння, що імітують підтримку одного продукту та розробляють інший одночасно. Але висновок все-таки стоїть. Зробіть все, що ви можете, з точки зору технічної практики, як-от випробування приладів, безперервна інтеграція, перевірка коду тощо, щоб зменшити рівень дефекту введення дефектів, а отже, і вимогу відмови. Якщо ви зможете створити лише одну помилку на кожні 10 функцій, у вас буде багато вільного часу на розробку нових функцій та задоволення своїх клієнтів.