چالش های یک برنامه نویس مینفریم



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

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

1-اولین چیزی که وقتی پا به یک چنین شرکت‌هایی می گذارین و توجه شما رو نسبت به محیط های دیگه جلب می‌کنه میزان ماندگاری افراد در یک شرکت هست افرادی که در این حوزه فعالیت دارن می تونن زمان نسبتا زیادی رو در یک شرکت گذرونده باشن و باور کنین قرار هست بگذرونن(10 سال،15 سال و حتی بیشتر). شرکت‌هایی که با تکنولوژی‌هایی مثل Cobol کار می کنن اکثریت تو حوزه های مالی هستن که به دلیل محافظه‌کار بودن و ریسک‌پذیری بسیار پایین و البته داشتن بودجه‌های دولتی کافی حاضر هستن به هزینه‌ی بالای نگهداری از سیستم فعلی با استک قدیمی با توجیه کارایی بالا رضایت بدن و کیفیت سیستم رو توی پرفورمنس اجرایی خلاصه کنن. پس اگه دنبال شغلی هستین که تا آخر عمر براتون بمونه و حوصله‌ی تغییر مداوم ندارین امنیت شغلی خوبی رو بهتون میده در غیر این صورت تکرار مداوم یک سیستم علی‌رغم اینکه می‌دونین هیچ‌کدوم از فاکتورهای کیفیت نرم‌افزار رو نداره چقدر می‌تونه واقعا عذاب آور باشه.

2-اگر چه همونطور که اشاره کردم امنیت شغلی در این شرکت‌ها بالا هست ولی به همون میزان هم تعداد شرکت‌ها و گزینه‌هایی که می‌تونین برای تغییر محیط کاری با همون دانش قبلی داشته باشین نسبت به تکنولوژی‌های دیگه بسیار محدود هست و با توجه به روحیه‌ای که دارید این مسئله می‌تونه دیر یا زود براتون دغدغه بشه.(شاید تعریف بهتر از امنیت شغلی این باشه که همیشه برای تخصص شما تقاضا باشه و شما بتونین فاکتورهای دیگه به جز صرفا جابه‌جایی ناخواسته‌ی محیط کارتون رو کنترل کنین)

3- به دلیل نداشتن متخصص‌های زیاد در این حوزه حداقل در شرکتی که من باهاش همکاری داشتم جذب نیروهای جونیور که اولین تجربه‌ی کاری حرفه‌ایشون رو داشتن خیلی بیشتر از نیروهایی بود که قبلا در محیط‌های دیگه فعالیت داشتن. خود این امر اصلا بد نیست و حتی می‌تونه به پویایی شرکت کمک کنه ولی در صورتی که این نیروها بیشتر از اینکه مجاب بشن مسیر قبلی رو ادامه بدن، ترغیب بشن شرکت رو به سمت مسیرهای جدیدتری سوق بدن. از طرف دیگه با توجه اینکه تبادل نیرو با سازمان‌های دیگه صورت نمی‌گیره عملا شرکت نسبت به اتفاق‌هایی که جریان داره ایزوله ‌می‌شه.

4-مسئله‌ی دیگه‌ای که پیش میاد با توجه به اتوماتیک نبودن بخش بسیار زیادی از فرآیند با تکنولوژی‌های قدیمی، متخصص شدن زمان نسبتا زیادی رو نسبت به تکنولوژی‌های به روزتر می‌بره در اینجا لازم می‌دونم تاکید کنم منظور من کلیه‌ی مفاهیم و ابزار‌های استفاده شده در چرخه‌ی عمر نرم‌افزار رو شامل میشه. چون برای کسی که قصد مهاجرت از این حوزه به یک زبان برنامه نویسی متداول‌تر رو داره یادگیری زبان جدید، کم‌ترین چالش محسوب میشه و اصولا چالش اصلی درک فرضا پنجاه سال تغییر و تحول در رویکرد به امر حل مسئله، توسعه، تست، استقرار و ... هست. با توجه به فاصله‌ی معناداری که بین دانش محیط فعلی و دنیای بیرون وجود داره اعتماد به نفس افراد درگیر رو به شدت کاهش می‌ده (به خصوص که معمولا اولین تجربه رو در این فیلد داشتن و زمان نسبتا قابل توجهی رو برای متخصص شدن صرف کردن) و فرد عملا با موقعیتی رو‌به‌رو ‌می‌شه که نمی‌تونه با حفظ جایگاه فعلی تغییر مسیر بده. نتیجه به این صورت خواهد بود که تعداد بسیار کمی از افراد ریسک تغییر رو می پذیرن. در تجربه‌ی 4-5 ساله‌ای که داشتم از 30-40 نفر back-end بیشتر از یکی دو مورد مشاهده نکردم با این که کم و بیش میل به تغییر رو می‌تونستم در برخی از همکارانم ببینم.

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

6- اجتماع افرادی که در این حوزه فعالیت دارن و با هم در ارتباط هستن با زبان‌های دیگه غیرقابل مقایسه است. در چنین شرایطی میزان زیادی از انرژی رو برای حل مسائلی که مطمئنا قبلا حل شدن ولی صرفا به اشتراک نگذاشته شدن هدر می‌دین و مسلما توی یک شبکه‌ی خیلی کوچک‌تر از افرادی که دانششون دست به دست میشه شانس کمتری برای به چالش کشیدن ایده‌های خودتون و یا دیگران رو دارین همین می‌تونه خیلی جاها موجب دلسردی بشه و از طرفی هم کار کردن در چنین حوزه‌ای می‌تونه حس نامرئی بودن بهتون بده.

حرف آخر اینکه اگر تصمیم گرفتین توسعه دهنده‌ی مینفریم شید هم باز سعی کنین در این بین، با استک‌های جدیدتر درگیر بمونین و در صورتی که در این حوزه مشغول به کار هستین و به هر دلیلی فکر می‌کنین الان در جایگاه مناسبی قرار دارین، حقوق مناسبی می‌گیرین و فعلا قصد رفتن از شرکت فعلی رو ندارین باز هم گزینه‌ی مهاجرت از تکنولوژی فعلی رو کامل از ذهنتون پاک نکنید.توصیه‌ی Jack Welch مدیرعامل سابق جنرال الکتریک به کارمندهای سازمانشون حق مطلب رو ادا می‌کنه: «love being here, but ready to go». آماده بودن برای حرفه‌ی جدید به معنای آموزش دائمی نیروی کارهست که به ارتقا سازمان منجر میشه و از طرفی هم سازمان شما رو در مسیری قرار می‌ده که تسهیلات و شرایط مناسب برای افراد متخصص فراهم کنه.

در پست بعدی درباره‌ی تجربه‌ی شخصی خودم در مورد مهاجرت به یک زبان جدید صحبت می‌کنم.