طراحی سایت|طراحی اپلیکیشن

بدهی فنی به چه معناست؟

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

اگر با صنعت نرم افزار آشنا باشید ، به احتمال زیاد اصطلاح “بدهی فنی (Technical debt)” را شنیده اید. این عبارت با بدهی طراحی یا بدهی کدنیز شناخته می شود ، بدهی فنی به طور گسترده در فضای فناوری استفاده می شود. همه چیز را از اشکالات گرفته تا کد قدیمی ، تا مدارک از دست رفته را پوشش می دهد. اما به هر حال دقیقاً بدهی فنی چیست؟ و چرا ما آن را چنین می نامیم؟

بدهی فنی عبارتی است که در اصل توسط توسعه دهنده نرم افزار ، وارد کانینگهام (Ward Cunningham)، ساخته شده است.او در آن زمان متوجه این موضوع نبود ، اما کلمه جدیدی را در جامعه نرم افزار ایجاد کرد.

سالها بعد ، کانینگام توضیح داد که چگونه در ابتدا با استعاره بدهی فنی روبرو شد:

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

آیا تعریف ساده ای از بدهی فنی وجود دارد؟

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

“بدهی فنی هر کدی است که اکنون اضافه شده و برای رفع آن در زمان بعدی کار بیشتری لازم است – به طور معمول با هدف دستیابی به سود سریع.”

“بدهی فنی زمانی اتفاق می افتد که شما در نوشتن کد خود میانبر می گیرید تا سریعتر به هدف خود برسید ، اما نگهداری کد با هزینه بیشتر، سخت تر است. این بدهی فنی نامیده می شود زیرا مانند گرفتن وام است. امروز شما می توانید بیشتر از آنچه معمولاً می توانید به دست آورید ، اما بعداً هزینه بالاتری پرداخت می کنید. »

“بدهی فنی عاقبت اقدامات توسعه نرم افزار را توصیف می کند که عمدا یا ناخواسته ارزش مشتری و یا محدودیت های پروژه مانند مهلت تحویل ، بیش از اجرای فنی بیشتر و ملاحظات طراحی را در اولویت قرار می دهد …”

آیا انواع مختلف بدهی فنی وجود دارد؟

در سال 2007 ، استیو مک کانل پیشنهاد کرد که 2 نوع بدهی فنی وجود دارد: عمدی و غیر عمدی. به گفته وی ، بدهی فنی عمدی بدهی فنی است که فرد آگاهانه آن را به عنوان ابزاری استراتژیک به عهده می گیرد. در مقابل بدهی ناخواسته ، که وی آن را “نتیجه غیر استراتژیک انجام یک کار ضعیف” می نامد.

چند سال بعد ، مارتین فاولر مفهوم مک کانل را یک گام فراتر برد و آنچه را “ربع فنی بدهی” می نامد ، منتشر کرد. این ربع تلاش می کند بدهی های فنی را بر اساس قصد و زمینه بر اساس 4 دسته بندی کند. فاولر می گوید بدهی فنی را می توان ابتدا بر اساس قصد طبقه بندی کرد: آیا این کار عمدی است یا سهوی؟ و سپس حتی بیشتر تشخیص داده می شود که این بدهی محتاطانه است یا بی پروا.

آیا بدهی فنی بد است؟

اگر پاسخی ساده می خواهید: بدهی فنی نه خوب است و نه بد ، بدهی است. و درست مثل بدهی مالی ، چندین ایده وجود دارد که آیا بدهی فنی چیز خوبی است یا بد. بنابراین به جای جستجوی پاسخ عینی ، در اینجا به چند دیدگاه مختلف خواهیم پرداخت.

در آخر سعی کنید که هیچ گاه کیفیت انجام پروژه را فدای سرعت انجام آن نکنید ، اما اگر به هر دلیلی مجبور به این کار شدید ، فراموش نکنید هرچه سریعتر آن بدهی را پرداخت کنید.