Техническият дълг, който ни преследва

Техническият дълг, който ни преследва

Той намалява способността на компаниите да се конкурират и да въвеждат иновации

Мария Динкова
891 прочитания

Концепцията за техническия дълг не е нова, но през последната година и половина видяхме редица примери за сериозните последствията от този феномен. В началото на 2020 много търговци на дребно вече имаха онлайн магазини, но не бяха приоритизирали тяхната разработка по един мащабируем начин. Тогава изглеждаше малко вероятно изведнъж техните сайтове да бъдат посетени от много нови потребители. Съответно те продължаваха да отлагат за в бъдеще разширяването на възможностите си, тъй като щеше да им отнема време и средства.

След това обаче дойде пандемията и голяма част от търговците се оказаха неподготвени да се справят с новото предизвикателство. Те трябваше да добавят бързи временни корекции и промени, за да отговорят на увеличеното търсене - например опции за виртуални опашки. Повечето потребители обаче не обичат да чакат и веднага се насочиха към по-големите онлайн магазини, които можеха да им предложат търсеното от тях изживяване.

С други думи, онези търговци, които навреме не си бяха спестили усилията, през 2020 жънеха плодовете на своя труд, докато другите трябваше или да наваксат бързо, или да "закърпят" проблема и още повече да увеличат своя технически дълг.

Какво представлява техническият дълг?

Техническият дълг измерва разходите за преработката на дадено решение, която се е наложила заради избран по-рано лесен или бърз, но ограничен подход.

Всъщност техническият дълг се появява, когато разработчиците в една компания ускорят създаването на дадена функционалност или реализирането на един проект, което налага на по-късен етап да въвеждат поправки. На практика скоростта при процеса на разработка получава приоритет пред качеството на крайния код.

В този смисъл техническият дълг намалява способността на компанията да се конкурира и да въвежда иновации, отнема й възможността да използва ефективно своите ресурси, време и енергия, за да се адаптира и развива.

Някакво ниво на технически дълг има във всяка една фирма, независимо от сектора, в който тя работи; от решенията, които използва; или от проектите, които реализира. Обикновено няколко фактора допринасят за появата на техническия дълг в компаниите:

  • Времеви ограничения: Разработчиците често пускат приложения, които не са изцяло довършени, или не разполагат с ключови възможности заради натиск да ги подготвят ускорено. Това на свой ред влияе върху самите екипи, които са принудени да понижат качеството на работата си, за да въведат съответния продукт по-бързо на пазара.
  • Постоянни промени: Дори напълно разработените апликации, които са пуснати навреме, могат вече да не са актуални на пазара. Непрекъснато повишаващите се потребителски очаквания, увеличаващите се пазарни възможности, новите киберзаплахи и текучеството на разработчиците създава множество предизвикателства за ИТ лидерите, които се опитват да реализират качествени и търсени продукти.
  • Остарели технологии: На фона на съвременните бързи темпове на иновации в компаниите винаги ще има системи на различна възраст, включително такива, които вече са остарели. Съответно поддръжката за част от тях може да бъде спряна във всеки момент, а това ще доведе до необходимост от непредвидени промени и доработки.


Видове технически дълг

Техническият дълг е обичаен резултат от софтуерната разработка и не е задължително винаги да бъде приеман като негативно последствие. Понякога той може да бъде свързан с външни, независещи от компанията причини, и съответно да не може да бъде напълно избегнат. Някои видове дълг обаче са по-рискови от другите:

  • Планиран - това са случаите, когато организацията взима информирано решение да генерира някакъв технически дълг с пълното разбиране за последствията от него (т.е. рискове и разходи). В тази връзка е особено важно ясно да се определят компромисите, които компанията е готова да направи в името на своята цел, а също така да се посочи кога пропуските ще бъдат попълнени. Тъй като тези решения могат да се натрупат с времето, е важно да се поддържа и следи актуален списък, за да се гарантира, че техническият дълг ще бъде разрешен и платен бързо.
  • Случаен - става дума за ситуациите, при които техническият дълг се появява поради лоши практики, проблеми и липса на опит с новите техники за кодиране. Той често може да се генерира като пряк резултат от лоша комуникация в организацията или липсата на разбирателство и единомислие между разработчиците и оперативните екипи.
  • Неизбежен - този тип технически дълг се появява заради промени в бизнеса, заради напредъка на технологиите с времето и навлизането на по-добри нови решения. Например по средата на проекта трябва да се въведе промяна в обхвата, тъй като новите бизнес възможности вече правят стария код неприложим. Това на свой ред води до големи разходи за добавяне на нови функционалности към съществуващия дизайн, например за по-добра мобилна поддръжка.
  • Софтуерна ентропия - последният вид технически дълг се появява с времето и бавното влошаване на качеството на софтуера, което води до проблеми с използваемостта, грешки или необходими ъпдейти. Ентропията се поражда, когато много разработчици - голяма част от които може би не разбират замислената функция и дизайн - въвеждат допълнителни промени, които увеличават сложността, нарушават NFR изискванията или бавно разрушават кода. В повечето случаи решението за ентропията е преработката на кода.

