JavaRush /Java Blogu /Random-AZ /Proqramlaşdırmada pis karma. Texniki borc nədir və onu ne...

Proqramlaşdırmada pis karma. Texniki borc nədir və onu necə düzəltmək olar

Qrupda dərc edilmişdir
Proqramlaşdırmada pis karma.  Texniki borc nədir və onu necə aradan qaldırmaq olar - 1Texniki borc. İxtisasları üzrə fəal işləyən əksər proqramçılar bu terminlə məşğul olmalıdırlar. Bir çoxları üçün onun qeyd edilməsi hətta bir layihə üzərində işləyərkən texniki borcla qarşılaşdığınız zaman ortaya çıxan baş ağrısına, eləcə də bədənin digər hissələrində narahatlığa səbəb ola bilər. Proqramlaşdırmada pis karma.  Texniki borc nədir və onu necə aradan qaldırmaq olar - 2Buna görə də, bu gün texniki borc (TD) haqqında danışacağıq: bu nədir, necə görünür, texniki borcun hansı növləri var və onu necə effektiv idarə etmək olar.

Texniki borc nədir?

Ancaq əvvəlcə terminologiyanı anlayaq. Texniki borc proqram təminatının hazırlanmasında keyfiyyətə etinasızlıq nəticəsində proqram kodunda və ya arxitekturasında yığılan və gələcəkdə əlavə əmək xərclərinə səbəb olan problemlər üçün proqram mühəndisliyi metaforasıdır. Bu, Vikipediya tərəfindən verilən texniki borcun tərifidir . Sadə dillə desək, texniki borc inkişafda sadələşdirilmiş və qısamüddətli həllərin tətbiqinin nəticəsidir ki, bu da sonradan daim artan (əlbəttə ki, borc “ödənilməsə”) pul və sonrakı dəqiqləşdirmə üçün vaxt xərclərinə gətirib çıxarır, kodun yenidən yazılması və ya məhsulun mövcud formada saxlanması. Adi proqramçıların dünyasında texniki borc mənfi karmanın növlərindən biridir, pis kod, qoltuqağaqlardan istifadə və “müvəqqəti” (lakin əslində çox deyil) həllərin cəzası kimi gələn demotivator və kədər mənbəyidir. qısamüddətli problemlərin həllinə və "kreditlə" inkişafın sürətləndirilməsinə kömək etmək, yəni gələcəkdə artan problemlər qarmaqarışıqlığı hesabına. İT sənayesində texniki borc kifayət qədər ciddi problemdir. Bu yaxınlarda aparılan bir araşdırmaya görə , dünya üzrə şirkətlər hər il yalnız səhv kodu düzəltmək üçün 85 milyard dollardan çox pul xərcləyirlər. Ümumilikdə, köhnəlmiş sistemlərin və “pis” proqram təminatının dəstəklənməsi ilə bağlı layihələrə ildə təxminən 300 milyard dollar xərclənir. Bunlar əhəmiyyətli rəqəmlərdir. Tədqiqatçıların hesablamalarına görə, əgər texniki borcla işləyən bütün tərtibatçıların səyləri və onun nəticələri “düzgün” inkişafa yönəlsəydi, bu, cari onillik ərzində qlobal ÜDM-ə təxminən 3 trilyon dollar əlavə edərdi.

Görünüşün səbəbləri

Başa düşmək lazımdır ki, texniki borc həmişə pis bir şey deyil, necə ki, məsələn, biznesi inkişaf etdirmək üçün kredit götürsəniz (və ya startap açsanız ) maliyyə borcuna düşmək müsbət ola bilər. TD vəziyyətində, bu, məsələn, uğurlarını qiymətləndirmək və bazar ehtiyaclarını öyrənmək və ya tez bir zamanda yeni nişləri ələ keçirmək üçün tez və tez-tez yeni məhsul və ya xidmətlər buraxmalı olan sürətlə inkişaf edən şirkətlər üçün məqbuldur. Ancaq maliyyə borcunda olduğu kimi, texniki borcla da diqqətli olmalı və onu necə idarə edəcəyinizi bilməlisiniz, əks halda ciddi problemlər yarana bilər. Proqram məhsulunun hazırlanması zamanı yığılan texniki borc nə qədər çox olarsa, bu, şirkətə bir o qədər çox təsir göstərə bilər, yeni buraxılışların buraxılışını ləngidir, bu cür borcun “saxlanılmasına” cavabdeh olan adi kodlayıcıların mənəviyyatını aşağı salır və xərcləri artırır. , nəticədə hətta şirkəti məhv edə bilər. Texniki borcun yaranmasının səbəbləri, məhsulu mümkün qədər tez bitirmək və ya yeni buraxılışla istifadəçiləri sevindirmək nəcib istəyi ilə yanaşı, çox vaxt məhsulun keyfiyyətsiz idarə edilməsi, qeyri-real müddətlər və ya resurs məhdudiyyətləri və əlbəttə ki, kodlayıcı tənbəllikdir. , aşağı ixtisas və əsas inkişaf prinsiplərinin anlaşılmaması ilə birləşərək, tez-tez borcun artmasına kömək edir. Tez-tez olur ki, tərtibatçılar özləri texniki borcun mövcudluğunu və daimi artımını yaxşı bilirlər, lakin onu dəyişdirmək üçün kifayət qədər gücə malik deyillər və ya belə bir problemin mövcudluğu və onun həllinin vacibliyi barədə rəhbərliyə məlumat çatdıra bilmirlər. Proqramlaşdırmada pis karma.  Texniki borc nədir və onu necə aradan qaldırmaq olar - 3

