بدهی فنی بخشی لاینفک از زندگی از برنامهنویسهاست و حداقل در مورد شخص بنده اینطور است که وقتی به یاد بدهیهایی از این دست میافتم چندان خوشحال نمیشوم. علاوه بر این، بدهی فنی چیزی است که روز به روز بیشتر میشود که کمتر نمیشود و همین قضیه گاهی به چالشهای بزرگی در تیمهای توسعهٔ نرمافزار مبدل میگردد. در همین راستا، در این پست قصد دارم راهکاری که آن را از دورهٔ آموزشی سربازی فرا گرفتم و از آن طریق توانستم به بخشی از بدهیهای فنیام غلبه کنم را توضیح دهم.
فِلشبَکی به دورهٔ آموزشی سربازی
دورهٔ آموزشی را در پادگانی در کرمانشاه (کیلومتر ۱۸ الی ۲۰ جادهٔ کرمانشاه-سنندج) گذراندم که قبل از انقلاب تفرجگاه محمدرضا شاه پهلوی بود. فضایی بسیار زیبا، فرحبخش و خوب که به همه چیز شبیه بود به جز پادگان نظامی. در آن مدت هر گروهان چند ارشد داشت که من هم شده بودم ارشد ورزش و ارشد بهداشت. بگذریم.
ما چند گروهان بودیم که در این مدت دوماهه هر گروهان باید یک بار هفت هشت ده نفر میفرستاد آشپزخانه که غذای فردا را درست کنند. وقتی نوبت به گروهان ما رسید، خب بالتبع به دلیل وظیفهای که داشتم (ارشد بهداشت) بدون شک جزو یکی از کاندیداها بودم (توجه داشته باشیم که کاندید درست نیست و باید گفت کاندیدا). یک گروه شدیم و راه افتادم به سمت آشپزخانهٔ مرکز و از اینکه داریم امروز میرویم آشپزخانه و بر خلاف گروهی که وظیفهٔ تمیز کردن سرویسهای بهداشتی را داشتند به توالتها نمیرویم احساس خوششناسی میکردیم و در این مسیر هم برخی دائم از خوششناسیهای زندگیشون میگفتن که به نظر میرسید برخی از خاطرات توأم با خالیبندی است.
رفتیم و رفتیم تا رسیدیم به آشپزخانه و وارد شدیم و مسئول اونجا ما رو به یکی از بخشهای آشپزخانه هدایت کرد. دونهدونه بچهها وارد اون اتاق میشدن و من که آخر صف بودم میدیدم که هر کسی که وارد میشه رنگش میپره و خیلی برایم جالب بود که ببینم داستان چه هست تا اینکه خودم وارد شدم ...
چشمتان روز بد نبیند! یک نصفِ وانت نیسان بادمان 🍆 کُپه کردن بودن وسط اونجا و دورش هفت هشت ده تا صندوق میوه برعکس گذاشته بودن تا دورش بنشینیم و شروع به پوست کندن کنیم 😕 همه وا داده بودن و من وحشت کرده بودم اما اصلاً به روی خودم نیاوردم و دستودل هیچ کسی به کار نمیرفت تا اینکه چون هر گونه بیمسئولیتی پای من تمام میشد گفتم:
ببینید بچهها چه خوشمون بیاد و چه بدمون بیاد، این کار توی پاچهمونه و باید تا غروب انجام بشه و هم شما میدونید و هم من که اگر این کار انجام نشه و این بادمجونها به غذای فردا نرسه، عواقبش چی هست!
سه کار کردیم که الحق تصمیمات خوبی بود. اول از همه دیدیم که چاقوها تیز نیستن و یک ده دقیقهای وقت گذاشتیم و همه رو ردیف کردیم. سپس صندوق میوهها که دور کوهی از بادمجان چیده شده بودن رو برداشتیم و پشت به بادمجانها چیدیم تا نگاهمون به اون حجم از کار انجامنشده نیوفته و روال گذاشتیم که هر کس در آنِ واحد برگرده پشت سرش و ده عدد بادمجان برداره و شروع کنه به پوست کندن و بادمجانهای پوستکنده شده رو مقابلمون میریختیم تا هی که داره زیاد میشه از لحاظ روانی حس خوبی بگیریم (یعنی نگاه کردن فقط به نیمهٔ پر لیوان). علاوه بر این، قرار شد مادامی که داریم کار میکنیم به نوبت به همون خالیبندیهای توی مسیر ادامه بدیم تا کمی حواسمون پرت بشه.
آخر روز دستهامون سیاه شدن بودن از بس بادمجون پوست کنده بودیم و وقتی که فردای آن روز در صف غذا بودیم تا خورشت بادمجان میل کنیم، با یک غروری به الباقی سربازها نگاه میکردیم که گویی توانسته بودیم روز قبل در یک جنگ نابرابر علیه دشمن به موفقیت برسیم و همهٔ گردان (تقریباً ۱۰۰۰ نفر) اینکه گرسنه نماندهاند را از ما ده نفر دارن (به نوعی خودشهیدِراهِحقپندار شده بودیم 😆)
برسیم به مقولهٔ بدهی فنی
آنچه تا اینجا عرض کردم مقدمه بود تا برسیم به اصل مطلب که چیزی نیست جز این پرسش که «چگونه میتوان بدهیهای فنی را تسویه کرد؟» اجازه دهید یک مثال از خودم بزنم. یک فایل گوگلداکس درست کردهام به اسم Technical Debts و هرچه نکته، باگ، فیچر ریکوئست و ... هست را داخل این فایل نوشتهام که طی چند سال به دهها صفحه رسیده است (توجه داشته باشیم که در واژهٔ Debt به معنی «بدهی» حرف b تلفظ نمیشود و باید تلفظش کرد «دِت»).
هر شنبه که میرسید با خودم میگفتم «ایشالا شروع کنیم تموم شه بره پی کارش» و فایل رو باز میکردم اما به محض باز کردن فایل و دیدن حجم انبوهی از باگها (دقیقاً مشابه زمانی که کوهی از 🍆 را دیدیم.) وحشت میکردم و فایل رو میبستم که میگفتم «ایشالا از شمبهٔ دیگه». تا اینکه یاد داستان کار در آشپزخانهٔ پادگان افتادم و با خود گفتم بگذار تست کنم ببینم که آیا اون ترفند جواب میده یا نه. دیگه کاری به فایل گوگلداکس ندارم بلکه هر شنبه بازش میکنم و سه الی چهار موردش رو روی یک تکه کاغذ یادداشت میکنم و اون کاغذ رو مثل آینهٔ دِق کنار لپتاپم میگذارم. خب این کار دو فایده داشته:
- اول اینکه حجمش زیاد نیست و ناامیدی آدم رو فرا نمیگیره.
- دوم اینکه دائم جلوی چشم هست.
نمیدونم شاید یک دلیل روانشناختی داره که وقتی ما حجم زیادی از یک کار خاص رو میبینیم، به عبارتی چشم میبینه و مغز میترسه و همین باعث میشه که از انجامش منصرف بشیم. در واقع، وقتی که کاغذی حاوی سه الی چهار بدهی فنی مقابلم هست و وقتی یکی از آنها Done میشه با خودکار رویش خط میکشم یا کنارش ضربدر بزرگی میزنم، یک حس #موفقیت بزرگ به آدم دست میده و انگیزه پیدا میکنه که زودتر تمام اون کاغذ خطخطی بشه.
هر موقع هم که کل کارهای درجشده روی کاغذ تیک میخورن، میرم توی گوگلداکس و اون آیتمها رو سبز میکنم سپس اون کاغذ رو میاندازم دور و سه الی چهار آیتم بعدی رو روی یک کاغذ جدید یادداشت میکنم.
جمعبندی
این ترفند روی من حداقل جواب داده و توانستهام بخشی از بدهیهایم را صاف کنم اما لزوماً بدین معنی نیست که روی شما هم جواب بده! حال نوبت به نظرات شما میرسه. سولوشن شما در مقابله با بدهیهای فنی چیست؟ نظرات خود رو در بخش کامنتینگ با من و سایرین به اشتراک بگذارید.
سپاس