Техническият дълг убива жабите
Във въведението към „Прагматичният програмист“ има глава, озаглавена „Каменна супа и варени жаби“. Авторите извикват известната метафора за варени жаби:

Ако поставите жабите в студена вода и след това постепенно увеличите температурата на водата, жабите ще седят тихо на мястото си, докато не се сварят напълно, когато водата ври. От друга страна, ако хвърлите жаба директно във вряща вода, тя веднага ще намери сили да се измъкне от тази враждебна среда.
В тази статия ще използвам тази метафора, за да развия идеята, че техническият дълг вероятно ще създаде среда, подобна на тази, в която се намират нещастни жаби.
Въз основа на моя опит успях да забележа, че някои факти, които генерират технически дълг, имат реално отрицателно въздействие върху психиката на актьорите, които са изправени пред тях, и мисля по-специално за онези, които са в основата на професия за развитие; самите разработчици.
Концепцията за технически дълг започва да бъде добре позната в света на разработката на софтуер и професионалистите я призовават все повече и повече, за да предупреждават за краткосрочни стратегии, които понякога се изкушаваме да въведем.
Във формулата за технически дълг очевидно най-силният термин е дългът. Това е истинската концептуална находка на тази формула. Дългът е задължение, което ще трябва да бъде изпълнено в бъдеще, но което не може да бъде избегнато. Също така се признава, че дългът е неизбежен; естествено явление (помислете за понятието инвестиция, придружено от дълг) е, че е просто необходимо да се контролира.
Технически дълг, който не би бил усвоен, може дори да доведе до феномен на техническа свръхзадлъжнялост; ситуация, при която всички технически усилия се използват за изплащане на лихвите по дълга.
Като се разбира, техническият термин в крайна сметка има по-малка тежест в тази концепция. Всички се успокояват, мислейки, че техниката винаги стигаме до края. Един ден ще намерим магьосника, който държи чудодейната рецепта, или ще хвърлим всичко и ще пренапишем всичко.
Има обаче един ефект от техническия дълг, който е по-трудно да се вземе предвид, тъй като той точно не е технически; това е ефектът, който има върху психологията и следователно поведението на ключови играчи в нашата индустрия. Назначих разработчиците.
Така че, ако се върнем към нашите жаби, ролята на тенджерата с гореща вода ще се играе от техническия дълг, а ролята на жабите ще играе разработчиците.
Техническият дълг прави опита на разработчиците по-болезнен, а работата по-трудна. Така че съм склонен да мисля, че тези, които най-рано страдат от технически дълг, са самите разработчици.
Поддържането на твърде стар или зле написан код, използване на рамка за разработка, която вече не отговаря на текущите нужди, липса на подходящи инструменти, невъзможност за диагностика или тестване на вашия код са разочароващи преживявания, които постепенно ще доведат до разработчици в дискомфортно състояние.
Ефектите върху морала са реални.
- Обезсърчение
- Бавност
- Намалена мотивация (Bore-out)
- Загуба на творчество
- Ерозия на уменията
Отрицателните чувства могат да предизвикат поведение, което е вредно за правилното функциониране на екипа
- Недоверие
- Горчивина
- Съпротива
- Индивидуализъм
И накрая, ще видим, че техническият дълг има тенденция да обездвижи разработчиците, да ги лиши от всякакъв капацитет за действие като жабите, които не могат да намерят енергия, за да се извлекат от среда, която дори не подозират, че го прави. убивайки ги.
Изчерпването на способностите на разработчиците има засилено въздействие върху екипа. Докато професията за развитие изисква все повече взаимодействия, обмен и динамика, техническият дълг обикновено убива работата в екип и духа на сътрудничество.
На ниво управление често сме наясно с техническите проблеми с дълга, от една страна, и с човешките проблеми, от друга. Но свързването на тези два явления не е толкова лесно. Не е лесно да се достигне до разработчиците; когато влезете в управлението, бързо губите позиции с техника.
Освен това технологиите, които се развиват много бързо, мениджърите постоянно се сблъскват с искания за подновяване от разработчиците.
Обичайно е да се наблюдава климат на недоверие между разработчиците и тяхното ръководство; разработчиците са обект на технически дълг, докато мениджърите трудно оценяват въздействието на този технически дълг върху организацията.
Тези условия превръщат околната среда в тенджера с вряща вода; ситуацията се влошава, но не знаем какво да правим, така че не полагаме повече усилия.
Наблюдавайки развитието на света на развитие в продължение на повече от десет години, въздействието на техническия дълг върху разработчиците ми става все по-ясно и сега съм убеден, че това е ново явление, което трябва да се приема много сериозно на стратегическо ниво.
Явлението технически дълг не е ново, разбира се, но начинът, по който го гледаме, се променя. Техническият дълг се появява все повече и повече като нещо, което може да наруши ИТ екосистемата като цяло и вече не само от чисто техническа гледна точка. Според мен това е тясно свързано с два феномена: разпространението на технологични иновации и появата на ново поколение компютърни учени.
Пазарът на ИТ работни места е стегнат, тъй като цифровата революция води до значителен растеж, докато броят на разработчиците на пазара е недостатъчен.
В този контекст технологиите за развитие се развиват с бясна скорост и разработчиците са особено чувствителни към явленията за остаряване на техните умения. В резултат техническият дълг е фолио за тях.