بهزاد مرادی

از پوست کندن بادمجان در خدمت سربازی تا غلبه بر بدهی‌های فنی در حوزهٔ‌ نرم‌افزار

بهزاد مرادی مدرس، کپی‌رایتر و دولوپر

این محتوا بدون نظارت تیم سکان آکادمی تولید شده و صرفاً نظرات شخصی بهزاد مرادی می‌باشد.

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

فِلش‌بَکی به دورهٔ آموزشی سربازی
دورهٔ آموزشی را در پادگانی در کرمانشاه (کیلومتر ۱۸ الی ۲۰ جادهٔ‌ کرمانشاه-سنندج) گذراندم که قبل از انقلاب تفرجگاه محمدرضا شاه پهلوی بود. فضایی بسیار زیبا، فرح‌بخش و خوب که به همه چیز شبیه بود به جز پادگان نظامی. در آن مدت هر گروهان چند ارشد داشت که من هم شده بودم ارشد ورزش و ارشد بهداشت. بگذریم.

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

رفتیم و رفتیم تا رسیدیم به آشپزخانه و وارد شدیم و مسئول اونجا ما رو به یکی از بخش‌های آشپزخانه هدایت کرد. دونه‌دونه بچه‌ها وارد اون اتاق می‌شدن و من که آخر صف بودم می‌دیدم که هر کسی که وارد می‌شه رنگش می‌پره و خیلی برایم جالب بود که ببینم داستان چه هست تا اینکه خودم وارد شدم ...

چشم‌تان روز بد نبیند! یک نصفِ وانت نیسان بادمان 🍆 کُپه کردن بودن وسط اونجا و دورش هفت هشت ده تا صندوق میوه برعکس گذاشته بودن تا دورش بنشینیم و شروع به پوست کندن کنیم 😕 همه وا داده بودن و من وحشت‌ کرده بودم اما اصلاً به روی خودم نیاوردم و دست‌و‌دل هیچ کسی به کار نمی‌رفت تا اینکه چون هر گونه بی‌مسئولیتی پای من تمام می‌شد گفتم:

ببینید بچه‌ها چه خوشمون بیاد و چه بدمون بیاد، این کار توی پاچه‌مونه و باید تا غروب انجام بشه و هم شما می‌دونید و هم من که اگر این کار انجام نشه و این بادمجون‌ها به غذای فردا نرسه،‌ عواقبش چی هست!

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

آخر روز دست‌هامون سیاه شدن بودن از بس بادمجون پوست کنده بودیم و وقتی که فردای آن روز در صف غذا بودیم تا خورشت بادمجان میل کنیم، با یک غروری به الباقی سربازها نگاه می‌کردیم که گویی توانسته بودیم روز قبل در یک جنگ نابرابر علیه دشمن به موفقیت برسیم و همهٔ گردان (تقریباً ۱۰۰۰ نفر) اینکه گرسنه نمانده‌اند را از ما ده نفر دارن (به نوعی خودشهیدِراهِ‌حق‌پندار شده بودیم 😆)

برسیم به مقولهٔ‌ بدهی فنی
آنچه تا اینجا عرض کردم مقدمه بود تا برسیم به اصل مطلب که چیزی نیست جز این پرسش که «چگونه می‌توان بدهی‌های فنی را تسویه کرد؟» اجازه دهید یک مثال از خودم بزنم. یک فایل گوگل‌داکس درست کرده‌ام به اسم Technical Debts و هرچه نکته، باگ، فیچر ریکوئست و ... هست را داخل این فایل نوشته‌ام که طی چند سال به ده‌ها صفحه رسیده است (توجه داشته باشیم که در واژهٔ Debt به معنی «بدهی» حرف b تلفظ نمی‌شود و باید تلفظش کرد «دِت»).

