مقدم بودن شناخت و تحلیل

پ ن : ابزارها نمی توانند بی سوادی ما را در عدم شناخت مسله پوشش دهند

نمیشود بدون شناخت دقیق یک مسله و یا تحلیل آن سریع دست به اقدام زد. نمیدانم شما در چه رشته ای تحصیل کرده اید ولی در رشته ی مهندسی نرم افزار درسی داریم تحت عنوان مهندسی نرم افزار که یک درس ۳ واحدی است (الان نمیدونم باشه یا نه) . توی این درس یاد می گیریم قبل از اینکه دست به طراحی نرم افزار برای یک مجموعه یا سازمان کوچک یا بزرگ بزنیم مشکل و مساله آنجا را بفهمیم بعد یاد میگیریم که یک سری سوالات استاندارد را از کارمندان و مدیران اونجا بپرسیم مثل اینکه چرا به نرم افزار نیاز دارید و الان چه مشکلاتی دارید و فرآیند و چارت سازمان شما چگونه است. بعد از مصاحبه سراغ سناریو می رویم و بعد تحلیل سیستم که اگر به روش RUP و با متدولوژی شی گرا بخواهیم آن را تحلیل کنیم باید از ابزارهایی مثل Rational Rose و … استفاده کنیم و تحلیل های قدیمی یا ساخت یافته هم بر اساس DFD بود. میشه این تحلیل ها ر ا هم به شکل Data Model تحلیل کرد یعنی ما کاری به شی و Use Case ها نداشته باشیم و با نمودار ER سعی کنیم موجودیت های سازمان را یافته و بر اون اساس سیستم را تحلیل کنیم که واقعا اگر بخواهیم یک تحلیل درست و حسابی انجام دهیم باید خیلی وقت بگذاریم ولی خوبی این کار اینه که بعدا اگر روالی در سیستم عوض شد ما قبل از دستکاری کدنویسی تحلیلمان را در مرتبه بالاتر عوض میکنیم و این تغییرات را از بالا به پایین اعمال میکنیم.

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

قصدم این نیست که در مورد تحلیل نرم افزار صحبت کنم این فقط یک مثال معمولی بود ولی وقتی یک دانش آموخته نرم افزار بعد از تعریف مساله توسط مشتری سریع دست به کد میشه و سی شارپ  و SQL رو باز میکنه  حالم خراب میشه شبیه مهندسی که بدون نقشه و تحلیل و اندازه گیری سریع با کارگرها راه بیفته و فنداسیون بزنه و بتن ریزی کنه سوال اینه که چرا تو مهندسی عمران این کار غیر قابل تصوره ولی در مهندسی نرم افزار بارها این اتفاق می افته؟

میخواستم چیز دیگری بنویسم.

میخواستم بگم اگر ما میخواهیم مثلا حسابداری یاد بگیریم سریع توی نرم افزارها و ابزارهای حسابداری شیرجه نزنیم و اصول حسابداری را بخوانیم و با دفاتر مالی آشنا بشیم و در آخر مشغول نصب فلان نرم افزار مالی و حسابداری شویم.

اگر میخواهیم BI یاد بگیریم سریع توی Power BI و EXCEL شیرجه نزنیم و بریم مفهوم هوش تجاری و یا Data Warehouse و . .را بفهمیم و اصلا بفهمیم که شاخصهای مهم یک کسب و کار یا همون KPI چیه و اصلا چی رو باید اندازه بگیریم؟ و چی رو اندازه نگیریم؟ نمیشود یک متر دستمان بگیریم و همه چی رو اندازه بگیریم .

اگر میخواهیم طراح گرافیک خوبی بشویم اصول تبلیغات و یا روانشناسی رنگ ها و ترکیب رنگها را بخوانیم بعد فتوشاپ رو نصب کنیم

این رو دوباره بگم که ابزارها بیسوادی ما رو پوشش نمیده واگر بدون شناخت و بدون مطالعه ی اولیه سریع رفتیم سراغ نصب ابزارهای مختلف یه جایی این بیسوادی ما میزنه بیرون و آبرومون میره.

اینجا دو ایراد از من میشه گرفت اول اینکه من عملگرا نیستیم و سریع نمیخوام وارد عمل بشم و ایراد دوم اینه که وقتمون تلف میشه! که این اشتباهه اگر ما در هر کاری تحلیل درست و خوبی داشته باشیم در بلند مدت توی وقتمون صرفه جویی میشه و چیزی نمیسازیم که بعدا خودمون ازش سر درنیاریم. به قول اون ضرب المثل صدبار گز کن یک بار ببر . نه اینکه با آزمایش و خطا ۱۰۰ بار یه پارچه ای رو برش بدی. این وقتمون تلف میشه جمله ی باحالیه شما رزومه افراد حرفه ای صاحب سبک را نگاه کنید ۱۵ سال برنامه نویس فلان سیستم ۲۰ سال طراح گرافیکی ۲۱ سال سابقه ی فلان . اونوقت ما با دو سال و سه سال سابقه میگیم وقتمون تلف میشه و سریع میخواهیم به بقیه برسیم.

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