JavaRush /جاوا بلاگ /Random-UR /پروگرامنگ میں برا کرما۔ تکنیکی قرض کیا ہے اور اسے کیسے ٹھ...

پروگرامنگ میں برا کرما۔ تکنیکی قرض کیا ہے اور اسے کیسے ٹھیک کیا جائے۔

گروپ میں شائع ہوا۔
پروگرامنگ میں برا کرما۔  تکنیکی قرض کیا ہے اور اسے کیسے ختم کیا جائے - 1تکنیکی قرض۔ زیادہ تر پروگرامرز اپنی خاصیت میں فعال طور پر کام کرتے ہیں اس اصطلاح سے نمٹنا پڑتا ہے۔ بہت سے لوگوں کے لیے اس کا ذکر سر درد کا باعث بھی بن سکتا ہے، ساتھ ہی جسم کے دیگر حصوں میں بھی تکلیف کا باعث بنتا ہے جو کہ جب بھی آپ کسی پروجیکٹ پر کام کرتے ہوئے تکنیکی قرض سے نمٹتے ہیں تو ظاہر ہوتا ہے۔ پروگرامنگ میں برا کرما۔  تکنیکی قرض کیا ہے اور اسے کیسے ختم کیا جائے - 2لہذا، آج ہم تکنیکی قرض (TD) کے بارے میں بات کریں گے: یہ کیا ہے، یہ کیسے ظاہر ہوتا ہے، کس قسم کے تکنیکی قرض ہیں، اور اسے مؤثر طریقے سے کیسے منظم کیا جائے۔

تکنیکی قرض کیا ہے؟

تاہم، پہلے اصطلاحات کو سمجھیں۔ تکنیکی قرض سافٹ ویئر کی ترقی میں معیار کو نظر انداز کرنے اور مستقبل میں اضافی مزدوری کے اخراجات کی وجہ سے سافٹ ویئر کوڈ یا فن تعمیر میں جمع ہونے والے مسائل کے لیے سافٹ ویئر انجینئرنگ کا استعارہ ہے۔ یہ ویکیپیڈیا کی طرف سے دی گئی تکنیکی قرض کی تعریف ہے ۔ سادہ الفاظ میں، تکنیکی قرض ترقی میں آسان اور قلیل مدتی حلوں کو لاگو کرنے کا نتیجہ ہے، جو بعد میں مسلسل بڑھنے کا باعث بنتا ہے (جب تک، یقیناً، قرض کو "ادا نہیں کیا جاتا") پیسے اور بعد میں ادائیگی کے لیے وقت کی لاگت، کوڈ کو دوبارہ لکھنا یا پروڈکٹ کو اس کی موجودہ شکل میں برقرار رکھنا۔ عام پروگرامرز کی دنیا میں، تکنیکی قرض منفی کرما کی ایک قسم ہے، ایک تباہ کن اور اداسی کا ایک ذریعہ ہے جو برے کوڈ، بیساکھیوں کا استعمال اور "عارضی" (لیکن حقیقت میں بہت زیادہ نہیں) حل کے طور پر آتا ہے۔ قلیل مدتی مسائل کو حل کرنے اور ترقی کو تیز کرنے میں مدد کریں "کریڈٹ پر"، یعنی مستقبل میں مسائل کے بڑھتے ہوئے الجھنے کی قیمت پر۔ آئی ٹی انڈسٹری میں، تکنیکی قرض کافی سنگین مسئلہ ہے۔ ایک حالیہ تحقیق کے مطابق ، دنیا بھر کی کمپنیاں سالانہ 85 بلین ڈالر سالانہ صرف خراب کوڈ کو ٹھیک کرنے پر خرچ کرتی ہیں۔ مجموعی طور پر، تقریباً 300 بلین ڈالر سالانہ پرانے نظاموں اور "خراب" سافٹ ویئر کی حمایت سے متعلق منصوبوں پر خرچ ہوتے ہیں۔ یہ اہم تعداد ہیں۔ محققین کا اندازہ ہے کہ اگر تکنیکی قرضوں کے ساتھ کام کرنے والے تمام ڈویلپرز کی کوششوں اور اس کے نتائج کو "صحیح" ترقی پر مرکوز کیا گیا، تو یہ موجودہ دہائی کے دوران عالمی جی ڈی پی میں تقریباً 3 ٹریلین ڈالر کا اضافہ کرے گا۔

