Я працюю з базою коду, яка становить понад 500 К рядків коду. Він дуже серйозно потребує рефакторингу. Були визначені зусилля рефакторингу, які займуть більше часу, ніж звичайний спринт двох тижнів. Вони не можуть бути розбиті на більш дрібні завдання, як я бачив, запропоновані в інших відповідях на цьому сайті. Продукт повинен працювати в кінці ітерації, і часткове рефакторинг залишить систему в непридатному стані, оскільки залежність між елементами жахлива. То який найкращий спосіб підійти до цієї перешкоди? Ще раз зазначу, розбити його на більш дрібні шматки - це не варіант, що вже було зроблено.
Оновлення: людям, здається, потрібне пояснення, чому це не може вписатися у 2-тижневий спринт. У спринті більше задіяно, ніж просто писати код. У нас є політика без коду без тестів. Ця політика не завжди існувала, і значна частина кодової бази їх не має. Також деякі наші інтеграційні тести все ще є ручними тестами. Справа не в тому, що саме рефакторинг настільки великий. Це пов'язано з тим, що невеликі зміни впливають на багато частин системи, і нам потрібно забезпечити правильність роботи цих частин.
Ми не можемо відкласти або продовжити спринт, оскільки у нас є щомісячні виправлення. Таким чином, ця зміна, що поширюється на спринт, не може зупинити додавання іншої роботи до виправлення.
Рефакторинг проти перепроектування: Тільки тому, що наш процес розробки недостатньо ефективний, щоб обробити цей рефакторинг протягом двох тижневого циклу, це не гарантує перейменування його на новий дизайн. Я хотів би вірити, що в майбутньому ми могли б виконати абсолютно те саме завдання протягом двох тижневого циклу, коли наш процес покращиться. Розглянутий тут код не повинен був змінюватися протягом дуже тривалого часу і є досить стабільним. Тепер, оскільки напрямок компанії стає більш пристосованим до змін, ми хочемо, щоб ця частина кодової бази була такою ж адаптивною, як і решта. Що вимагає його рефакторингу. Виходячи з відповідей тут, стає очевидним, що не вистачає лісів, необхідних для того, щоб це рефакторинг працював у часові рамки нормальних спринтів.
Відповідь:
Я збираюся зробити підхід до філії та об'єднання, який Корбін Марч запропонував вперше, щоб ми могли дізнатися більше про ці проблемні області та як визначити відсутні тести. Думаю, рухаючись вперед, ми повинні скористатися підходом, який запропонував Буб, щоб визначити сфери, на яких відсутні тести, і реалізувати їх спочатку, потім зробити рефакторинг. Це дозволить нам продовжувати нормальний цикл спринтів, що триває два тижні, як і багато хто з них, зазначаючи, завжди має стосуватися рефакторингу.