تصور کن یک تیم نرمافزاری میخواد یه فروشگاه آنلاین بسازه و باید تا دو ماه دیگه آماده بشه. اما زمان محدوده و اگر بخوان همه چیز رو کاملاً درست انجام بدن، ممکنه دیر آماده بشه.
پس تیم تصمیم میگیره کارها رو سریع و ساده انجام بده، مثلاً به جای طراحی سیستم امنیتی پیچیده، از یه راهحل ساده استفاده میکنه. این کار کمک میکنه محصول بهموقع آماده بشه، اما یه "بدهی فنی" ایجاد میشه که بعداً نیاز به بهبود داره.
بدهی فنی لزوماً بد نیست؛ چون به تیم کمک میکنه محصول به موقع آماده بشه. اما اگر نادیده گرفته بشه و انباشته شه، میتونه مشکلات جدی مثل حملات امنیتی یا افت عملکرد ایجاد کنه.
بدهی فنی میتونه در شرایطی مفید باشه که تیم باید به سرعت به یک هدف یا محصول دست پیدا کنه و زمان یا منابع کافی برای اجرای همه جزئیات با کیفیت بالا رو نداره. در اینجا چند مثال از موقعیتهایی که بدهی فنی میتونه مفید باشه رو میگم:
1. عرضهی سریع محصول برای ورود به بازار
فرض کن استارتاپی داری که یک محصول جدید و نوآورانه (مثل یک اپلیکیشن موبایل) ساختهاید، و میخواید سریعتر از رقیبانتون وارد بازار بشید. در اینجا، تمرکز اصلی تیم روی ساخت ویژگیهای اصلی و پایهای محصول خواهد بود تا هرچه زودتر بتونید اپلیکیشن رو منتشر کنید.
ممکنه به جای اینکه از ابتدا به بهترین و بهینهترین معماری و زیرساخت فکر کنید، تصمیم بگیرید که برخی از ویژگیها رو به صورت سریع و ساده پیادهسازی کنید. در اینجا، بدهی فنی کمک میکنه که محصولتون سریعتر آماده بشه و فرصت کسب درآمد یا جذب کاربرهای اولیه رو از دست ندید. پس بعداً که محصول موفق شد، میتونید وقت بذارید و اون بخشها رو اصلاح کنید.
2. پروژههای کوتاهمدت یا کمپینهای فصلی
فرض کن تیمی در حال توسعهی یک ویژگی جدید برای یک کمپین تبلیغاتی فصلی یا رویداد خاص (مثل تخفیفهای بلک فرایدی) است. این کمپین مثلاً فقط چند هفته طول میکشه و بعد از اون اهمیتش کاهش پیدا میکنه.
در این حالت، ممکنه تیم تصمیم بگیره که با سادهسازی بعضی بخشها و قبول بدهی فنی، سریعاً ویژگیهای مورد نیاز کمپین رو پیادهسازی کنه. بعد از اتمام کمپین، این بدهی ممکنه اصلاً نیاز به پرداخت نداشته باشه چون ویژگی فقط برای مدت کوتاهی مورد استفاده بوده.
3. تست سریع یک ایده یا نمونه اولیه (MVP)
تصور کن یک شرکت میخواد یک نمونه اولیه (MVP) از یک محصول رو به سرمایهگذاران یا کاربران اولیه نشون بده تا بازخورد بگیره. هدف اینه که بدونید آیا ایدهی محصول جذاب هست یا نه، نه اینکه از همون اول بهترین کد و معماری ممکن رو بنویسید.
در اینجا، تیم ممکنه برخی بخشها رو به صورت موقتی و ساده بسازه تا ایده رو سریع به دست مشتری برسونه و بازخورد بگیره. اگر بازخورد مثبت بود و تصمیم به ادامهی توسعه گرفتید، میتونید بدهی فنی رو پرداخت کنید و کد رو بهبود بدید.
4. واکنش به تغییرات سریع بازار
گاهی شرایط بازار یا نیاز مشتریان سریعاً تغییر میکنه و شرکت باید به سرعت واکنش نشون بده. فرض کنید یک تغییر جدید در قوانین دولتی ایجاد شده که مستلزم اینه که شما ویژگیهای جدیدی رو به نرمافزارتون اضافه کنید تا با قوانین جدید سازگار بشید.
اینجا تیم تصمیم میگیره به سرعت راهحل موقت و سادهای رو پیادهسازی کنه تا از جریمههای قانونی جلوگیری کنه، و بعداً وقتی فرصت شد، اون راهحل رو بهبود بده و بدهی فنی رو پرداخت کنه.