ظاہر ہونے کی وجوہات

یہ سمجھنا چاہیے کہ تکنیکی قرض ہمیشہ بری چیز نہیں ہے، بالکل اسی طرح جیسے مالیاتی قرض میں آنا مثبت ہوسکتا ہے اگر، مثال کے طور پر، آپ کاروبار کو ترقی دینے (یا اسٹارٹ اپ شروع کرنے ) کے لیے قرض لیتے ہیں۔ TD کے معاملے میں، یہ تیزی سے بڑھتی ہوئی کمپنیوں کے لیے قابل قبول ہے جنہیں اپنی کامیابی کا جائزہ لینے اور مارکیٹ کی ضروریات کا مطالعہ کرنے کے لیے نئی مصنوعات یا خدمات کو تیزی سے اور اکثر جاری کرنے کی ضرورت ہوتی ہے، یا مثال کے طور پر تیزی سے نئی جگہوں کو حاصل کرنے کی ضرورت ہوتی ہے۔ لیکن، مالی قرضوں کی طرح، آپ کو تکنیکی قرضوں کے ساتھ محتاط رہنے کی ضرورت ہے اور یہ جاننا ہوگا کہ اسے کس طرح منظم کرنا ہے، ورنہ سنگین مسائل پیدا ہوسکتے ہیں۔ سافٹ ویئر پروڈکٹ کی ترقی کے دوران جتنا زیادہ تکنیکی قرض جمع ہوتا ہے، اتنا ہی یہ کمپنی کو متاثر کر سکتا ہے، نئی ریلیز کی ریلیز کو سست کر سکتا ہے، عام کوڈرز کے حوصلے کو پست کر سکتا ہے جو اس طرح کے قرض کی "مینٹیننس" کے ذمہ دار ہوتے ہیں، اور اخراجات میں اضافہ ہوتا ہے۔ جو بالآخر کمپنی کو تباہ کر سکتا ہے۔ تکنیکی قرض کی موجودگی کی وجوہات، پروڈکٹ کو جلد از جلد مکمل کرنے یا نئی ریلیز کے ساتھ صارفین کو خوش کرنے کی نیک خواہش کے علاوہ، اکثر پروڈکٹ کا ناقص انتظام، غیر حقیقی ڈیڈ لائنز یا وسائل کی حدود اور یقیناً کوڈر کی سستی ہیں۔ , کم قابلیت اور کلیدی ترقیاتی اصولوں کی سمجھ کی کمی کے ساتھ مل کر بھی اکثر قرض کی ترقی میں حصہ ڈالتے ہیں۔ اکثر ایسا ہوتا ہے کہ ڈویلپرز خود تکنیکی قرضوں کی موجودگی اور مسلسل بڑھوتری سے بخوبی واقف ہوتے ہیں، لیکن ان کے پاس اتنی طاقت نہیں ہوتی کہ وہ اسے تبدیل کر سکیں، یا ایسے مسئلے کی موجودگی اور اسے حل کرنے کی اہمیت کے بارے میں انتظامیہ کو معلومات نہیں دے سکتے۔ پروگرامنگ میں برا کرما۔  تکنیکی قرض کیا ہے اور اسے کیسے ختم کیا جائے - 3

درجہ بندی

