Ну, пряма відповідь на ваше запитання буде: Мушусь, я боюся - просто не вистачає деталей, щоб зрозуміти, чи варто чи ні кинути спробу.
Єдине, в чому я дуже позитивний, - це рівень спритності, який повинен визначатися потребами клієнта / ринку (про які ви нічого не давали).
- Наприклад, як користувач IDE я дуже радий перейти на нову версію раз чи, можливо, два рази на рік, і ніколи не поспішаю з цим. Тобто, якщо цикл їх випуску становить 3 місяці ( 12 тижнів ), то я цілком задоволений цим.
З іншого боку, я можу легко уявити собі, скажімо, фінансовій торговій компанії збанкрутують, якщо для адаптації їх програмного забезпечення до змін на ринку потрібно більше місяця - тестовий цикл 12 тижнів у цьому випадку буде дорогою до пекла. Тепер - які потреби у вашому товарі мають у цьому плані?
Ще слід врахувати, який рівень якості необхідний для задоволення потреб вашого клієнта / ринку?
- Справа в суті - в компанії, в якій я колись працював, ми виявили, що нам потрібна нова функція в продукті, що має ліцензію від якогось постачальника програмного забезпечення. Без цієї функції ми страждали досить сильно, так що так, ми дуже хотіли, щоб вони були спритними та оновлювались протягом місяця.
І так, вони виявилися спритними, і так, вони опублікували це оновлення через місяць (якщо їх цикл QA становить 12 тижнів, вони, ймовірно, просто пропустили його). І наша функція спрацювала чудово - гадаєте, ми повинні були бути абсолютно щасливими? ні! ми виявили помилку регресії showstopper в деяких функціональних можливостях, які раніше працювали чудово - тому нам довелося дотримуватися старішої версії.
Минув ще один місяць - вони випустили ще одну нову версію: наша функціябула там, але така ж помилка регресії була і там: знову ми не оновили. І ще місяць і ще.
Зрештою, нам вдалося модернізувати лише через півроку стільки для їх спритності.
Тепер давайте докладніше розглянемо ці 12 тижнів, про які ви згадали.
Які варіанти ви розглядали для скорочення циклу якості? як ви бачите з наведеного вище прикладу, просто пропустивши його, це може не дати вам того, чого ви очікуєте, тож вам буде краще бути, спритним і розглянути різні способи його вирішення.
Наприклад, чи розглядали ви способи поліпшити перевірку продукту?
Або ви розглядали жорстоке рішення просто надати більше QA? Як би просто не виглядало, в деяких випадках це справді шлях. Я бачив недосвідчене керівництво, яке намагається вирішити проблеми з якістю продукції, сліпо наймаючи все більше і більше старших розробників, де вистачить лише пари середніх професійних тестерів. Досить жалюгідний.
І останнє, але не менш важливе - я вважаю, що слід бути уважним щодо дуже застосувань спритних принципів. Я маю на увазі, якщо вимоги проекту не є гнучкими (стабільні або змінюються повільно), то навіщо турбуватися? Я колись спостерігав, як топ-менеджмент змушує Scrum в проектах, які без проблем справлялися. Що це було марно. Поліпшення їх поставок не тільки не було, але ще гірше, що розробники та тестери стали незадоволені.
оновлення на основі роз'яснень, наданих у коментарях
Для мене однією з найважливіших частин Agile є вивільнення судноплавства в кінці кожного спринту. Це означає кілька речей. По-перше, потрібно провести рівень тестування, щоб не було виправлених помилок, якщо ви думаєте, що можете випустити збірку для клієнта ...
Колірний випуск я бачу. Гм. Хммм. Спробуйте додати постріл або два Lean в свою моторний коктейль. Я маю на увазі, якщо це не потреба клієнта / ринку, то це означатиме лише марнотратство (тестування) ресурсів.
Я, напевно, не бачу нічого злочинного в трактуванні спринту-релізу як просто деякої контрольної точки, яка задовольняє команду.
- dev: так, це виглядає досить добре, щоб перейти до тестерів; QA: так, це виглядає досить добре для випадку, якщо потрібні подальші перевірки на судноплавство - такі речі. Команда (dev + QA) задоволена, ось і все.
... Найважливіший момент, який ви зробили, був наприкінці вашої відповіді з точки зору не застосовувати спритність, якщо вимоги не є спритними. Я думаю, що це місце. Коли ми почали робити спритність, ми її набрали, і обставини мали сенс. Але відтоді справи кардинально змінилися, і ми чіпляємося за той процес, де це більше не може мати сенсу.
Ви все зрозуміли правильно. Крім того, з того, що ви описуєте, схоже, що ви потрапили до штату (зрілість команди / управління та відносини з клієнтом), що дозволяє використовувати регулярну ітераційну розробку моделі замість Scrum. Якщо так, то, можливо, вам також буде цікаво дізнатися, що за моїм досвідом у таких випадках, як регулярний ітератор, він почувався більш продуктивним, ніж Scrum. Набагато більш продуктивним - там було просто так набагато менше накладних витрат, це було просто так набагато легше зосередитися на розвитку (для QA , щоб відповідно зосередитися на тестуванні).
- Я зазвичай думаю про це в плані Ferrari (як регулярний ітеративний) проти Landrover (як Scrum).
Під час руху по шосе (а ваш проект, здається, досяг цього шосе ), Ferrari б'є пекло з Landrover.
Це позашляховик, де потрібен джип, а не спортивний автомобіль - я маю на увазі, якщо ваші вимоги нерегулярні та / або якщо командна робота та досвід управління не такі гарні, вам доведеться вибирати Scrum - просто тому, що спроби їхати регулярно отримають вас застряг - як Ferrari застрягне бездоріжжя.
Наш повний продукт справді складається з безлічі менших деталей, які можна оновити незалежно. Я думаю, що наші клієнти дуже готові модернізувати ці менші компоненти набагато частіше. Мені здається, що ми, мабуть, повинні зосередитись на випуску та QA'ing тих менших компонентів на кінці спринтів, а не ...
Вище звучить як хороший план. Я працював у такому проекті одного разу. Ми постачаємо щомісячні випуски з оновленнями, локалізованими в межах невеликих компонентів з низьким рівнем ризику, і вихід із забезпечення якості для них був таким же простим, як це стає.
- Слід пам’ятати про цю стратегію - перевірити перевірку, що зміни локалізуються там, де очікується. Навіть якщо це доходить до порівняння файлів по бітам для компонентів, які не змінилися, перейдіть до нього, або ви не отримаєте його. Справа в тому, що за якість випуску відповідає QA, а не ми, розробники.
Це головний біль тестера, щоб переконатися, що несподівані зміни не проскочили - адже відверто кажучи, як розробник у мене є достатньо інших речей, щоб переживати про це, що для мене важливіше. І тому вони (тестери) справді потребують надійного підтвердження того, що все контролюється з випуском, який вони перевіряють.