Təsnifat

Yuxarıda qeyd edildiyi kimi, texniki borc müxtəlif formalarda olur və tərifin özü sadəcə bir metafora olduğundan, texniki borcun müxtəlif növləri müxtəlif yollarla təsnif edilə bilər. Xüsusilə, texniki borclar üzrə dünya ekspertlərindən hesab edilən Tapad-ın həmtəsisçisi və texniki direktoru Dag Liodden illik CTO Sammit tədbirində çıxışı zamanı texniki borcun üç əsas növə bölünməsini təklif edib .
  1. Qəsdən texniki borc.

    Tərtibatçıların qəsdən ən yaxşı həlli seçmədiyi hallarda ortaya çıxır, çünki həyata keçirmək daha asan və daha sürətlidir, bu da öz növbəsində yeni bir məhsulu bazara tez buraxmağa kömək edəcəkdir.

    “Bəzən inkişaf müddətini azaltmaq üçün qəsdən texniki borc götürürük. Bu yola getməyə qərar verərsənsə, yalnız inkişaf zamanı qənaət edəcəyiniz vaxtı deyil, həm də bu cür borcları "ödəmək" üçün daha sonra sərf etməli olduğunuz vaxtı da nəzərə alın. Həmçinin əmin olun ki, maraqlı tərəflər [şirkətin top menecmenti] belə bir qərarın gələcəkdə digər funksiyaların işə salınmasını qaçılmaz olaraq yavaşlatacağını bilsinlər”, – Dag Ljodden bildirib.

    Bu tip texniki borcun həllinə yanaşma

    Mütəxəssis, layihə strukturunun ayrılmaz hissəsinə çevrilərək, bu texniki borc itirilməmişdən əvvəl onlara qayıtmaq və düzəltmək üçün bu cür halları diqqətlə sənədləşdirməyi məsləhət görür.

  2. Təsadüfi olan və ya köhnəlmiş layihə arxitekturasından yaranan texniki borc.

    Həmçinin, texniki borc tez-tez layihə arxitekturasının yaradılması mərhələsindəki səhvlər və çatışmazlıqlar səbəbindən zamanla yaranır. Sistemlər inkişaf etdikcə və proqram təminatı tələbləri dəyişdikcə, dizayn səhvləri daha aydın görünür və yeni funksiyaların əlavə edilməsi daha çox vaxt və səy tələb edir. Burada ilkin layihə arxitekturasının keyfiyyəti mühüm rol oynayır - o, həm sadə, həm də funksional olmalıdır, onda dəyişikliklərə uyğunlaşmaq daha asan olacaq.

    Bu tip texniki borcun həllinə yanaşma

    Bu növ texniki borcun yığılmasının və kritik səviyyələri keçməsinin qarşısını almaq üçün Dag Llodden müntəzəm olaraq refaktorinqi tövsiyə edir - təxminən iki ildə bir dəfə, sistemin sabit vəziyyətdə olduğu dövrlərdə. Komanda rəhbərləri və məhsul menecerləri layihə üçün arxitektura və tez-tez dəyişən tələblər səbəbindən yaranan bu cür texniki borcları “ödəmək” üçün vaxt ayırmalıdırlar.

  3. Zamanla yaranan texniki borc.

    Ekspert belə texniki borcları “uzunmüddətli çürük” adlandırır. Daim əlavə edilən bir çox dəyişikliklər səbəbindən bir komponent və ya sistem tədricən daha mürəkkəbləşdiyi üçün zamanla yığılır. Fərqli insanlar sistemdə müxtəlif mərhələlərdə işləyirlərsə və orijinal arxitekturanı tam başa düşmürlərsə, bu, çox vaxt pisləşir.

    Bu tip texniki borcun həllinə yanaşma

    Mütəxəssis deyir ki, bu, müntəzəm refaktorinq vasitəsilə davamlı olaraq qarşısını almağa çalışmalı olduğunuz üç növ texniki borcdan yeganə biridir. İdeal olaraq, inkişaf qrupu, ilkin olaraq başqa insanlar tərəfindən yaradılsa belə, üzərində işlədikləri sistemin arxitekturasını hərtərəfli başa düşmək üçün vaxt ayırmalıdır. Sistemi başa düşmək, layihəni "çürümə" mərhələsinə gətirmədən pis kodu tədricən təkmilləşdirməyə və düzəltməyə imkan verəcəkdir.