جیسا کہ اوپر ذکر کیا گیا ہے، تکنیکی قرض بہت سے مختلف شکلوں میں آتا ہے، اور چونکہ تعریف بذات خود صرف ایک استعارہ ہے، اس لیے تکنیکی قرض کی مختلف اقسام کو مختلف طریقوں سے درجہ بندی کیا جا سکتا ہے۔ خاص طور پر، Tapad کے شریک بانی اور CTO ڈاگ لیوڈن، جنہیں تکنیکی قرضوں کے دنیا کے ماہرین میں سے ایک سمجھا جاتا ہے، نے سالانہ CTO سمٹ تقریب میں ایک تقریر کے دوران، تکنیکی قرضوں کو تین اہم اقسام میں تقسیم کرنے کی تجویز پیش کی ۔
  1. جان بوجھ کر تکنیکی قرض۔

    یہ ایسے معاملات میں ظاہر ہوتا ہے جہاں ڈویلپرز جان بوجھ کر بہترین حل کا انتخاب نہیں کرتے ہیں، کیونکہ اس پر عمل درآمد آسان اور تیز ہوتا ہے، جس کے نتیجے میں، مارکیٹ میں ایک نئی پروڈکٹ کو تیزی سے جاری کرنے میں مدد ملے گی۔

    "بعض اوقات ہم ترقیاتی وقت کو کم کرنے کے لیے جان بوجھ کر تکنیکی قرض لیتے ہیں۔ اگر آپ اس راستے پر جانے کا فیصلہ کرتے ہیں، تو نہ صرف اس وقت پر غور کریں جو آپ ترقی کے دوران بچائیں گے، بلکہ اس وقت پر بھی غور کریں جو آپ کو بعد میں اس طرح کے قرض کی "ادائیگی" کے لیے کرنا پڑے گا۔ اس کے علاوہ، اس بات کو یقینی بنائیں کہ اسٹیک ہولڈرز [کمپنی کی اعلیٰ انتظامیہ] اس بات سے آگاہ ہیں کہ اس طرح کا فیصلہ مستقبل میں دیگر فنکشنز کے آغاز کو لامحالہ سست کر دے گا،" ڈیگ لجوڈن نے کہا۔

    تکنیکی قرض کی اس قسم کو حل کرنے کے لئے ایک نقطہ نظر

    ماہر اس طرح کے معاملات کو احتیاط سے دستاویز کرنے کا مشورہ دیتا ہے تاکہ اس تکنیکی قرض کے ضائع ہونے سے پہلے ان کی طرف رجوع کیا جا سکے اور انہیں درست کیا جا سکے، جو کہ منصوبے کے ڈھانچے کا ایک لازمی حصہ بن جائے۔

  2. تکنیکی قرض جو حادثاتی ہے یا پرانے پروجیکٹ کے فن تعمیر سے پیدا ہوتا ہے۔

    اس کے علاوہ، تکنیکی قرض اکثر وقت کے ساتھ پیدا ہوتا ہے، منصوبے کے فن تعمیر کے مرحلے میں غلطیوں اور کوتاہیوں کی وجہ سے۔ جیسے جیسے سسٹم تیار ہوتا ہے اور سافٹ ویئر کی ضروریات بدل جاتی ہیں، ڈیزائن کی غلطیاں زیادہ واضح ہو جاتی ہیں، اور نئی خصوصیات کو شامل کرنے میں زیادہ وقت اور محنت درکار ہوتی ہے۔ ابتدائی منصوبے کے فن تعمیر کا معیار یہاں ایک اہم کردار ادا کرتا ہے - یہ سادہ اور فعال دونوں ہونا چاہئے، پھر تبدیلیوں کو اپنانا آسان ہوگا۔

    تکنیکی قرض کی اس قسم کو حل کرنے کے لئے ایک نقطہ نظر

    اس قسم کے تکنیکی قرضوں کو جمع ہونے اور نازک سطح سے تجاوز کرنے سے روکنے کے لیے، ڈیگ لڈڈن باقاعدگی سے ری فیکٹرنگ کی سفارش کرتا ہے - تقریباً ہر دو سال میں ایک بار، ان ادوار کے دوران جب سسٹم مستحکم حالت میں ہو۔ ٹیم لیڈز اور پروڈکٹ مینیجرز کو اس قسم کے تکنیکی قرض کی "ادائیگی" کے لیے وقت مختص کرنا چاہیے جو کہ اس منصوبے کے لیے فن تعمیر اور بار بار تبدیل ہونے والی ضروریات کی وجہ سے پیدا ہوتا ہے۔

  3. تکنیکی قرض جو وقت کے ساتھ پیدا ہوتا ہے۔

    ماہر اس طرح کے تکنیکی قرضوں کو "طویل سڑ" کہتے ہیں۔ یہ وقت کے ساتھ ساتھ جمع ہوتا جاتا ہے کیونکہ ایک جزو یا نظام بتدریج بہت سی تبدیلیوں کے مسلسل شامل ہونے کی وجہ سے زیادہ پیچیدہ ہوتا جاتا ہے۔ یہ اکثر بڑھ جاتا ہے اگر مختلف لوگ مختلف مراحل پر سسٹم پر کام کرتے ہیں اور اصل فن تعمیر کو پوری طرح سے نہیں سمجھتے ہیں۔

    تکنیکی قرض کی اس قسم کو حل کرنے کے لئے ایک نقطہ نظر

    ماہر کا کہنا ہے کہ یہ تین قسم کے تکنیکی قرضوں میں سے صرف ایک ہے جس سے آپ کو مستقل بنیادوں پر ری فیکٹرنگ کے ذریعے بچنے کی کوشش کرنی چاہیے۔ مثالی طور پر، ایک ترقیاتی ٹیم کو اس نظام کے فن تعمیر کو اچھی طرح سے سمجھنے کے لیے وقت نکالنا چاہیے جس پر وہ کام کر رہے ہیں، چاہے اسے اصل میں دوسرے لوگوں نے بنایا ہو۔ سسٹم کو سمجھنا آپ کو پروجیکٹ کو "سڑنے" کے مرحلے پر لائے بغیر خراب کوڈ کو بتدریج بہتر اور درست کرنے کی اجازت دے گا۔

پروگرامنگ میں برا کرما۔  تکنیکی قرض کیا ہے اور اسے کیسے ختم کیا جائے - 4

تکنیکی قرض کے انتظام کے حل

تکنیکی قرضوں کو مؤثر طریقے سے سنبھالنے کے لیے بہت سے آپشنز موجود ہیں، لیکن تمام ماہرین اس بات پر متفق ہیں کہ ایسا ہونا ضروری ہے، کیونکہ تکنیکی قرض تقریباً کسی بھی ترقی کا ایک لازمی حصہ ہوتا ہے، اور جو کمپنیاں اسے نظر انداز کرتی ہیں انہیں بعد کے مراحل میں ہمیشہ مسائل کا سامنا کرنا پڑتا ہے۔ ترقیاتی ٹیم کے لیے تکنیکی قرض کے انتظام کے لیے کچھ موثر حل اور طریقے یہ ہیں۔
  1. اپنے کام کے وقت کا ایک مقررہ فیصد تکنیکی قرض پر کام کرنے کے لیے مختص کریں۔

    تکنیکی قرض کے بارے میں بات یہ ہے کہ اسے ختم کرنے پر کام کرنے کا کبھی وقت نہیں ہوتا ہے (کیونکہ ہمیشہ اعلی ترجیحی کام ہوتے ہیں) جب تک کہ آپ اسے جان بوجھ کر نہ کریں۔ لہذا، ایک اچھا حل یہ ہوگا کہ ان مقاصد کے لیے کام کے وقت کا ایک مقررہ فیصد مختص کیا جائے - تقریباً 20-25%۔

    یہ مختلف طریقوں سے کیا جا سکتا ہے۔

  2. ہفتے میں 1 دن تکنیکی قرض پر کام کریں۔

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

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

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

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

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

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

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

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

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

Заключение

آخر میں، میں ایک بار پھر اس بات پر زور دینا چاہوں گا کہ سافٹ ویئر ڈویلپمنٹ میں تکنیکی قرض کے بغیر ایسا کرنا ناممکن ہے، کیونکہ یہ ترقی کا ایک لازمی حصہ ہیں۔ تاہم، اس کی تکنیکی نوعیت کے باوجود، TD اب بھی ایک مسئلہ ہے جو ترقی میں انسانی عنصر کی وجہ سے ہے۔ اور اگرچہ آپ اس کے بغیر مکمل طور پر کام نہیں کر پائیں گے، لیکن تکنیکی قرض کی مقدار کو ہر ممکن حد تک کم کیا جا سکتا ہے اگر آپ "صاف" کوڈ لکھیں اور ترقی کے عمل کو جتنا ممکن ہو ذمہ داری اور پیشہ ورانہ انداز میں دیکھیں۔ یہ وہی ہے جو ہم سب کے لئے چاہتے ہیں!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION