کد مانکی

من هم مثل بیشتر آدم ها خیلی از افراد غر غرو لذت نمی برم. هر وقت که خودم می خواهم غر غر کنم دچار احساسات بد و خود سانسوری می شوم. اما به هر حال وقتی که سیر اتفاقات بیست سی سال گذشته را مرور می کنم می بینم که غر غر کردن شاید برای خود فرد کار ناخوشایندی بوده و باعث شده که دیگران نسبت به اون گارد بگیرند، اما نهایتا برای باقی افراد، خصوصاً آیندگان، مفید بوده. به عنوان مثال، یک زمانی زندگی مجردی هم بین خانواده ها خیلی تابو بود و هم هیچ کسی به این راحتی ها خانه اش را به یک یا چند تا مجرد اجاره نمی داد. حداقل تا اواخر دهه هفتاد به سختی می شد در شهری مثل تهران خانه ای برای زندگی مجردی اجاره کرد. اما می بینیم (حداقل من یکی که خوب می بینم) که الان مثل گذشته ها نیست. هم اجاره کردن خانه خیلی راحت تر است و همه نگرش خانواده ها بهتر شده. من فکر می کنم بخشی از این بهبود به خاطر غر غرهای فراوان افرادی مثل من بوده است. من و دوستانی مثل من آنقدر راجع به این موضوع در املاکی ها و بیخ گوش صاحب خانه ها غر زده ایم که حد و حساب ندارد.من همیشه نسبت به فضای کار، قوانین و شرکت ها و عرف رایج در آنها انتقادات زیادی داشته و به اصطلاح همیشه در حال غر غر بوده ام. این چند وقت اخیر هم که تحریم ها، سقوط مجدد ارزش ریال و کرونا مزید بر علت شده و تقریبا سر تا سر وجودم پر شده از شکایت و انتقاد. غر غر کردن هم باعث می شود که از لحاظ روانی سبک شوم و هم شاید به عنوان قطره ای در دریا باعث شود که حساسیت های جامعه افزایش یافته و روزنه امیدی برای بهبود پیدا شود.کل این مقدمه ۳۰۴کلمه ای برای این بود که بگویم خیلی از تیم ها، خصوصا تیم هاکوچک تر، چه در شرکت های کوچک و چه در شرکت های بزرگ، نیاز به برنامه نویس حرفه ای ندارند. بلکه آن چیزی که بیشتر وقت ها دنبالش هستند یک کد مانکی و بعضی وقت یک کارآموز همیشگی است.کد مانکی یک اصطلاح منفی بوده و برای کسی به کار برده می شود که صبح تا شب کد می نویسد بدون آن که خیلی آنها را بفهمد. کد مانکی غلام حلقه به گوش رییس است و دستورات او را بی چون و چرا انجام می دهد، خواه مطابق اصول مهندسی نرم افزار باشد خواه نباشد. کد مانکی خیلی از کارش لذت نمی برد و آن را بیشتر به چشم یک منبع درآمد صرف نگاه می کند.برای تک تک این جنبه ها می توان در شرکت ها مصداق پیدا کرد. در شرکت های نرم افزاری خیلی ها را می توانید پیدا کنید که صبح تا شب در حال فریاد زدن انجام کار اصولی هستند، اما آن کسی که تصمیم گیرنده است به چیز دیگری فکر می کند. شاید خود شما هم یکی از کسانی باشید که مدام راجع به پیچیدگی بیش از حد یا عدم استفاده از تست اتوماتیک یا انتخاب اشتباه ابزار هشدار می دهید اما هیچکس شما را جدی نمی گیرد. در تیم های توسعه می توانید افراد زیادی را پیدا کنید که لذتی از کارشان نمی برند. ایجاد نرم افزار را دوست دارند ولی فعالیت های روزمره در شرکت آنها را به رضایت شغلی نمی رساند. با خودتان رو راست باشید. چند بار پیش آمده که به رییس تان بگویید که این روش جواب نمی دهد یا خطرناک است یا مشکل ساز است اما رییس گفته که عیبی ندارد، فقط انجامش بده؟ اصلا تیم نرم افزاری چرا باید رییس داشته باشد؟ پس قدرت تصمیم گیری و مسئولیت پذیری خود برنامه نویس چه می شود؟ چقدر پیش آمده که زیر غلتک قوانین ناکارآمد Coding Guideline احساس له شدگی کرده اید؟ قوانینی که روی تک به تک خطوط کد شما محدودیت ایجاد می کنند؟ مطمئنا برای خیلی از برنامه نویس ها پیش آمده که در انبوهی از documentation های ناقص و پر جزییات گم شده باشند. خصوصاً وقتی که طرف قرارداد یک مجموعه زورگو و بی سواد دولتی هستند. این روز ها واحد آمار و IT هر یک از وزرات خانه ها و سازمان ها data center، نرم افزار جامع و قوانین لایتغیر خودشان را ایجاد کرده و آنها را به زور به حلق پیمانکاران بخت برگشته فرو می کنند. خیلی تیم های محترم یک تا چند نسخه از نسخه روز محیط های توسعه و نرم افزارها و ابزارهای مورد استفاده شان عقب هستند یا اگر هم به روز هستند، از آن امکانات استفاده جدی ندارند.اینها همه نشانه های واضحی از کد مانکی بودن شما هستند. تازه راجع به این که محصول شما هیچ وقت زیر بار نرفته و تعداد مشتری هایش به تعداد انگشتان دست نمی رسد صحبت نمی کنم. راجع به این که برنامه نویس تازه استخدام شده را به انبوهی کار maintance یک کد بیس آشغالی می سپارند چیزی نمی گویم. راجع به این که آموزش و تنوع تکنولوژی وجود ندارد صحبت نمی کنم. راجع به این که شرکت ها اصولا با مقوله ترسیم مسیر شغلی و روش ارتقای افراد بیگانه هستند صحبت نمی کنم.مشابه قضیه کد مانکی برای کارآموز همیشگی هم صادق است. شرکت ها دوست دارند با افراد مثل کارآموز صفر کیلومتر رفتار کنند و این رفتار را برای همیشه حفظ کنند. یعنی بدون هیچ برنامه مشخصی، هر روز یک کار جدید و بی ارتباط به کارهای قبلی به او بسپارند. از مهارت هایش استفاده جدی نکنند و او را با یک چالش درست و حسابی رشد ندهند. شبکه ارتباطی اش را کور کنند و اجازه هیچ تصمیم گیری را به او ندهند.مطمئنا رییس ها و کارفرما هم توضیحاتی برای خودشان دارند. من تجربه تصمیم گیری و کارفرما بودن هم داشته و دارم. توجیهات کمبود بودجه و نبود زمان کافی را هم تا حدی می پذیرم. اما فقط تا یک حدی. شرکت ها و تیم ها نسبت به رشد و بلوغ نیروهایشان مسئولیت دارند. صرف پرداخت حقوق از کسی رفع تکلیف نمی کند.نظر شما چیست؟