How to Justify a Refactor to a Skeptical Manager in English

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

“Якість коду” є одним з найслабших аргументів, які інженер може надати менеджеру, який судить за поставленими можливостями, тому що це неможливо підробити і невидимо на дорозі. Англійська, яка насправді працює тут перекладає рефакторинг на власний словник менеджера - швидкість, ризик і вартість - з конкретними числами, де це можливо, замість того, щоб прохати їх довіряти інженерному інстинкту, який вони не можуть незалежно перевірити.

Ключовий словник

** Податкова швидкість ** — постійна, повторювана вартість, яку частина незграбного коду накладає на кожну майбутню зміну, зроблену поруч з нею, що описується як відсоткова плата, а не як одноразова незручність. “Кожна функція, яку ми доставили в цей модуль за останні два квартали, тривала приблизно на 40% довше, ніж подібна робота в інших місцях, через податок на швидкість, який накладає це заплутане управління державою - це не одноразова вартість, вона збільшується з кожним спринтом, коли ми не звертаємося до неї.”

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

** Інкрементальний рефакторинг ** — рефакторинг розбитий на маленькі, незалежно відправні кроки, які не вимагають спеціального « спринту рефакторингу » або заморожування можливостей, що зазвичай є аргументом, який фактично отримує схвалення. “Я не прошу про двотижневе заморожування можливостей — це може бути інкрементальний рефакторинг, один модуль за раз, згорнутий в існуючі спринти разом з нормальною роботою над можливостями.”

Вмінні витрати бездіяльності — що буде коштувати продовження будівництва на поточній структурі в майбутньому, порівняно з витратами на рефакторинг зараз, а не на рефакторинг, який оцінювався в ізоляції. “Якщо ми не переробимо це зараз, альтернативна вартість полягає в тому, що наступна велика функція — яка торкається цього точного коду — займе приблизно три додаткових тижні, що більше, ніж сама переробка коштуватиме.”

Звичайні фрази

  • «Я хочу описати це з точки зору швидкості, а не естетики коду: ось що ця область коштувала нам за останні два квартали»
  • «Це не запит на спеціальний рефакторинговий спринт — я пропоную інкрементальний підхід, складений в звичайну роботу з функціями»
  • “Радиус вибуху тут більший, ніж здається, тому що [специфічна залежність від потоку].”
  • «Якщо ми не звернемося до цього зараз, альтернативна вартість з’явиться конкретно в [майбутній запланованій функції]»
  • «Я можу розширити це до найменшої версії, яка вилучає повторювані витрати, якщо повна версія здається занадто відкритою для схвалення»

Приклади висловлювань

Відкривати з цифрами замість загальної скарги:

  • “Подивившись на останні шість квитків, що торкалися модуля розрахунків, середній час доставки був у 2,5 рази більший, ніж середній час нашої команди. Я думаю, що це податок на швидкість, який варто розглянути, і я хочу знати чому»

Переформулювання “невідкладного, але невидимого” ризику у видимі терміни: “Це не про код, який виглядає чистим - це про те, що радіус вибуху будь-якої зміни тут включає роботу з прирівнювання платежів, і у нас було два майже промахи в останньому кварталі, які не стали інцидентами завдяки удачі.”

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

Професійні поради

  • Виміряйте пошту швидкості, використовуючи реальні історії квитків, якщо це можливо — «це відчувається повільно» ніхто не переконує, але «наші останні п’ять квитків тут тривали вдвічі довше, ніж порівнянні» важко сперечатися.
  • Використовуйте ** радіус вибуху **, щоб виправдати невідкладність без перебільшення - названня реальних систем, які зазнали впливу, є більш переконливим, ніж загальна заява, що «щось може зламатися»
  • Завжди пропонуйте роботу як інкрементальний рефакторинг, якщо немає реальної причини, чому це не може бути — менеджери кажуть так на обмежені, оборотні запитання набагато частіше, ніж на відкриті.
  • Встановіть ** альтернативну вартість бездіяльності ** проти певної майбутньої можливості на дорозі, а не гіпотетичного майбутнього — прив’ язка її до чогось, про що менеджер вже дбає, робить компроміс конкретним.
  • Пропонуйте спочатку довести цінність з найменшим можливим шматком — триденний пілот, який помітно прискорює наступний квиток, будує більше довіри, ніж будь-який аргумент, і робить наступне запитання простішим.

Практичні вправи

  1. Напишіть речення, у якому буде вказана кількість податку на швидкість за допомогою певних номерів квитків або часових рядків.
  2. Описати радіус вибуху гіпотетичної цілі рефакторизації, назвавши принаймні одну конкретну залежність від нижнього рівня.
  3. Запропонуйте план інкрементального рефакторингу у двох реченнях, обмежений одним першим кроком.

Використання мови: мова для створення графічного інтерфейсу

Успішно обґрунтовуючи рефакторинг, не слід просто пояснювати що ви робите; слід обґрунтовувати цінність таким чином, щоб ваш менеджер розумів і поважав. Часто скептицизм виникає не з незгоди з самою ідеєю, а з відсутності ясності щодо впливу - особливо якщо менеджер зосереджений на негайних результатах. Важливо вийти за рамки простого зауваження, що «код потребує поліпшення», тому що це легко відкинути як суб’єктивне. Замість цього, зосередьтеся на демонстрованих перевагах і реальних результатах.

Подумай, как ты выражаешь свои мысли. Фрази на кшталт «оптимізація для підтримки» або «зменшення технічного боргу» можуть звучати абстрактно. Менеджери реагують краще, коли ви пов’язуєте ці поняття з бізнес-цінністю. Наприклад, замість того, щоб сказати « нам потрібно переробити цей модуль, щоб поліпшити його підтримку », спробуйте: « Цей перероблений код зменшить ризик помилок і затримок у майбутньому розробці можливостей — можливо, збереже нам приблизно 10% часу спринту за рахунок спрощення кодової бази ». Використання цифр, навіть оцінок, додасть ваги вашому аргументу. Аналогічно, підкреслення потенційної економії коштів (наприклад, зменшення квитків на підтримку, менше годин зневадження) є потужною тактикою.

Іншим ключовим елементом є активне вирішення проблем, пов’ язаних з додаванням «додаткової роботи». Розгляньте рефакторинг як інвестицію, а не як витрати. Добре зроблений опис PR може звучати так: “Цей запит на завантаження адресує визначені області технічного боргу в рамках застарілої системи звітів. Основною метою є підвищення довгострокової стабільності і зменшення потенціалу майбутніх проблем у розробці, забезпечення гладкого шляху для майбутніх можливостей, таких як [згадайте конкретну можливість]. Ми ретельно розрахували масштаби цієї роботи, щоб зменшити перерви і передбачити час завершення X днів.” Зауважте, як це представлено як захист майбутніх зусиль.

Нарешті, пам’ятайте, що спілкування - це двостороння дорога. Перед тим, як почати аргументувати, зрозумій пріоритети свого менеджера. Які показники він або вона відстежує? Які найбільші проблеми для команди? Придбайте своє обґрунтування, щоб безпосередньо звернутися до цих проблем — демонстрація розуміння їхньої перспективи значно збільшить ваші шанси на успіх.

Поширені запитання

Про що ця стаття "How to Justify a Refactor to a Skeptical Manager in English"?

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

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "How to Justify a Refactor to a Skeptical Manager in English"?

Приблизно 6 min.