Proqramlaşdırmada pis karma.  Texniki borc nədir və onu necə aradan qaldırmaq olar - 4

Borcların İdarə Edilməsi üzrə Texniki Həllər

Texniki borcun effektiv idarə olunması üçün bir çox variant var, lakin bütün ekspertlər razılaşırlar ki, bunu etmək lazımdır, çünki texniki borc demək olar ki, istənilən inkişafın tərkib hissəsidir və ona məhəl qoymayan şirkətlər sonrakı mərhələlərdə daim problemlərlə üzləşirlər. İnkişaf komandası üçün texniki borcun idarə edilməsi üçün bəzi effektiv həllər və yanaşmalar buradadır.
  1. İş vaxtınızın sabit faizini texniki borc üzərində işləməyə ayırın.

    Texniki borcla bağlı məsələ ondan ibarətdir ki, siz bunu məqsədyönlü etməsəniz, onun aradan qaldırılması üzərində işləməyə heç vaxt vaxt yoxdur (çünki həmişə daha yüksək prioritet vəzifələr var). Buna görə də, bu məqsədlər üçün iş vaxtının müəyyən bir sabit faizini - təxminən 20-25% -ni ayırmaq yaxşı bir həll olardı.

    Bu müxtəlif yollarla edilə bilər.

  2. Həftədə 1 gün texniki borc üzərində işləmək

    Если выделять на работу над устранением ТД всей командой один день в неделю, это How раз будет около 20% от общего рабочего времени. Для некоторых команд такой подход работает просто отлично и, говорят, даже повышает мораль, ведь в этот конкретный день недели вся команда занимается решением проблем, которые достают их все остальное время разработки.

  3. Посвящать работе над ТД каждую четвертую задачу

    Такая система подходит тем командам, которые склонны разделять работу над проектом на примерно равномерные по времени и усorям для их выполнения задачи. Если один из каждых четырех тасков посвящать “выплате” ТД, это будет занимать около четверти всего времени разработки. А введение такого подхода в качестве правила позволит убедиться, что codeеры не будут откладывать технический долг “на потом”.

  4. Переходящая роль

    Еще одним подходом к проблеме устранения технического долга будет назначать на данную задачу разных членов команды поочередно, чтобы равномерно распределить эту порой далеко не самую приятную работу среди членов коллектива. Количество разработчиков, назначенных заниматься “разгребанием” ТД, может быть разным — для команды из 4-5 человек будет достаточно одного, тогда How коллективы побольше могут назначать двух-трех. Но суть остается прежней — на работу над ТД должно уходить около 20-25% всех ресурсов и человеко-часов.

  5. Правило бойскаутов.

    Правило бойскаутов состоит в том, чтобы всегда оставлять туристический лагерь (стоянку для палаток) в лучшем состоянии, чем он был до их прихода, то есть убирать даже тот мусор, который был оставлен не ими. Этот принцип, How выяснor заокеанские codeеры, отлично подходит и для управления техническим долгом. Согласно данному правилу, все члены команды должны заниматься исправлением ТД каждый раз, когда сталкиваются с ним в том or ином виде. Конечно, это правило нужно применять разумно, чтобы время, которое уходит на исправление ТД, не превышало “разумные” 25-30% от общих временных ресурсов.

  6. Приоритизация “дорогого” технического долга

    Также эксперты в массе своей рекомендуют не забывать о том, что технический долг может различаться в том числе и по важности. Далеко не каждый тип ТД требует немедленного устранения, поэтому важно работать над классификацией разных видов технического долга и приоритезацией работы с ними соответственно. Проще говоря, прежде всего закрывать надо те долги, которые оказывают прямое влияние на speed разработки продукта, будучи частью его базовой архитектуры. Такие долги являются самыми опасными, потому что ведут к появлению новых долгов, которые могут расти How снежный ком.

Заключение

Nəhayət, bir daha qeyd etmək istərdim ki, proqram təminatının hazırlanmasında texniki borc olmadan etmək mümkün deyil, çünki onlar inkişafın ayrılmaz hissəsidir. Bununla belə, texniki xarakterinə baxmayaraq, TD hələ də inkişafda insan faktorunun yaratdığı problemdir. Onsuz tamamilə edə bilməyəcəksinizsə də, "təmiz" kod yazsanız və inkişaf prosesinə mümkün qədər məsuliyyətli və peşəkarlıqla yanaşsanız, texniki borcun miqdarı mümkün qədər azaldıla bilər. Hər kəsə arzuladığımız budur!
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION