SalmanAA

نوشته های سلمان عرب عامری

SalmanAA

نوشته های سلمان عرب عامری

۱ مطلب با کلمه‌ی کلیدی «بدهی فنی» ثبت شده است

ترجمه شده از کتاب (97 چیزی که هر برنامه نویسی باید بداند، مجموعه پندهایی از متخصصین، ویراستاری شده توسط Kevlin Henney)

با احتیاط عمل کنید
Seb Rose

در هر چیزی که بعهده می گیرید، با احتیاط عمل کنید و پیامدهای آن را در نظر داشته باشید. مهم نیست زمان بندی در ابتدای کار چقدر راحت به نظر آید چرا که گاهی اوقات نمی توان از تحت فشار قرار گرفتن  اجتناب کرد. وقتی باید بین "درست انجام دادن" و " سریع انجام دادن" یکی را انتخاب کنید، اغلب با این توجیه که بعدا بر می گردم و درستش می کنم، "سریع انجام دادن" انتخاب می شود. وقتی این قرار را با خود می گذارید، دقیقا منظور شما برای خودتان، تیمتان و مشتریتان همین است. ولی اغلب اوقات، تکرار* بعدی مسائل جدیدی پیش می آورد و شما روی آنها تمرکز میکنید. این کارهای معوقه به عنوان بدهی فنی شناخته می شود، و دوست شما نیست. مشخصا، مارتین فاولر* به این در طبقه بندی بدهی فنی بدهی فنی عمدی می گوید، و نباید با بدهی فنی غیر عمدی اشتباه گرفته شود.

بدهی فنی شبیه وام است: شما در کوتاه مدت از آن سود می برید، اما باید تا وقتی که کاملا تسویه شود بهره آن را بپردازید. این میانبرها در کد، افزودن ویژگی ها یا بهبود کد را سخت تر می کند. آن ها مثل زمین حاصلخیزی برای نقص ها هستند و موارد تست را می شکنند. هر چه بیشتر آنها را رها کنید، بدتر می شوند. زمانی که صرف انجام اصلاح کد اصلی می کنید، ممکن است پشته کاملی از انتخابهای طراحی نه کاملا صحیح وجود داشته باشند که روی مسئله اصلی لایه بندی شده اند، و بهبود و تصحیح کد را سخت تر می کنند. در واقع، اغلب فقط وقتی اوضاع آنقدر بد می شوند که شما باید مسئله اصلی را اصلاح کنید، برمی گردید تا اصلاحش کنید. و به این ترتیب، اغلب اصلاح بسیار سخت است چرا که واقعا نمی توانید از عهده زمان یا ریسکش بر آیید.

زمان هایی وجود دارد که شما باید بدهی فنی را تحمل کنید تا به موقع به یک سر رسید برسید یا تکه کوچکی از یک ویژگی را پیاده سازی کنید. سعی کنیددر این وضعیت قرار نگیرید، ولی اگر شرایط ایجاب می کند، چاره ای نیست. اما (و این یک امای بزرگ است) باید بدهی فنی را دنبال کنید و به سرعت به آن بپردازید، و یا اوضاع به سرعت به سمت شکست می رود. همینکه تصمیم به این کار گرفتید، یک کارت وظیفه بنویسید یا آن را در سامانه پیگیری ایرادات لاگ کنید تا اطمینان داشته باشید که فراموش نمی شود.

اگر برنامه ریزی کنید که در تکرار بعدی به بدهی بپردازید، هزینه حداقلی خواهد بود. پرداخت نکردن بدهی، بهره را افزایش می دهد، و این بهره باید دنبال شود تا هزینه اش قابل مشاهده باشد. این بدهی فنی روی ارزش تجاری پروژه اثر خواهد گذاشت  و امکان اولویت بندی مناسب در پرداخت مجدد را فراهم می سازد. انتخاب نحوه محاسبه و دنبال کردن بهره به پروژه بستگی دارد، اما باید پیگیری شود.

بدهی فنی را هر چه می توانید زودتر پرداخت کنید. عمل کردن به نحوه دیگر بی احتیاطی است.


* http://martinfowler.com/bliki/TechnicalDebtQuadrant.html

* منظور از تکرار همان iteration است که در متدولوژی چابک به کار می رود.