در کامنتهای پستی که چند وقت پیش به صورت مهمان از من در وبلاگ دوست خوبم امیر مهرانی منتشر شد، گفتگوهای بسیار جالبی در مورد وضعیت صنعت آیتی در ایران در گرفت. من آنجا به چند نکته در مورد صنعت نرمافزار ایران اشاره کردم که بعد از دیدن این خبر عجیب به نظرم رسید شاید بد نباشد در قالب یک پست مستقل درباره آنها بنویسم. خبر کوتاه و جالب است: قرار است استفاده از نرمافزارهای تولید خارج در دستگاههای دولتی ممنوع شود!
شاید بدیهیترین و خندهدارترین اشکال این تصمیم طبق معمول “کارشناسی!” این باشد که در صورت اجرای آن، احتمالا از این به بعد باید استفاده از هر گونه نرمافزار تولید بلاد کفر از ویندوز و آفیس مایکروسافت گرفته تا نرمافزارهای تخصصی مثل اتوکد ممنوع شود! (خوب یک دفعه قانون کپیرایت را هم قبول کنید دیگه! شما که نمیخواهید از نرمافزارهای “آنها” استفاده کنید!)
اما بیایید فرض را بر این بگذاریم که منظور استاد، نرمافزارهای سازمانی و شرکتی بوده است. خوب بازار نرمافزار ما در این حوزه چگونه است و چه ظرفیتها و توانمندیهایی داریم؟ ابتدا به چند نمونه زیر توجه کنید:
الف ـ ۴-۵ سالی است که طرحهای جامع فناوری اطلاعات و معماری سازمانی در ایران مد شده. اما بهعنوان کسی که ۴ سال است دارم در این حوزه فعالیت میکنم به جرأت میگویم هیچ وقت خروجیهای این پروژهها به درد کارفرما نخورده است! چرا؟ به دو دلیل: ۱- مشاورین ما از وضعیت واقعی و توان موجود در بازار فناوری اطلاعات خبر نداشتهاند و راهحلهایشان فاصله زیاد با تکنولوژی موجود در دسترس داشته است.۲- فعالان بخش نرمافزار ایران به تولید نرمافزار براساس نیازهای مشتری اهمیتی نمیدهند!
ب ـ ۴ سال است که قرار است نرمافزار جامع سازمان مالیاتی از شرکت بول فرانسه خریداری شود. اتحادیه تولیدکنندگان نرمافزار با دستور مستقیم رئیسجمهور جلوی این کار را گرفتند. اما اگر از شرایط عجیب و غریب مناقصهای که توسط سازمان مالیاتی برگزار شد بگذریم، حقیقتا اگر این حضرات میتوانستند این کار را انجام دهند، تا الان ازشان خبری میشد. لازم نبود که نرمافزاری در حد بول تولید کنند؛ اگر میتوانستند لااقل باید یک پروتوتایپ از نرمافزار جامع مالیاتی کشور درست میکردند! (فکر میکنم هفته پیش بود که خبر نهایی شدن قرارداد سازمان مالیاتی با شرکت بول منتشر شد.)
ج ـ همین اواخر شرکت ما در طرح پیادهسازی سیستمهای BPMS در سازمانی ناظر بود. پیمانکار محترم که یک شرکت معروف نرمافزاری است بدون شناخت از فرایندهای موجود سازمان، میخواست سیستماش را بدون هیچ تغییری در سازمان پیاده کند و انتظار هم داشتند سازمان قبول کند که کارشان درست است! حالا اینکه BPMS اصلا ابزاری است که به جای سیستمهای غیرمنعطفی مثل ERP آمده و قرار است سازمان با استفاده از آن بتواند هر فرایند دانش ـ محور را به صورت الکترونیکی مدلسازی و اجرا کند هم لابد مهم نیست!
د ـ شرکتی را دیدم که مدعی ارایه سیستم مدیریت دانش به سازمان بود؛ اما اصلا نمیدانست که سیستمهای نرمافزاری مدیریت دانش هدفشان و کاربردشان چیست و سیستم مدیریت دانششان هر چیزی بود الا مدیریت دانش! (در واقع یک سیستم ساده گردش مستندات را داشتند به کارفرماهای بدبختشان قالب میکردند!)
از این مثالها تا بخواهید در بازار نرمافزار ایران پیدا می شود. در عمل ما دهها شرکت نرمافزاری داریم که تمام تمرکزشان بر تولید نرمافزارهای اداری، دفتری و حسابداری است. دهها شرکت دیگر داریم که دارند مثلا پورتال و نرمافزارهای سازمانی تولید میکنند و میفروشند. اما از همین بین هم اگر بررسی دقیقی کنید، میبینید چیزی بین ۶۰ تا ۷۰ درصدشان نرمافزارهای اوپن سورسی هستند که صرفا فارسیسازی شدهاند (و متأسفانه اغلبشان هم اینقدر صداقت ندارند که به این موضوع اعتراف کنند و مدعی تولید یک نرمافزار از ابتدا هستند.)
فاجعه اینجا است که شرکتهای ایرانی تمرکزشان را بر روی تولید پکیجهای نرمافزاری گذاشتهاند و میخواهند هر قفلی را با یک کلید ـ نرمافزارشان ـ باز کنند. سفارشیسازی با متناسب با نیازهای سازمان و اینها را باور نکنید! تا جایی که من دیدهام بسیاری از این شرکتها علیرغم داشتن عناوین پرطمطراق تحلیلگر سیستم و … از تهیه یک مستند ساده براساس اصول مهندسی نرمافزار عاجزند (کافی است به سازمانهای متعددی دولتی و حتی غیردولتی که با هزینههای کلان، نرمافزاری را به صورت سفارشی یا پکیج خریداری کردهاند مراجعه کنید تا این موضوع را در عمل مشاهده کنید. در بسیاری از موارد شرکت فروشنده که ممکن است شرکتی معروف یا ناشناخته باشد حتی یک راهنمای کاربری ساده هم برای سیستماش در اختیار کارفرمای بنده خدا نگذاشته است؛ چه برسد به مستندات تحلیل و طراحی سیستم که بهویژه در مورد نرمافزارهای سفارشی باید حتما به کارفرما تحویل داده شوند.) اینجا هم درست همان آفت تضمین کیفیت و ایزو خودنمایی میکند: وجود تحلیلگر و استفاده از متدولوژیها برای این است که اگر کسی مدعی شد، یک کتابچه قطور مستندات تحلیل و طراحی را به او نشان بدهیم! یعنی صرف وجود مستندات کفایت میکند و کاربرد عملی آنها مهم نیست!
حالا بگذریم از اینکه هیچ شرکتی در ایران به تولید نرمافزاری غیر از نرمافزارهای حسابداری و دفتری و انواع و اقسام پکیجهای به درد نخور اصلا فکر نمیکند!
برگردیم به سراغ خبر. متن خبر به شکلی است که به نظر میرسد ممنوعیت شامل هر گونه نرمافزاری که کدنویسیاش در خارج از کشور انجام شده میشود. بنابراین نرمافزارهای اوپنسورس فارسی شده هم از این به بعد ممنوع هستند! اگر از اینکه من نمیدانم MIS تولید شده در خارج از کشور یعنی چه و اینکه اساسا وزارت صنایع و معادن چرا در حوزه نرمافزار دخالت میکند هم بگذریم؛ چند نکته به نظر من باید در این ماجرا مورد توجه قرار گیرد:
۱٫ بدنه کارشناسی صنعت نرمافزار آدمهای ضعیفی نیستند و ما کدنویسهای بسیار خوبی داریم. اما اشکال کار در این است که اولا: فرایند مهندسی نرمافزار در کشور ما خیلی جدی گرفته نمیشود و ثانیا: همه فعالان این صنعت، در حال کپی پیست کردن ایدههای نخنما و تکراری دیگران هستند (آخر ما چند نرمافزار حسابداری و اتوماسیون میخواهیم؟ چرا کسی روی نوشتن یک واژهپرداز فارسی خوب مثل زرنگار سرمایهگذاری نمیکند؟)
۲٫ اصولا ارتباط خوبی میان مشاوران مدیریت آیتی و شرکتهای کدنویس ما وجود ندارد. در واقع اینجا باز میخواهم بر نکتهای که در مورد کیس اینفوسیس برای من جالب بود تأکید کنم: اینفوسیس نیاز کارفرما را از شناخت و تحلیل مسئله تا ارایه Solution نرمافزاری پوشش میدهد. ما چنین شرکتی در ایران نداریم. این مشکل را در مثال طرحهای جامع فناوری اطلاعات که بالا زدم میبینیم: RFPهای ما مشاوران آیتی، برای یک شرکت کدنویس اجرایی نیست و از سوی دیگر، خود شرکتهای کدنویس هم تمایلی به نوشتن نرمافزار براساس سفارش مشتری ندارند. حالا ممکن است گفته شود که شرکتهای بزرگ غربی ـ مثل SAP و اوراکل ـ هم همینجوری هستند؛ اما انصافا آیا راهحلهای ارایه شده توسط شرکتهای نرمافزاری ایرانی بلوغ محصولات این شرکتهای معظم را دارند؟ فرق است بین راهحلی که در هزاران شرکت سراسر دنیا طراحی و آزمایش شده و بهبود یافته و برای دهها شکل مختلف کسب و کار، فرایندها و گردش اطلاعاتی استاندارد را شناسایی و در راه حل خود منظور کرده است با راهحلهایی که اغلب براساس مطالعه چند کتاب مثلا حسابداری یا منابع انسانی یا حداکثر مطالعه چند شرکت محدود یا بهرهگیری از نظرات چند مشاور تهیه شدهاند. اصلا حتی اگر انعطافپذیری اولی را هم در نظر نگیریم، شرکتهای داخلی اصرار دارند که راهحلهای خود را به زور به خورد کارفرمای بدبخت بدهند و انتظار دارند کارفرما خودش را با محصول آنها وفق بدهد و نه برعکس! (این مشکل سر دراز دارد: چند وقت پیش اعلام شد که قرار است برای BPMS توسط دولت! استاندارد تهیه شود. حالا براساس کدام تجربه و دانش میخواهند این کار را انجام بدهند، خودشان میدانند!)
۳٫ و چند علامت سؤال بزرگ در این زمینه: چرا تفکر “اختراع دوباره چرخ” اینقدر در ذهن مسئولین دولتی ما وجود دارد؟ چرا باید بودجه و زمان محدودمان را صرف ساختن دوباره نرمافزارهایی کنیم که بقیه ساختهاند؟ (راستی سیستم عامل ملی به کجا رسید؟) بحث مزیت نسبی کشور چطور؟ ما در تولید چه نرمافزارهایی توانمند هستیم و سراغ کدام حوزهها نباید برویم؟ آیا کسانی که این تصمیم را گرفتهاند، قابلیت پنهان و عجیب و غریبی در صنعت نرمافزار ایران کشف کردهاند که ما خبر نداریم؟ و چندین سؤال بیجواب دیگر!
از آنجایی که زور ما به دولت نمیرسد و بنده هم اساس کدنویس نیستم، فکر میکنم فعلا بهتر است به همان ایده اینفوسیس بچسبم و برای کاهش شکاف بین کار مشاوران آیتی و مهندسان آیتی تلاش کنم. اگر توهم نزده باشم، این یکی از دستم بر میآید!
زرگر جان از توضیحات شما متشکرم. من اصلا قصد توهین به بچههای نرمافزار یا اظهارنظر غیرکارشناسی نداشتم. کاملا از دید بیزینسی مسئله را تحلیل کردم؛ در حالی که جواب شما فنیه. هیچ جای نوشته من راجع به کیفیت آدمها یا کیفیت نرمافزارها چیزی نمیتونی پیدا کنی. من حرفم روشن هست:
۱٫صنعت نرمافزار ایران در حوزه نرمافزارهای سازمانی (که خودت استادی میدونی منظورم چی) راه اشتباهی را داره میره. اگر من گفتم چرا شونصد تا نرمافزار حسابداری داریم؛ منظورم این نبود که چرا همه دارند نرمافزار حسابداری تولید میکنند. منظورم این بود که حالا که همه دارند این کار را میکنند محض رضای خدا لااقل بیان یک خلاقیتی توی این نرمافزارها به خرج بدهند. برو چهار تا مجله مدیریتی را ورق بزن؛ آگهی نرمافزارهای مختلف حسابداری، انبارداری یا مالی را ببین. خداوکیلی اگر فرقی بین اینها از دید یک مدیر پیدا کردی حرفت را قبول میکنم.
۲٫ آمار ۶۰ تا ۷۰ درصدی باز هم در مورد نرمافزارهای سازمانیه. برو یک ERP پیدا کن که طرف خودش نوشته باشه. اگر مستقیما هم کپی پیست نکرده باشه، مطمئن باش یک جاهاییاش کپی پیسته. بالاخره درسته رشته بنده کامپیوتر نیست؛ ولی این چیزها فهمیدناش اصلا مشکل نیست.
۳٫ جایی که من از پروتوتایپ اسم بردم کمی مسامحه در حرفم وجود داشته. قبول دارم. ولی بهتره وقتی از ماجرای نرمافزار جامع مالیاتی خبر نداری دیگران را به بیاطلاعی متهم نکنی. این حضرات قرار شده بوده که به جای شرکت بول نرمافزار را به صورت کنسرسیوم تولید کنند؛ ولی حتی از ساختن یک نمونه خیلی خیلی کوچکاش هم عاجز بودند.
۴٫ اشکال همه ما اینه که مسئلهها را از زاویه دید حوزه تخصصی خودمان تحلیل میکنیم. بنده هیچ ادعایی در زمینه مهندسی نرمافزار و یا مشاور آیتی بودن ندارم. ادعای صاحبنظری هم ندارم. فقط نظرم را گفتم. شما دوستان نرمافزاری هم باید قبول کنید که ضعفهای زیادی دارید و دولت و مشتری و در و تخته بخشی از مشکل هستند.
۵٫ باز هم تشکر از نظر شما و تأکید مجدد بر نظر خودم (این یک بار را اجازه بده “سلطون” بازی دربیارم!!!)
سلام شهاب، به نظر من برخی از برداشتهای که داری اشتباهه و این بخاطر اینه که توی تیمهای نرمافزاری نبودی و اساسا نمیدونی اونجا چه خبره و البته توی تیمهای ای تی هم نبودی و در واقع حاسب سیستم تابحال تیم آی تی قوی نداشته که ببینی افراد آی تی قوی چه جوری فکر میکتند.
تا جایی که حال دارم برخی نکات رو بیان میکنم
در مورد الف) با این موافقم که خروجیهای معماری سازمانی بهدرد نخورده اما علتش این نیست که گفتی بلکه علت واقعی اش اینه که افرادی که مجریان این طرحها اصولا کار رو بلد نبودند و نمیدونستند باید چه چیزی بدند، راه دور نریم به شرکت حاسب نگاه کن چند تا متخصص آی تی میبینی؟ چند تا متخصص نرمافزار میبینی؟ شناخت نیازهای بازار کاری سختی نیست و اغلب میدونیم مشتری دنبال چیه، ما از راهحلهای روز هم استفاده میکنیم، اما مشکل کلیدی اینه که وقتی ما متخصص نیستیم نمیتونیم کتی متناسب با سازمان بدوزیم. در اغلب پروژه ها از روش کپی و پیست استفاده شده و نه تولید و توسعه گزارش. در مورد فعالان بخش نرمافزار من میگم اتفاقا دقیقا برعکس ما به نیازهای مشتری بسیار هم اهمیت میدیم و توی محصولاتمون در نظر میگیریم اما واقعا برای شرکتهای نرمافزاری صرف نمیکنه که سفارشی سازی بالایی داشته باشند و گرنه اگه مشتری پول به اندازه کافی برای توسعه نرمافزار از ابتدا بده، براش سفارشی میسازیم مثل ماشین عروس 🙂
ب) این موضوع که مطرح کردی کاملا نشون میده که از دنیای توسعه نرمافزار کمتر خبر داری و بیشتر داری از بیرون اونو نگاه میکنی، توسعه پروتوتایپ شاید بیش از ۵۰ درصد توسعه یک نرمافزار کار میبره. یعنی باید فازهای شناخت و طراحی انجام بشه تا شما بتونید به پروتوتایپ برسی و نمیشه نرمافزار یک هفتهای و یا یک ماهه یک پروتوتایپ برسی. هر چند منکر این نیستم که این افراد این کاره نیستند
ج) جمله آخر برام مفهوم نیست
این آمار ۶۰ تا ۷۰ درصد نرمافزار اوپن سورس هستند که فارسی شدهاند از کجا اومده؟ شاید بشه در مورد پورتالها این طور حرف زد، اما نمیشه در مورد همه نرمافزارها صحبت کرد، این به نظر من یک توهینه به بچههایی نرمافزاری و اونهایی که واقعا نرمافزار تولید میکنند و کد مینویسند و از تو بعید به نظر میرسه چنین حرفی بزنی. ممکنه طرف از کامپوننتهای آماده استفاده کنه، اما واقعا نرمافزار مینویسه، شاید تو با اونها برخورد نکردی، با افرادی که ۱۵ ساعت یا بیشتر فقط توی یک محیط برنامهنویسی هستند و برنامه مینویسند. بسیاری از نرمافزارها طراحی و پیادهسازی میشند، میشه شرکتهای بزرگ نرمافزاری رو مثال زد که کم هم نیستند و واقعا دارند کد مینویسند و نرمافزار تولید میکنند، نرمافزار رو پشتیبانی میکنند، بروز رسانی میکنند
این که شما راجع به یک فاجعه در مورد پکیجسازی صحبت میکنی بخاطر اینکه اصول مهندسی نرمافزار رو نمیدونی، در واقع component-based development بهعنوان یکی از روشهای توسعه نرمافزار مطرحه که بعد از شیگرایی پا به عرصه متدولوژیهای توسعه نرمافزار گذاشته و توسعهدهندگان رو ترغیب به توسعه پکیجهای با استفاده مجدد بالا میکنه، اگه سازمان پول سفارشیسازی رو بده، مطمئن باش براش سفارشیسازی میشه، اما اغلب سازمانها این کار رو نمیکنند و میخوان نرمافزاری که میخرن همه کار رو براشون انجام بده
کار تحلیلگر سیستم تولید محتویات و مستندات نیست، چیزی که تحلیلگر تولید میکنه بهدرد مشتری نمیخوره و فقط بدرد تیم داخلی میخوره، علت اینکه مستندات تولید نمیشه نه بخاطر ضعف تیم هاست و اینکه ما ایزو نمیدونیم یا تضمین کیفیت نداریم، که البته ایزو هم بدرد ما نمیخوره چون تیمها طبق متدولوژی مستند تولید میکنند، بلکه بیشتر به خاطر اینه که به شرکتهای نرمافزاری ثابت شده که در دنیای نرمافزار ایران باید مشتری وابسته بهت باشه و اگه وابسته نباشه پول نگهداشت رو بهت نمیده، برای همین هیچ مستندی تولید نمیشه و بهش داده نمیشه تا مشتری همش زنگ بزنه و بپرسه
چه کسی گفته شرکتهای ایرانی فقط به نرمافزارهای حسابداری و پکیجهای بهدرد نخور فکر میکنند؟ چه آماری به شما نشون داده که نرمافزارها بدرد نخور هستند؟ چقدر شما از فعالیت شرکتهای نرمافزاری مطلع هستید؟ تعداد زیادی شرکت نرمافزار وجود دارند که در حوزه تخصصی فعالیت میکنند و شما اسمی از اونها نشنیدید که حتی برخی از اونها با نمونه های خارجی رقابت میکنند و حرف برای گفتن دارند
در مورد ۱) من خیلی دوست دارم بدونم کسی که میگه فرایند مهندسی نرمافزار در کشور ما خیلی جدی گرفته نمی شه، توی چندتا پروژه نرمافزار بوده و اساسا منظورش از فرایند مهندسی نرمافزار چیه؟ آیا منظور متدولوژی توسعه نرمافزاره یا چیز دیگهای مد نظره؟ کپی و پیست ایده یعنی چه؟ هر کسی یک جوری نرمافزار مینویسه و بودن هزاران نوع نرمافزار حسابداری به معنی یکی بودن همه اونها نیست همانطور که وقتی در حوزه ارزیابی معماری سازمانی پایاننامه تعریف میشه، لزوما همه مشابهت ندارند. این نشون میده که ذائقه مشتریان به این سمت و بازار مقصد وجود داره و همین درخواست مشتریانه که سبب میشه ما به سمت تولید نرمافزار شبیه ساز پرواز نریم.
در مورد ۲) بله قبول دارم، مطمئنا که وقتی یک سری مهندس غیر فناوری اطلاعات یا نرمافزار کنار هم میشینند و ادعای خدا بودن توی حوزه فناوری اطلاعات بکنند RFP های بهتری نخواهیم داشت. شما RFP های اجرایی بده، ببین افراد مینویسند یا نمینویسند، تابحال چند تا RFP اجرایی داده شده که ملت نتونستند براش نرمافزار بنویسند؟ مسلما اغلب شرکتهای نرمافزاری بلوغ شرکتهای خارجی بزرگ رو ندارند و نمیشه یک شبه و یک ساله و بدون برنامهریزی کلان و مناسب این موضوع رو حل کرد
به نظر من از همین جاست که کشور ما بی قانون شده و هر کسی جای کس دیگهایه. مشاور ای تی باید خصوصیات، پشتوانهها و دانش خاص خودش رو داشته باشه و در واقع چه لزومی داره که ما خودمون رو چیزی بنامیم که نیستیم. اینکه شما در یک شرکت مشاوره که در حوزه ای تی هم کار میکنه هستی، دلیل نمیشه شما مشاور ای تی باشی 🙂
درسته شرکتهای نرمافزار ما اونقدر توانمند نیستند اما این علت رو نباید درون شرکتها جستجو کنید و اون ها رو ناتوان بنامید. همانطور که بسیاری از شرکتها در حوزههای مختلف فناوری کشور هم دارای مشکل هستند و البته اغلب مشکلات از درون شرکتها نیست و به بحث دولت و کلان مربوط میشه
به نظر من این پست حاوی نظرات غیردقیق و بدون پشتوانه است و به دور از شان کسیه که میخواد بعدا ادعای صاحب نظری بکنه 🙂