Які виплати ви бачили, піклуючись про технічну заборгованість?


29

Ця стаття про технічну заборгованість має деякі хороші моменти, зокрема:

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

Тому я вважаю за краще підходити до оповідань як зазвичай (але, мабуть, їх менше), і дотримуватися "правила розвідки хлопчика" залишати табір краще, ніж ви його знайшли. Іншими словами, куди б нас не привели сюжети, давайте напишемо більше тестів, давайте рефакторируватись більш агресивно.

Цей підхід має принаймні такі переваги:

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

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

Які позитивні переваги ви побачили від очищення бази коду та позбавлення себе технічної заборгованості? Які методи ви використовували для виконання роботи?


1
Чому код взагалі існує, якщо він не впливає на історію користувача? (адміністратори системи все ще користувачі - отже, ведеться ведення журналу та "під кришками")
Стівен Еверс

2
@ Sn0rfus Це хороший момент. Однак я працював з командами, які відмовлялися переглядати, чи було зроблено щось, що вважалося "працюючим" правильно. Вони ніколи не очищатимуться, оскільки функції вважаються "зробленими". Вони часто матимуть величезний непрямий вплив на майбутній розвиток, оскільки вони зроблені неякісно, ​​але розробники та наш менеджер просто закриють очі.
Ніколь

(ваш коментар щодо прибирання) +1. Я точно знаю, про що ти говориш.
talonx

Відповіді:


31

Я можу навести один приклад зі свого досвіду.

Близько 10 чи 12 років тому я успадкував заявку від команди розробників, яка врешті-решт покинула компанію (занадто довго, щоб потрапити сюди ...). Ця система була великою системою генерації звітів про домашнє виробництво. Він проводився щовечора ввечері і генерував близько двох десятків звітів Excel для вищих керівників компанії Fortune 500. Коли я успадкував це, то пробіг близько 5-6 годин, і протягом будь-якого тижня не вдалося принаймні 2 ночі.

Я не був щасливим туристу, який мені дав цей безлад.

Спочатку мій план полягав у тому, щоб просто зупинити кровотечу та виправити головну причину збоїв. Після того, як мені стало комфортніше з базою коду, я почав шукати місця, де я міг би переробити та додати стабільність та продуктивність. Протягом 2-х років я зробив багато, багато змін у системі. Ми віддалили цю систему пару років тому, і в цей момент весь процес зайняв 45 хвилин, і протягом багатьох років не виникало жодних проблем.

Багато було покладено на оплату технічної заборгованості, але це було добре, варто. Приємно було не отримувати жодних телефонних дзвінків посеред ночі, коли система вийшла з ладу. Було приємно зайти в офіс в монрінгу і не побачити нічого, окрім гарних новин у журналах.

(Убік ... Через пару років я наткнувся на одного з головних розробників цієї системи. Він запитав мене, як це робиться, і я сказав йому, як погана система. Він насправді вибачився і сказав, що знає, що це буде жменя для підтримки після того, як він пішов і побажав, що він зробив кращу роботу на цьому).


8
О, це звучить як болісне переживання, але з позитивним результатом. Дякую, що поділились.
Алі

11

З мого досвіду, переваги очищення коду є найбільш помітними, коли мені доводиться підтримувати код там, де очищення ще не робилося. Там, де зроблено очищення, мої зміни полягають у тому, щоб прочитати код, виявити одне або два місця, які потрібно змінити, і піти звідти. Якщо очищення ще не було зроблено, додайте початковий крок зчитування коду пару разів і намагайтеся з'ясувати, що думав автор (іноді я), коли його писав.


2
Я погоджуюся - найкращий окупність зазвичай не спостерігається, і це в підвищенні продуктивності.
Майкл К

5

усунення технічної заборгованості дає меншу технічну підтримку та кращу основу для покращення

завжди


4
Це не обов'язково правда. Останні два пункти пункту в коментарі ОП означають, що ви не повинні працювати над рефакторингом мимоволі. Якщо ви виявите, що рідко використовуваний фрагмент коду написаний дуже погано, і ви вирішили усунути цю технічну заборгованість, це означає, що ви не можете додавати нову функціональність або видаляти технічну заборгованість деінде, скажіть десь, що IS використовується багато. Реальність полягає в тому, що ми обмежили час і абсолютно повинні визначити пріоритет, де і коли ми вирішимо зняти технічну заборгованість.
Немі

@ Nemi: весь технічний борг не створюється рівним; будь ласка, використовуйте добру думку.
Стівен А. Лоу

1
Я просто коментую, ви знаєте, через великі сміливі ЗАВЖДИ у вашому пості. Я здогадуюсь, можливо, я неправильно зрозумів вашу відповідь.
Немі

4

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

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


+1 для обговорення проблеми з ПО / БО. Ось так воно має працювати (в ідеалі :-)).
sleske

І BTW, я б навіть не називав це прикладом технічної заборгованості. Це, очевидно, відсутність функції, яку ваша команда повинна була компенсувати ручною роботою. Моє визначення було б: Якщо це стосується кінцевого користувача (прямо чи опосередковано), це не технічна заборгованість, а просто помилка / відсутня функція
sleske

2

Щодо останніх двох моментів: я розумію, звідки це походить, як це було пояснено у його початковій публікації :

Або можливо переназначити деяких розробників для виконання цих технічних питань, тоді як інша частина команди продовжує роботу, орієнтовану на користувача? Це може вплинути на швидкість команди, але що робити?

"Отже, що" дорівнює: власник продукту та інші бізнесмени стають нещасними. А коли мама нещасна, всі нещасні.

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

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


2

Найбільша вигода, яку отримуватиме організація внаслідок погашення технічного боргу, - це уникати складних відсотків. У наведеному нижче блозі є приклад, який показує, як основна сума боргу за технічну заборгованість перейшла з 160 тис. До 430 тис. Доларів лише за п'ять років. Потрібен був би штатний програміст, виключно присвячений обслуговуванню такої суми боргу. Це допоможе поставити його в перспективу для осіб, які приймають рішення!

З blog.acrowire.com .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.