در این مقاله سعی میکنیم چالش های متعددی که صاحبان کسب و کار و برنامه نویسان دارند رو بررسی کنیم ،مواردی که بر حسب تجربه کاری در بیست و پنج سال کار طراحی نرم افزار با شرکت ها و صاحبان کسب و کار داشتم رو مروری بکنیم ،جالبه بدونید که مشکلات فقط مختص ما در ایران نیست و با دوستان متعددی که در کشورهای پیشرفته کار میکنند صحبت داشتیم و اونها هم با این مشکلات روبرو شدن البته قطعا در ایران این مشکلات شدیدتره است چون صنعت برنامه نویسی خیلی نظام مند مثل نظام پزشکی یا حتی نظام مهندسی ساختمان نیست البته این دلیل موجهی هم داره پویایی در صنعت نرم افزار و IT اصلا قابل مقایسه با سایر صنعت ها نیست در بیست وپنج سال پیش سیستم عامل داس و فاکس پرو ابزار برنامه نویسی برنامه نویسان بود که سالهاست منسوخ شدن ومثلا در حال حاضر دیتاساینس پایتون خودش یه تخصص جداست،یعنی تا دولت ها بخوان در این خصوص تصمیمی بگیرن کلا ساختار تغییر کرده در همه جای دنیا هم همین مشکلات هست مثلا با وجود اینکه هوش مصنوعی داره رشد میکنه و هشدارهایی برای این موضوع ایجاد شده هنوز سازوکاری در کشورهای پیشرفته ایجاد نشده است در کشور ما اول تاکسی های اینترنتی شروع به کار کردند بعد قوانین براشون وضع شد و بعد اتحادیه کسب وکارهای مجازی شکل گرفت، هیچ صنعتی حتی به اندازه ده درصد صنعت IT در ربع قرن این چنین پیشرفتی نداشته البته از حق نگذریم این عدم نظام مندی دولت ها باعث پیشرفتهایی هم شده اما مشکلاتی رو هم ایجاد کرده که 4 مورد عمده رو در اینجا لیست و به آن میپردازیم.
عدم استاندار کد نویسی و استفاده از ابزارها
در شرکتی 5 سال پیش برنامه نویسی رو استخدام کردن پروژه ای رو انجام داده ، سورس نرم افزار هم در دسترس شرکت هست حالا میخواییم ایرادات این پروژه رو رفع کنیم یا قسمتی رو به اون اضافه کنیم،برنامه نویس جدید نمیتونه دست خط برنامه نویس قبلی رو بخونه ،داکیومنتی وجود ندارد، برنامه نویس قبلی کدنویسی اصطلاحا کثیفی داشته که اگر یه جا رو تغییر بدید ده ها جای دیگه به مشکل میخوره در جداول دیتابیس اسم ها نامفهوم هستن ،زیر برنامه ها بشدت شلوغ قسمتی از برنامه با یه شیوه جلو رفته و دقیقا قسمتی دیگه با شیوه دیگه،چقدر وقت و هزینه برای فهم پروژه و پشتیبانی این سیستم باید هزینه بشه ،گاها بوده که طراحی مجدد سیستم پیشنهاد شده بجای تغییرات در سورس کد قبلی،یعنی طراحی سیستم جدید از ایجاد اصلاح وتغییر در کد جدید به صرفه تر و مطمئن تر است.
عدم همکاری گروهی
متاسفانه روحیه کار گروهی در بین برنامه نویسان معمولا کم هست و این مختص ایران هم نیست ،دوست دارن مستقل باشن و کد خودشون رو قبول دارن البته به همون دلیلی هست که در ابتدای مقاله گفته شد آموزش های لازم در حوزه کار گروهی ،ابزارهای کار گروهی در درس های دانشگاهی و آکادمیک نیست و آموزش داده نمیشه،اینقدرکه به الگوریتم و ابزارهای برنامه نویسی پرداخته شده به این جنبه اصلا توجهی نشده است،در دنیای جدید پروژه های سنگین شده نیازمند تقسیم شدن هستند بکند،فرانت اند،طراح،گرافیست در پروژه های بزرگ هرکدام از اینها هم تیم هستند و هماهنگی و مدیریت اینها خود نیازمند دانش مدیریتی و کار تیمی است.
عدم آینده نگری
اینکه شما پروژه ای رو شروع میکنید باید یه برآورد حداقل 10 ساله داشته باشید که آیا در 10 سال آینده توسعه این نرم افزار به مشکل نمیخوره ،گاها بوده در شرکتی پروژه ای با دلفی یا دات نت طراحی شده به دلیل استفاده از کامپونت ها یا ناگت های خیلی زیاد الان برای حتی اجرای پروژه هم مشکل میخورن و مجبور شدن از سیستم برنامه نویسی Image داشته باشن ،چون نصب مثلا دلفی با کامپونت های اون خودش داستانی داره ،امکان ارتقا دلفی 5 (سال 2000 زمان ویندوز 98 )به دلفی XE )سال 2019زمان ویندوز 10 )اصلا به راحتی مقدور نیست چون ده ها کامپونت استفاده شده که الان مسنوخ شدن و وجود ندارند،توصیه میشه اصلاحات نرم در هر بازه مثلا 5 سال صورت بگیره ، هر 5 سال بانک اطلاعاتی ها ورژن ابزارهای برنامه نویسی آپدیت بشن تا هزینه تغییرات ناگهانی کاهش پیداکنه.
دانش گسترده اما کم عمق
این مورد در ایران بسیار بیشتر از بقیه دنیاست من اسمش رو گذاشتم اقیانوس یک وجبی!،”اقیانوسی با عمق یک وجب”،برنامه نویس در کشو ما سیستم سخت افزاری میبنده،شبکه رو بلده ، سایت رو میدونه چطور در ویندوز سرور بارگذاری و کانفیگ کنه،فتوشاپ هم برای طراحی استفاده میکنه،شاید مثل من سیسکو و میکروتیک هم بلد باشه،پایگاه داده هم میدونه اما هیچ کدوم از اینها عمیق نیست ،اینکه در خیلی از مصاحبه های شغلی مخصوصا در مصاحبه های شرکت های خارجی ریجکت میشید همین عمیق نبودن در یک تخصص ست،اینکه از هر چیزی کمی بدونید شاید خوب به نظر برسه اما این عمیق نبودن سازمانی که باهاش کار میکنید را ممکنه دچار مشکل کنه،ممکنه راهکاری بدید تحلیلی بکنید که در آینده کلی هزینه و مشکل برای اون سازمان ایجاد کنه،در واقع در عصر جدید IT شما باید یه مثل یه چاه عمیق باشید تا یک اقیانوس با عمق یک وجب.