Управление на техническия дълг

За да се справят с техническия дълг, организациите трябва да се придържат към няколко основни добри практики за неговото управление.

Диалогът

Бизнес и ИТ лидерите трябва да постигнат съгласие на първо място за това какво обхваща техническият дълг. След това трябва да определят къде той съществува, като обикновено ИТ мениджмънтът трябва да зададе тона и да обясни на останалите засегнати страни защо е важно този дълг да се плати максимално скоро, вместо да се отлага. В тази връзка със сигурност на масата трябва да се поставят рискът от увеличени оперативни и технически разходи, намалената гъвкавост и по-бавно излизане на пазара.

Плащането

Независимо колко голям и какъв е техническият дълг, той трябва да бъде платен. Един от начините това да се случи е, като се преработи приложението, за да се намали сложността, да се премахнат повторенията и да се подобри структурата на кода. Рефакторингът е единственият начин да се подобри вътрешната структура на кода, без да се променя поведението на програмата. Друг вариант е да се замени приложението, макар че това на свой ред може да доведе до пораждането на нов технически дълг.

Гъвкавите практики

Според практиките за гъвкавост "завършен" е относително понятие. В традиционните среди за разработка софтуерът е готов, когато е изпратен към потребителите. Но в гъвкавите среди работата се случва на итерации и на практика разработката никога не приключва. Гъвкавият подход разчита на намаляване на обхвата, за да се гарантира качество, вместо да се гони голям брой функционалности. Именно и затова този начин на работа помага да се избегне натрупването на технически дълг, който да бъде забравен на фона на по-големи и по-добри проекти.

Намаляване на дълга при новите инициативи

Най-добрият начин да се намали техническият дълг в новите проекти е, като той бъде предвиден още при старта. По този начин ще може да се следи влиянието на краткосрочните решения върху дългосрочната възвръщаемост на инвестициите и да се създаде план за плащане на дълга в началото на проекта. Подобно на финансовия дълг техническият става по-скъп, колкото повече се чака. Чрез минимизирането му екипът може да намали риска, да подобри гъвкавостта и да достави по-добри резултати.

В днешния свят на непрекъснати иновации не можем да избягаме напълно от техническия дълг. Можем обаче да се противопоставим на изкушението заради крайни срокове прибързано да пуснем продукт, който да довършваме в някакъв момент в бъдеще. А за да избегнем ненужните разходи, още днес трябва да разгледаме в кои проекти сме задлъжнели и как да променим своите практики, за да намалим и управляваме "лихвите" занапред.

Снимка: Pixabay

Концепцията за техническия дълг не е нова, но през последната година и половина видяхме редица примери за сериозните последствията от този феномен. В началото на 2020 много търговци на дребно вече имаха онлайн магазини, но не бяха приоритизирали тяхната разработка по един мащабируем начин. Тогава изглеждаше малко вероятно изведнъж техните сайтове да бъдат посетени от много нови потребители. Съответно те продължаваха да отлагат за в бъдеще разширяването на възможностите си, тъй като щеше да им отнема време и средства.

След това обаче дойде пандемията и голяма част от търговците се оказаха неподготвени да се справят с новото предизвикателство. Те трябваше да добавят бързи временни корекции и промени, за да отговорят на увеличеното търсене - например опции за виртуални опашки. Повечето потребители обаче не обичат да чакат и веднага се насочиха към по-големите онлайн магазини, които можеха да им предложат търсеното от тях изживяване.

С използването на сайта вие приемате, че използваме „бисквитки" за подобряване на преживяването, персонализиране на съдържанието и рекламите, и анализиране на трафика. Вижте нашата политика за бисквитките и декларацията за поверителност. ОК