مطالب زیادی را در وبلاگها و حتی در سطح جامعه در مورد کارشناسان فنی سازمانها گفته می شود . اگر چه برخی از این مطالب صحیح است . اما آنچه این وسط هست ظلمی است که بر بعضیها می شود که می خواهند کار خود را بر اساس تعهد و مسولیت انجام دهند . وقتی در بدنه سازمانی ُ افرادی مرتکب خطایی می شوند مسلما صدای دیگران شنیده نخواهد شد . نوشته حاضر نقد و جوابی بر نوشته نویسندگان عزیز آقای آواژ در کارمندان دولت چطور رفتار میکنند و آقای واحد در مجازات قبل از وقوع جرم و آقای یزدانی نژاد در پرسنلی که خیانت میکنند . خواندن این مطالب را به همه توصیه می کننم . و اما بعد
با توجه به تجربه بنده در بخش دولتی و خصوصی و قرار گرفتن بنده در موقعیتهایی شبیه به کارشناس فنی و غیره لازم است کمی توضیح دهم
اگر چه فرمایشات دوستان صحیح است لیکن در بعضی جاها یکطرفه نوشته شده است . یعنی ما همه متهم هستیم . هر چند قبول دارم که متاسفانه در بخش دولتی و به طور واضحتر در بخشهای سازمانی این مشکلات هست . بنده معتقدم که این مشکلات از مهمترین مشکلات سازمانهای ایرانی است چرا که اگر چه در ظاهر بخش خصوصی داریم اما همین بخشهای خصوصی هم در بدنه کارشناسی خود چنین مشکلاتی را دارن . پس فقط مختص کارمندان دولتی نیست .
مشکل در کجاست .
دوستان از دیدگاه فروشنده و هر تعبیر دیگر گله های خود را مطرح کرده اند . من اینجا می خواهم از دیدگاه کارشناسی (شاید این تعبیر به مذاق دوستان خوش نیاید ) بررسی می کنم . بنده قبول دارم که در بخشهای سازمانی اعم از دولتی و خصوصی این مشکلات هست . مانند بی سوادی کارشناس ، تنبلی کارشناس ، مقاومت در برابر تغییر بدلیل ترس از دست دادن موقعیت شغلی ، بروز نبودن ، تکنولوژیهای قدیمی و ... اما شخصا مشکلی که با آن برخورد کرده ام . 2 چیز است یکی تعهد و دیگری مسولیت است
1-تعهد : کلمه ای پرمحتوا که از دهان همه شنیده می شود اما در عمل کمتر کسی به آن عمل می کند . تعهد را باید از دیگاه دو طرف کارفرما و فروشنده بررسی کرد . از دیدگاه کارفرما معمولا در قالب پشتیبانی خلاصه می شود، متاسفانه برخی شرکتهای نرم افزاری نه همه ، تصور می کنند که کارشان فقط فروش نرم افزار است و پشتیبانی فقط باید پولش را پرداخت کرد آن هم با کمترین خدمات هر چند که این مشکل ریشه های مفصلی دارد اعم از فرهنگی و غیره . اما در این گیر و دار و دعوا هر دو طرف دعوا ،حرفهایی شنیدنی برای گفتن دارن هم شرکتهای نرم افزاری و هم مشتریان آنها . در جهت مقابل شرکتهایی را دیده ام که حتی در صورت نداشتن قرارداد پشتیبانی و پرداخت پول باز هم برای حفظ اعتبار خودشان و شاید هم در برخی مواقع تعهد ، حاضر به ارایه خدمات پشتیبانی هستند . اما مقصود کلام من کجاست . چیزی که برای من دغدغه است و با آن مواجه شدم شرکتی با دریافت مبالغ هنگفتی از سازمان بابت پشتیبانی ، اما خدا را شاهد می گیرم که بعد از گذشت سالها همچنان باگهای نرم افزار را برطرف نکرده بود و به نوعی فقط موقتی اشکالات را برطرف می کرد . خوب این بی تعهدی متاسفانه باعث دید بدی می شود.
2-مسولیت : در سازمانهای بزرگ ایرانی اعم از خصوصی و دولتی ، معضلی به نام تغییر اتوبوسی مدیران وجود دارد . این تغییرات قدرت ریسک را از کارمندان می گیرد . یه جو و سو تفاهم بدی وجود دارد که اگر مدیری بخواهد نرم افزاری را سفارش دهد بدنه مجموعه تصور می کنند که آن فرد از این نرم افزار سودی می برد . لذا سعی می کنند مقاومت کنند . علاوه بر آن بر فرض موافقت و تایید عمل در صورتی که نیمه راه مدیریت عوض شود . مدیر جدید مسلما کارهای قبلی را قبول ندارد و اگر هر گونه ایرادی داشته مسولیت را بر عهده پرسنل می گذارد . لذا پرسنل در این حالت برای خلاص شدن از دردسر سعی می کند در مقابل تغییر مقاومت کند .همچنین مساله دیگر مسولیت آموزش و فهماندن دیگر پرسنل سازمان بر عهده واحد فنی است ، علاوه بر آن همیشه با این مشکل مواجه بوده ام که در صورت عدم جوابگویی شرکت نرم افزاری ، همه تقصیرات بر گردن کارشناس فنی خواهد بود لذا این کارشناس بر اساس ترس و دغدغه ای که دارد مسلما سعی در رد تغییر می کند.البته این حالت یک حالت نرمال است و من کاری با حالتهای فساد اداری و باند بازی ندارم . اما برخی از پرسنل بهره بردار متاسفانه در اکثر سازمانها دارای برخی ازخصوصیات زیر هستند .
1-سواد پایین چون با پارتی بازی استخدام شده اند و حالا فکر می کنند یک نخبه هستند در نتیجه باید در مورد همه چیز خودشان تصمیم بگیرند
2-دارای سابقه بالا هستند و فعلا به فکر پر کردن سنواتشان هستند تا زودتر بازنشست شوند و حال و حوصله تغییر را ندارن
3-حقوق پایین دارن اما از سر ناچاری مجبورن اینجا کار کنند . لذا براشون نمی صرفه که با نرم افزارهای جدید کار کنند
4-ترسو هستن . و می ترسن دست به هر دکمه ای بزنن چون می ترسن همه چیز را خراب کنند و مسولیت آن به عهده آنان بیفتد لذا ریسک نمی کنند و برای هر کاری با واحد فنی تماس می گیرن
5-کلا با واحد فنی مشکل دارن چون اون روزی قرار بود برای بچه شون در سایت کنکور ثبت نام کنند واحد فنی قبول نکرده لذا هر چی واحد فنی میگه ، آنها بر عکس عمل می کنند تا یه جورایی حالش را بگیرن
6-با واحد فنی مشکل دارن چون وقتی درخواست فیلتر شکن کردن و یا خواستن براشون آموزش فیس بوک بزارن ، واحد فنی قبول نکرده ، لذا هر چی واحد فنی می گه ، الزاما غلط است .
شاید برای شما هم این سوال مطرح شده باشد که Linq To Sql و Entity Framework چه تفاوتهایی دارند ، در این تایپیک این دو مورد را از جنبه های مختلفی مقایسه خواهم کرد .
1-complexity یا پیچیدگی : البته منظور از پیچیدگی از نگاه سخت و آسان بودن نیست بلکه از نگاه امکاناتی که در اختیار شما قرار می دهد . مسلما LINQ امکانات و پیچیدگیهای کمتری دارد.
2-model یا مدل سازی : ما در Entity Framework براحتی می توانیم مدل سازی کنیم علاوه بر آن از تمام ارتباطات بین جدولها پشتیبانی می کند LINQ از یک ارتباط یک به یک بین کلاسها و جدولهای بانک اطلاعاتی پشتیبانی می کند .
3-پشتیبانی از بانک اطلاعاتی : LINQ to SQL فقط از بانک اطلاعاتی Sql_Server پشتیبانی می کند در حالی که Entity Framework می تواند از بانکهای اطلاعاتی مختلفی پشتیبانی کند .
4-زمان توسعه پذیری :To SQL LINQ می تواند به راحتی استفاده شود و به سرعت کار شما را پیش ببرد . اما در نرم افزارهای پیچیده و بزرگ بدلیل داشتن امکانات محدود و کم دیگر جوابگو نیست .
5-وراثت : Entity Framework از وراثت بین کلاسها براحتی استفاده و پشتیبانی می کند در حالی که این خاصیت در LINQ وجود ندارد .
6-نوع فایل : LINQ در فایلی با پسوند DBML ذخیره می شوند در حالی که Entity Framework در فایلهای EDMX و CSDL ,SSDL که با فرمت xml است ذخیره می شوند .
7-نوع مرکب : ما در Entity Framework می توانیم فیلدی مرکب complex type تعریف کنیم . این فیلد چیزی شبیه به ساختار ها است . اما این امکان درTo SQL LINQ وجود ندارد
8-کویری : همانطور که در آموزشهای خودم نوشتم . Entity Framework از چندین سبک برای اجرای کویری استفاده می کند . Linq to Entity , EntitySQL , Query With Method
9-کارایی : هر دو از نظر سرعت در اولین اجرا شاید بتوان گفت کند هستند . اما Eitity Framework از نظر کارایی بهتر عمل می کند .
10-توسعه آینده : مایکروسافت چندان علاقه ای به توسعه و ادامه راه LINQ to SQL ندارد اما در عوض بیشتر تمرکز و توسعه را بر مبنای تکنولوژیهای دیگری گذاشته است از جمله Entity Framework
11-ساخت بانک اطلاعاتی از مدل : ما فقط در Entity Framework می توانیم ابتدا مدل خودمان را طراحی کنیم و سپس با استفاده از آن مدل ، بانک اطلاعاتی را تولید کنیم.
اگر تا به حال با برنامه نویسی سه لایه سرو کار داشتید و با آن برنامه نوشته اید حتما می دانید که این معماری از سه لایه
1- Data access layer
2- Business layer
3- Presentation layer
تشکیل شده است سوالی که مطرح می شود این است که جایگاه EDM در این معماری کدام لایه است شکل زیر تصویری بسیار گویا است که این جایگاه را به خوبی در لایه data نشان می دهد.