هر شنبه که می‌رسید با خودم می‌گفتم «ایشالا شروع کنیم تموم شه بره پی کارش» و فایل رو باز می‌کردم اما به محض باز کردن فایل و دیدن حجم انبوهی از باگ‌ها (دقیقاً مشابه زمانی که کوهی از 🍆 را دیدیم.) وحشت می‌کردم و فایل رو می‌بستم که می‌گفتم «ایشالا از شمبهٔ دیگه». تا اینکه یاد داستان کار در آشپزخانهٔ‌ پادگان افتادم و با خود گفتم بگذار تست کنم ببینم که آیا اون ترفند جواب می‌ده یا نه. دیگه کاری به فایل گوگل‌داکس ندارم بلکه هر شنبه بازش می‌کنم و سه الی چهار موردش رو روی یک تکه کاغذ یادداشت می‌کنم و اون کاغذ رو مثل آینهٔ دِق کنار لپ‌تاپم می‌گذارم. خب این کار دو فایده داشته:

- اول اینکه حجمش زیاد نیست و ناامیدی آدم رو فرا نمی‌گیره.
- دوم اینکه دائم جلوی چشم هست.

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

هر موقع هم که کل کارهای درج‌شده روی کاغذ تیک می‌خورن، می‌رم توی گوگل‌داکس و اون آیتم‌ها رو سبز می‌کنم سپس اون کاغذ رو می‌اندازم دور و سه الی چهار آیتم بعدی رو روی یک کاغذ جدید یادداشت می‌کنم.

جمع‌بندی
این ترفند روی من حداقل جواب داده و توانسته‌ام بخشی از بدهی‌هایم را صاف کنم اما لزوماً بدین معنی نیست که روی شما هم جواب بده! حال نوبت به نظرات شما می‌رسه. سولوشن شما در مقابله با بدهی‌های فنی چیست؟ نظرات خود رو در بخش کامنتینگ با من و سایرین به اشتراک بگذارید.

سپاس

ایدهٔ خود را در سکان‌پلاس بنویسید!

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
عباسمن یک کاربر مهمان هستم
۱۳۹۸/۰۲/۰۳
آقای مرادی شما پادگان شهدای کرمانشاه بودید؟! 😁
چه سالی؟
حسین قربانی
حسین قربانی
۱۳۹۷/۱۲/۲۶
آقای مرادی عزیز
سلام
1- چه مطلب خوبی و چه مثال گیرایی. زین پس به جای واژه نامانوس بدهی فنی می‌گوئیم بادمجان و خلاص.
2- راستش بنده برای برخی از بادمجان‌ها (همان بدهی‌ها سابق) از ابزار محیط کد استفاده می‌کنم، به این ترتیب که اگر با محصولات جت برین کار کنید، با درج یک کامنت در محیط کد و نوستن عبارت todo آن کامنت های لایت شده و در Tool Window قابل‌مشاهده است. همیشه هم تب todo را باز می‌گذارم تا خدای نکرده بادمجان‌ها در دید باشند.
خوبی این کار هم این است که بدهی‌های هر پروژه را جداگانه مشاهده می‌کنیم و زیاد نیست، سجده شکر به جا می‌آورد.
3- فکر می‌کنم تا حدی جوابگو باشد. برای سایر ادیتورها هم احتمالاً چنین قابلیتی باشد، یا به صورت Plug in در دسترس باشد. مثلاً برای notepad++ پلاگینی هست به اسم todo++ که من ازش استفاده نکردم ولی خُب هست.
4- نوشتن لیست بادمجونهایی که باید پوست بکنیم، خیلی خیلی راه حل خوبیه.
موفق باشید
کاربر میهمان
محمدحسینمن یک کاربر مهمان هستم
۱۳۹۷/۱۲/۲۶
مرادی جان این خلاقیت من رو کشته 👏
mk.unknown70
mk.unknown70
۱۳۹۷/۱۲/۲۵
من یه لیست بلند بالا از سوالاتی که توی stack overflow مطرح کردم رو در app این سایت بر اساس تاریخ دارم که به نوعی بدهی های فنی من هستن چون تقریبا هیچ کدومشون منجر به حل مسئله و مشکل نشدن. البته نیازی هم نیست که همیشه بدهی ها پرداخت بشه میشه خیلی از موارد بی خیال شد و سراغ مشکلات بعدی رفت