« July 2007 | صفحه اصلی | September 2007 »

برنامه ریزی استراتژیک برای شرکتهای نرم افزاری 7 -جانشین پروری

August 23, 2007 01:36 PM

یکی از مباحث مهم و حیاتی در شرکتهای تولید و بالطبع آن شرکتهای نرم افزاری، بحث اهمیت نیروی انسانی در رده های مختلف می باشد. به طور خاص در یک شرکت نرم افزاری با سایز کوچک یا متوسط می توان پست های مختلف سازمانی را چنین تعریف کرد:
-مدیر شرکت
- مدیر پروژه
-تحلیل گر سیستم
- برنامه نویس ارشد و پایه
-مستند ساز و مسؤول کتابخانه مستندات فنی
-مدیر ، مهندسان و کارشناسان فروش
-مدیر و کارشناسان پشتیبانی
-مسؤول سخت افزار و شبکه
-مدیر و کارشناس مالی
-مدیر و کارمندان امور اداری
-منشی و سرپرستان دفاتر و امور داخلی
-گرافیست
-اپراتور
- پرسنل خدماتی و اداری اعم از پیک، آبدارچی، تحصیلدار و ...
...

طبیعتا برخی پست ها را می توان در شرکتهای کوچک تر ترکیب کرد و یک نفر عهده دار آن باشد، برخی پست ها را پاره وقت کرد و یا در شرکتهای بزرگ و یا با ماهیت خاص پست های سازمانی دیگری مانند مسؤول انبار، روابط عمومی، تدارکات و .... به این مجموعه اضافه کرد.
فارغ از نوع پست های سازمانی، یکی از مسائل و وظائف مهم و راهبردی یک مدیر شرکت ، "جانشین پروری" است. به شکلی که برای هر پست، به مرور نیروهایی را به شکلی تربیت کند که بتوانند در صورت خالی شدن هر کدام از پست ها، فرد مناسب را به سرعت و با کمترین هزینه جایگزین نمود. اما چرا به جانشین پروروی نیاز داریم ؟ به دلیل وابستگی یک فرآیند کاری به افراد و مدیریت ریسک عدم همکاری یک نفر به هر دلیل (مهاجرت، خدمت سربازی، ازدواج، اتفاقات غیر مترقبه، تغییر تکنولوژی و یا رویکرد شرکت و ....) باید به گونه ای عمل کرد که هزینه این تغییرات کاهش یابد، چون نمی توان احتمال اینکه یک نفر از پرسنل شرکت شما به هر دلیل مایل به ترک شرکت شما باشد را صفر کرد.
نکته حائز اهمیت آنکه باید برای هر پست به شیوه متفاوتی فرآیند جانشین پروروی را دنبال نمود:
برای مثال در بخش های اداری و مالی بهتر است با وارد کردن نیروهای تحصیل کرده و با یک تجربه خوب به عنوان کارمند و با طی مدت زمان مناسب، وی را با محیط و شرایط کاری شرکت آشنا نمود و برای جانشین کردن احتمالی برای سایر کارشناسان و مدیران پرورش داد. در حالیکه برای نیروهای تولید بهتر است از نیروهای جوان و با انگیزه برای مثال فارغ التحصیلان دانشگاه استفاده نمود و در گروه های تولید استفاده کرد تا ضمن اینکه از خدماتشان استفاده می شود با تجربه شوند و بتوانند مشاغل مهمتری مانند تحلیل سیستم و یا مدیریت پروژه را به آنها سپرد.
اما در شغل های داخلی نظیر منشی و سرپرست دفاتر، کار مشکل تر است و جانشین پروری سخت و یا گاهی غیر ممکن است. این افراد به دلیل اینکه واسط شرکت با مشتری و سایر مجموعه های خارج از شرکت هستند، جایگزین کردنشان با شخص دیگر معمولا سخت و یا با مشکل همراه است. همچنین به دلیل نوع کار نمی توان یک فرد اضافی را در مجموعه نگه داشت برای روز مبادا، به نظر من بهترین گزینه برای پیدا کردن جانشین برای این افراد نوع قراردادی است که با آنها بسته می شود. به نوعی که حداقل چند ماه قبل از ترک شغل شرکت را آگاه کنند، در این زمان، شرکت با اعلان های عمومی و یا محدود گزینه های مناسب را پیدا کند و در یک مدت زمان یک یا دوماهه پست ها از شخص قبلی به شخص جدید تحویل داده شود.
در کنار همه این موارد دوره های آموزشی مقطعی برای آشناکردن افراد با مباحث مختلف، برگزاری جلسات عمومی در شرکت برای آگاه ساختن هر کدام از افراد با رویداد های شرکت و فرآیند های هر مجموعه، تدوین یک برنامه راهبردی و جامع (Master Plan ) در بخش نیروی انسانی و .... را نباید نادیده گرفت. به شکلی که در هر مورد و حداقل برای پست های حساس تر جانشین مناسب برای هر پست از قبل پیش بینی شده باشد.
به دلیل هزینه های رعایت تمام قواعد جانشین پروری، به عنوان یک راهکار برای شرکت های کوچک که توان پرداخت این هزینه ها را ندارند، پیشنهاد می کنم با جذب یک یا دو نیروی نخودی[!] هزینه های تغییر نیروی انسانی را کاهش دهند. این نیروهای به اصطلاح نخودی! چه مشخصه ای دارند؟ افرادی هستند که در همه تیم ها حضور دارند و به همه کمک می کنند و در همه کاری کنجکاوی به خرج می دهند و نسبت به آن اطلاع نسبی دارند. این افراد خود نمی توانند پستی را بپذیرند چون دانش کامل نسبت به آن ندارند بلکه می توانند در زمانی که به هر دلیل ناگهانی، فردی از مجموعه حذف شد، در مدت زمان جذب نیروی جدید، عهده دار آن کار شوند و حداقل پاسخگوی اتفاقات آن بخش باشند و در زمان جذب نیروی جدید به عنوان رابط انتقال اطلاعات به اشخاص جدید عمل کنند(همانگونه که در متدولوژی های Agile مطرح است که بهترین روش انتقال اطلاعات مذاکرات بین افراد است) . این پرسنل باید افرادی علاقه مند، پر انرژی، کنجکاو، خلاق، توجیه گر ، با روابط عمومی قوی و علاقه مند به یادگیری همه چیز باشند.
داشتن یک یا دو نفر خوب از این گونه پرسنل برای هر شرکت کوچک نرم افزاری نعمتی است که به نظرم نباید نادیده گرفته شود، هر چند پیدا کردن چنین اشخاصی و نگهداشتنشان در چنین وضعیتی سخت است.
همین!

Ali Vahed | 01:36 PM | Comment(s)(0)

فرصت شغلی برای برنامه نویس ASP.NET

August 20, 2007 06:28 PM

همانطور که در بخش اخبار وب سایت رادمان نیز به آن اشاره شده است نیاز به برنامه نویسی داریم که به شکل رسمی مشخصات زیر را داشته باشد:
- آشنا به برنامه نویسی به صورت ASP.NET ، زبان برنامه نویسی #C و بانک اطلاعاتی MSSQL
- ترجیحا فارغ التحصیل دانشگاه های معتبر
- آماده انجام کار در قالب متدولوژی های Agile و متدولوژی XP


و به شکل غیر رسمی هم مشخصات زیر در موردش صادق باشد:
- دارای عقل سلیم برای حل مسائل محوله
-توانمندی کار به صورت فشرده و بدون محدودیت زمانی برای تحقق اهداف پروژه
-دارای روحیه کار گروهی برای شرکت در تیم تولید پروژه و همراهی با مشتری
- عدم وجود شرایط خاص و آمادگی کار در یک مدت زمان حداقل یک ساله
- آموزش پذیری قوی و علاقه به یادگیری
- تعهد و مسؤولیت پذیری


مصداق آنچه یافت می نشود آنم آرزوست نشویم!؟
همین!

Ali Vahed | 06:28 PM | Comment(s)(2)

تجارتِ موبایل یا تجارتِ "موبایل" ؟

دیشب مهمانی داشتیم که تازه از کارمند بودن خود دست کشیده و یک مغازه  فروش گوشی موبایل باز کرده است. صحبت که می کرد می گفت در مغازه ای که تازه یک هفته باز شده است و در یک منطقه نه چندان معروف تجاری ، روزانه به حدی از فروش رسیده است که به نظر خرج ماهانه مغازه را درمی آورد و مطمئنا در چند روز آینده هم بهتر خواهد شد.
داشتم فکر می کردم با ورود موبایل به کشور و همه گیر شدن آن به جای اینکه تجارت موبایل (Mobile Bussiness) رونق بگیرد، تجارت گوشی تلفن همراه و خطوط موبایل رونق گرفته است. مد شده است روز به روز گوشی عوض شود و گوشی "مد روز" استفاده شود و یا گوشی با رنگ لباس ست شود و .... مطلب "موبابل داشتن یا نداشتن یا نداشتن، مساله این است" از وبلاگ "درخت گلابی" را در ادامه این مطلب بخوانید.
خلاصه آنکه کاش به جای فرهنگ تغییر مداوم موبایل و تبدیل آن به یک وسیله تزئینی، بانک اطلاعات جوک و لطیفه و کلیپ های صوتی و یا تصویری، به آن به یک نگاه کاربردی  داشتیم و سعی می کردیم روی وجه های دسترسی دائمی، اطلاع رسانی، خدمات رسانی، تبادل مالی و .... فکر کنیم. فکر می کنم بد نیست سازمانها و شرکتهای بزرگ خصوصی و دولتی پیش قدم بشوند و به جای ارسال پیامهای تبلیغاتی صرف، از سایر امکانات این شبکه برای بهبود ارائه خدمات و توسعه فعالیتهای خود استفاده کنند.
همین!

Ali Vahed | 12:43 PM | Comment(s)(0)

جاوا، زبان مخفف ها

August 19, 2007 09:52 AM

چند وقت پیش اطلاع رسانی کرده بودم که وبلاگ Let's Talk About Java  یا Javaborder را مهیار شروع کرده است و تقریبا با همان رویکردی که گفته بود مطلب می نویسد.
وبلاگ خوبی شده، من که استفاده می کنم از آن، مخصوصا آنکه از نگاه یک برنامه نویس باتجربه، شروع به آموزش زیان جاوا می شود. معولا کسی که برنامه نویسی بلد نیست شاید راحت تر با یک زبان جدید کنار بیاید و با قبلی آن را مقایسه نمی کند، اما نگاه مهیار از بالا به زبان و همچنین ذکر مثالهای سودمند، باعث شده که هر برنامه نویسی که جاوا زبان اصلیش نیست هم از خواندن آن بهره ای هم ببرد.
من که فعلا در بین نامها  و مخفف های جاوا گم شده ام! 
 
همین!


پ . ن :  وبلاگ دیگر مهیار که  مهیار دیگری را معرفی می کند  "درخت گلابی" است. دوستداران مهرجویی علی الخصوص ، به آنجا بروند، دست خالی بر نمی گردند.

Ali Vahed | 09:52 AM | Comment(s)(1)

نرم افزار جهاني، نرم افزار ساز جهاني، طرح پرسش

August 18, 2007 12:21 PM

چند وقت پيش برنامه اي بود در تلويزيون در مورد نقد فيلم، مجري از کارگرداني که دعوت کرده بود يک سوال پرسيد که به نظر من سوال مهم و جالبي است، اينکه ما آيا فيلمساز جهاني داريم (که همه جهان آن را بشناسند)، مصاحبه شونده، نام چند فيلمساز هنري ايران را آورد مانند کيارستمي يا مخملباف، پرسيد آيا بازيگر جهاني داريم؟ پاسخ دهنده، پاسخ منفي بود، پرسيد آيا فيلم جهاني داريم؟ بازهم در پاسخ ماند و فيلمهايي را نام برد که مورد توجه تماشاچي خاص سينما هستند نه عام و آنهم عده کمي هستند، فيلمهايي مانند توليدات هاليود يا باليود با آن قشر تماشاچي عظيم و گسترده در تمام دنيا را ما نداريم، پرسش کننده پرسيد چرا؟ چرا هند سينماي جهاني دارد اما ما نداريم؟ پاسخ دهنده پاسخ داد: .............
به پاسخ وي و نتيجه بحث کاري ندارم که وبلاگم يک وبلاگ سينمايي نيست، هر چند بين تهيه کنندگي سينما و مديريت پروژه نرم افزاري ارتباط زيادي مي دانم که در آينده در مطلبي به آن خواهم پرداخت.
مي خواهم امروز پرسشهايي مطرح کنم از خودم و از خوانندگان وبلاگ که:
- آيا ما محصول نرم افزار جهاني داريم؟ چو داني و پرسي سؤالت خطاست، معلوم است که نه، نرم افزاري مانند windows, Acrobat Reader, Delphi, photoshop, FIFA, warcraft و ...را اغلب مي شناسيم، نرم افزارهاي ديگر خواه سيستم عامل باشند، خواه نرم افزارکاربردي، محيط هاي برنامه سازي، ابزارهاي گرافيکي و يا بازي نيز در اين دسته وجود دارند، حضور يک محصول ايراني در اين بين خالي است، مگر نه؟
- آيا ما نرم افزار سازان جهاني داريم؟ بازهم پاسخ منفي است، شرکتهاي مانند Microsoft , Adob,SUN ,Symantec, Macromedia,EA Sport  و .... محصولاتي جهاني مي سازند، اما من در بين توليد کنندگانمان نمي شناسم چنين شرکتي را، حداکثر شرکتهايي هستند که در داخل کشور معروف هستند، اما حتي نمي شناسم توليد کننده اي را که در بازار منطقه يا خاورميانه شناخته شده باشد، نظر شما چيست؟
- پرسش اصلي اينکه با علم به منفي بودن پاسخ پرسش هاي فوق، نرم افزار جهاني و نرم افزار ساز جهاني نداريم؟
راجع به آن خوب فکر کنيد، من هم سعي مي کنم همين کار را بکنم و در مطلبي از ديدگاه خودم به آن پاسخ دهم، پس تا بعد ....
همين!

Ali Vahed | 12:21 PM | Comment(s)(0)

ارزیابی محصول، ساختار یا ظاهر؟

August 15, 2007 06:55 PM

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

Ali Vahed | 06:55 PM | Comment(s)(2)

تغییرات در شوراهای عالی تخصصی مرتبط با ICT

August 13, 2007 08:48 PM

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


همین!

Ali Vahed | 08:48 PM | Comment(s)(0)

"پیشنهاد" نمی دهم!

رایج شده است بین برخی مشتریان که وقتی به هر شکلی با یک شرکت کامپیوتری آشنا می شوند و یا حتی از اسم یک نرم افزار خوششان بیاید، تماسی می گیرند و صحبتی می کنند و در انتهای صحبت از طرف مقابل درخواست یک پیشنهاد (Proposal) می کنند! انگار آمده اند سوپر مارکت، بدون آنکه نیاز واقعی داشته باشند و یا حتی اگر نیازی دارند، آن را کامل بدانند، توپ را داخل زمین شرکت کامپیوتری بیچاره میاندازند. حتی گاهی وقت ها، درخواست یک پیشنهاد، برای آن است که ایده پیدا کنیم که آها، ما چه می خواهیم!! بدتر از آن دیده ام که پروپوزال می گیرند تا RFP تهیه کنند، چون خودشان نمی توانند لیست نیازمندیهای نرم افزار را در بیاورند از چند نفر پیشنهاد گرفته، مشخصات کلی و فنی همه پیشنهاد ها را ادغام می کنند و همان را بدون آنکه واقعا نیازشان را برطرف کنند به عنوان اسناد مناقصه و یا درخواست پيشنهاد پروژه (RFP)  آماده می کنند. بدتر از آن، شرکتهای کامپیوتری است که خودشان را مشتری جا می زنند و پیشنهاد می خواهند تا آن را به عنوان مبنایی برای ساخت نرم افزار خود بکنند! و یا با تغییر نام خود به یک مشتری دیگر بدهند! وای ....

خسته شدم از بس برای اینگونه مشتریان، پیشنهاد فرستادیم، مشتریانی که مانند کسی که داخل یک فروشگاه پوشاک می شوند ، حتی با علم به اینکه یا آن چیز را دوست ندارند و یا پولش را ندارند، آنقدر خودشان را مشتاق نشان می دهند که فروشنده بیچاره قند در دلش آب می شود، بعد از آنکه کلی خسته اش کردند با گفتن "می رویم دوری می زنیم و بر می گردیم" آب پاکی را روی دست بیچاره فروشنده می ریزند.
در نرم افزار که بدتر است، نوشتن پیشنهاد یکی از سخت ترین کارهاست، چون باید نیاز مشتری را خوب بشناسی، توانمندی خود را بدانی و بعد هزینه و زمان را تخمین بزنی که بسیار سخت است و مسؤولیت سنگینی دارد.
مشکل آنجاست که نمی شود ندهی، آنقدر مشتریان را بد عادت کرده ایم که اگر اینها را ندهیم خرید نمی کند، مسؤولین فروش اغلب مجبورند ریسک کنند و حتی اگر خیلی مطمئن هم نیستند، مطلبی را آماده کنند و بفرستند، به هر حال حساب احتمالات است، تشخیص مشتری واقعی از تقلبی سخت است.
تصمیم داریم دیگر پیشنهاد غیر مرتبط ندهیم و به هر درخواستی توجه نکنیم، تصمیم داریم سیاست حرس مشتری -را که قبلا داشتیم- تقویت کنیم و تعداد بیشتری را مشمول آن بکنیم، تصمیم داریم، درصد بیشتری از مشتریان را حواله کنیم به کاتالوگ های موجود، تصمیم داریم ، مکانیسم وضعیت گذاری روی مشتریان را و ایجاد یک ماشین با حالات محدود برای آن را در بخش فروش ایجاد کنیم تا مدیر و کارشناسان فروش، شفاف تر بتوانند مشتری ها را انتخاب کنند، تصمیم داریم ......
وای که چقدر ساده می شود ایده داشت و تصمیم گرفت اما چقدر سخت می توان تصمیمی را اجرا کرد و روی راهکار خود استقامت کرد.
همین!

Ali Vahed | 04:34 PM | Comment(s)(0)

درسی در طراحی سیستم های نرم افزاری، "اندیشیدن از آخر به اول"

August 12, 2007 08:30 PM

1-در کتاب هفت عادت مردان مؤثر می خواندم که یک خصوصیت مهم برای مردمان مؤثر آن است که "از انتها به ابتدا بیاندیشند" بدین معنی که قبل از انجام هر کاری ابتدا به نتیجه آن خوب فکر کنند و سپس راهی برای رسیدن به آن پیدا کنند و به شرایط لازم برای تحقق هدف خود برسند.
2-از جای دیگری هم شنیده بودم که دلیل موفقیت صنایع چینی آن است که قبل از تولید هر محصولی به این فکر می کنند که برای چه محصولی با چه قیمتی و در چه بازاری و به چه تعدادی مایل به ورود می باشند. وقتی هدف را ترسیم کردند، کارخانه و شبکه توزیعی ایجاد می کنند که این هدف را محقق سازد.
3-در طراحی سیتسمهای جامع مدیریت منابع سازمانی ( ERP: Enterprise Resource Planning) یک نکته آن است که سیستم را به صورت فرآیند گرا (process Oriented) و یا به صورت مدرن تر (Service Oriented) نگاه کنند به شکلی که با در نظر گرفتن خروجی مورد توقع از یک سیستم و نیاز مشتری، اجزای یک سیستم را کنار هم قراردهند. به این شکل سیستم خروجی بهتر و کم هزینه تری تولید می کند و هدف سیستم که همان مشتری مداری است محقق می شود.
4- ...
به مشابهت موارد بالا و مانند هر تولید دیگری ، یک نکته مهم در طراحی هر سیستم نرم افزاری ، علی الخصوص یک بسته عام نرم افزاری (General Software Package) آن است که طراح یا کمیته محصول موظف به ایجاد طراحی ، از آخر به اول فکر کنند، قبل از شروع به طراحی جزییات ، اول سیستم نهایی را مدل کنند، قبل از پرداختن به فرمهای ورود اطلاعات، خروجی ها و گزارش های سیستم را ببینند،  قبل از نوشتن هر قسمت، ارتباط اجزاء محصول را با یکدیگر ببینند، تا بنا کننده یک دیوار کج نباشند.
وقتی هدف به طور شفاف مشخص شد، وقتی توانستند، یک نرم افزار را که ماهیتا یک موجود انتزاعی است و تصور آن وقتی وجود هم دارد سخت است، به عینه ببینند و تصویری فیزیکی از آن داشته باشند، اقدام به طراحی جزییات و انتخاب متدولوژی و فرآیند توسعه آن نرم افزار بنمایند.
اگر قرار است یک سیستم گزارشگیری مدیریتی تهیه کنند، ابتدا گزارشهای مورد نیاز مدیران را بدانند بعد فرم ها و کانالهای ورود اطلاعات را پیش بینی کنند، وقتی قرار است یک سیستم اطلاع رسانی بسازند، اول مخاطب و نوع اطلاعات را شناسایی کنند، وقتی یک سیستم پردازش تراکنش می سازند، ابتدا خروجی های سیستم را ببینند، وقتی .... آن وقت است که می توانند محصول خوبی توسعه دهند و جلوگیری کنند از آنکه محصولشان اجزاء خوبی داشته باشد اما کلیت خوب خیر، اینکه سیستمشان ناهماهنگ باشد، کارایی مورد نظر مشتری را نداشته باشد یا نیازش را تحقق نبخشد...
امیدوارم من و شما، خوب یاد بگیریم که در طراحی سیستم ها این درس را بکارگیریم و سیستمهای خوبی را تحویل مشتری بدهیم...


همین!

Ali Vahed | 08:30 PM | Comment(s)(0)

برنامه ریزی استراتژیک برای شرکتهای نرم افزاری 6 - یارکشی

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

نکته دیگر اینکه به جز تخصص هر کس باید به شرایط روحی و کاری وی هم دقت شود. دو برنامه نویس هم سطح در دانش فنی، به لحاظ شخصیتی کاملا می توانند متفاوت باشند. برای مثال برنامه نویسی کارهای تولید مولفه (Component) را بیشتر دوست دارد، برنامه نویس دیگر طراحی واسط کاربری، یکی برنامه را سریع می نویسد و آنچه را نمی داند یاد می گیرد، اما برنامه اش ممکن است خطاهای ریز و درشت داشته باشد،یکی کند است و ساکن اما در عوض برنامه تولیدی اش کمترین خطا را داشته باشد.
بنابراین باید دقت کنید که با توجه به ماهیت شرکت و پروژه، چه برنامه نویسی با چه مشخصه ای می خواهید، گاهی ترکیب دو برنامه نویس مختلف برای یک کار، اثر خوبی دارد. (به بحث Pair Programming در متدولوژی XP مراجعه کنید.)
نکته دیگری که اهمیت آن بسیار زیاد است، داشتن روحیه کار گروهی در تیم است، چه بسیار افراد باهوش و خلاقی که نمی توانند در یک تیم کار کنند و این برای یک پروژه نرم افزاری که اغلب به صورت گروهی تولید می شود بسیار مضر است و بهتر است یا عطای این افراد را به لقایشان ببخشید یا سعی کنید روحیه کار گروهی و تیمی را به آنها آموزش دهید.
در یک تیم پروژه سعی کنید، به جز افراد قوی گروهتان یک یا دو نفر افراد ضعیف تر را هم انتخاب کنید، تا ضمن کمک به قوی تر ها و انجام خورده کاریهایی که قوی تر ها دوست ندارند انجام دهند و یا از دستشان در می رود، در کنار آنها آموزش هم ببینند و تجربه کسب کنند.
در یک شرکت نرم افزاری یک پروژه به تنهایی مهم نیست، بلکه تاثیرش بر سایر پروژه های بعدی نیز مهم است و سعی کنید به اندازه کافی تیمتان را برای انجام پروژه های بعدی توانمند کرده، متکی به یک یا دو نفر ثابت نباشید که "نیروی کامپیوتری بی وفاست!"
در پایان می خواهم به بحث مهندسی مجدد تیم ها هم اشاره کنیم، اگر هدفی برای کار خود ترسیم کرده اید و می بینید به آن نمی رسید، به جز بررسی سایر علل، گروه کاریتان را هم بررسی کنید، شاید خوب یار کشی نکرده اید و یا از افراد در پست غیر تخصصیشان استفاده کرده اید. باید یا در تیم جابجایی انجام دهید، آموزش مجدد ارائه کنید، ترکیب تیم را عوض کنید و نیروی تازه نفس به آن اضافه کنید، یا حتی شاید لازم باشد کل تیم را منحل و تیم جدیدی تشکیل دهید، از این کار نترسید که موفقیت شما بسته به آن است.
همین!

Ali Vahed | 11:44 AM | Comment(s)(0)

نگاهی به تعاریف رایج در مورد عامل ها (Agents)

August 6, 2007 03:43 PM

امروزه بکارگیری هوش مصنوعی (AI:Artificial Intelligence) در سیستمهای تجاری امری مرسوم و پرکاربرد است (هر چند در ایران هنوز این مساله به شکلی جدی مطرح نشده ، اما نمونه هایی مشاهده می شود).   عاملهای هوشمند (IA:Inteligent Agent) نیز  به عنوان یک جزء از  هوش مصنوعی توزیع شده، باعث شده است که در شبکه ها و یا رویداد های مربوط به گروه های افراد، استفاده از عاملها و عاملهای هوشمند رواج بیشتری نسبت به سایر موارد داشته باشد، به شکلی که امروزه بحث مهندسی نرم افزاری مبتنی بر عامل ها (Agent Based Software Engineering) و روشهای تجزیه تحلیل، چارچوب های برنامه سازی و محیط های توسعه آن بیشتر مورد توجه قرار گرفته است. در ادامه در سلسله مطالبی، به تعریف مبانی این گونه جدید از مهندسی نرم افزار خواهم پرداخت. علی الحساب در این نوشته نگاهی بیاندازید به تعاریف "عامل" از دیدگاه های مختلف.
در فرهنگ لغات  Agent چنین معنی می شود : "فاعل ، نماینده ، گماشته ، وکیل ، مامور ، عامل ، مباشر، واسطه ، پیشکار ، امین و کارگزار ". بدین ترتیب به عنوان یک تعریف پایه می توان Agent   را کسی دانست که به جای شخص یا چیز دیگری عمل می کند.
یک عامل دارای خصوصیات مختلفی است ؛ داشتن برخی از این خصوصیات برای یک عامل اجباری و بقیه اختیاری است. از جمله خصوصیات اجباری می توان به خواص autonomous (خودمختار بودن) ، interactive (دارای عمل متقابل بودن)  و reactive (واکنش دار بودن ) می باشد. از جمله خصوصیات اختیاری می توان به خواص mobility (متحرک بودن ) ، intelligence (هوش ) و trustworthiness (قابلیت اعتماد) اشاره کرد. این خصوصیات  عبارتند از :

-خودمختار بودن (Autonomous) : بتواند بدون دخالت یک محرک خارجی کارکند و تاحدی با استفاده از تجربه های شخصی بر حالات درونی و رفتارهای خود کنترل داشته باشد.
-دارای عمل متقابل بودن (Interactive) : با محیط و سایر عامل ها رابطه داشته باشد.
-سازگاری (Adaptive) : قابلیت پاسخگویی به محیط یا سایر عامل ها در درجات مختلف (بیشترین سازگاری زمانی است که عامل اجازه داشته باشد رفتار خود را بر اساس تجربیاتش تغییر دهد).
-اجتماعی بودن (Sociable) : با سایر عامل های دوست یا همکار تعامل خوب، دوستانه و اجتماعی داشته باشد.
-متحرک بودن (Mobile) : بتواند از یک محیط به یک محیط دیگر برود.
-وکالت (Proxy) : بتواند به عنوان وکیل شخص یا چیز دیگر عمل کند. بدین شکل که مطابق میل ان رفتار کند. یا مسؤولیت های آن را قبول کند و یا برای بدست آوردن منافع او تلاش کند.
-کنشگرا ((Proactive: هدفمند و با قصد مشخص، به عبارت دیگر صرفا در مقابل محیط واکنش های ساده نمی کند.
-هوشمند (Intelligent) : حالتها با دانشهایی شکل رسمی گرفته (مانند اعتقادات ، اهداف ، برنامه ها و فرضیات ) و عامل با سایر عاملها با یک زبان سمبولیک تعامل می کند.
-منطقی (Rational) : قابلیت آم را داشته باشد که کاری را بر اساس اهداف داخلی خود انجام دهد که وی را به این اهداف نزدیک سازد.
-غیرقابل پیش بینی (Unpredictable) : بتواند به نوعی رفتار کند که کاملا قابل پیش بینی نباشد حتی اگر شرایط آغازین کار کاملا شناخته شده باشد. به عبارت دیگر بتواند به طور غیرقطعی رفتار کند.
-پیوسته زمانی (Temporally Continuous) : فرآیند اجرای پیوسته ای داشته باشد.
-شخصیت (Character) : شخصیت و احساس قابل باوری داشته باشد.
-شفاف و قابل حساب (Transparent and Accountable) : به اندازه کافی شفاف باشد و در موقع نیاز گزارش فعالیت های خود را ثبت کند .
-هماهنگ (Coordinative) : بتواند فعالیتهایی را با سایر عاملها در یک محیط مشترک انجام دهد . این فعالیت ها اغلب در قالب یک برنامه، جریان کار و یا یک مکانیسم دیگر مدیریت پردازش ها هماهنگ شده اند.
-همکاری (Cooperative) : بتواند با سایر عاملها برای رسیدن به یک هدف مشخص هماهنگ عمل کند به طوری که شکست یا موفقیت عامل به این رابطه وابسته باشد. (مفهموم Collaboration نیز مفهومی نزدیک به این رابطه دارد.)
-رقابت (Competitive) : با سایر عاملهای دیگر چنان هماهنگ باشد که موفقیت یک عامل سبب شکست دیگری باشد . (مخالف همکاری)
-نیرومند (Rugged) : بتواند با خطاها و یا اطلاعات ناقص رفتار محکم و درستی داشته باشد.
-پقابل اعتماد (Trustworthy) : به قوانین موجود وفادار بوده، راستگو باشد.
-....

در منابع مختلف بسته به دیدگاه نویسنده تعاریف مختلفی برای عامل ارائه شده است در زیر به برخی از این تعاریف اشاره می کنم:

عامل Mubot : "لغت عامل برای نشان داده دو مفهوم متعامد به کار می رود. اولین مفهوم قابلیت اجرای خودکار عامل می باشد و دومین مفهوم قابلیت انجام دادن تصمیم گیری های مبتی بر دامنه است ."
عامل AIMA : "یک عامل چیزی است که می تواند محیط را از طریق حسگر هایش درک کند و با کمک عملگرهایش بر روی محیط تاثیر بگذارد."
عامل Maes : "عامل خودکار یک سیستم محاسباتی است که در یک محیط پیچیده پویا ساکن است. در این محیط به صورت خودکار حس می کند و بر اساس آن عمل می کند و بدین ترتیب اهدافی که بر اساس آن طراحی شده است را محقق می سازد."
عامل KidSim : "عامل بدین صورت تعریف می شود : یک موجودیت نرم افزار پایدار که برای یک هدف خاص در نظر گرفته شده است. پایداری عامل را از زیربرنامه ها متمایز می سازد؛ عاملها نظرات خاص خود را در مورد انجام یک عمل دارند . هدف خاص آنها را از سایر برنامه های چند کاره جدا می سازد؛ عاملها بسیار کوچک ترند. "
عامل Hayes-Roth : "عاملهای هوشمند به طور پیوسته سه عمل را انجام می دهند: استنباط شرایط پویا در محیط ، استدلال برای تفسیر این استنباط ها، حل مساله، ترسیم نتیجه گیری ها و تعیین اعمال ."
عامل IBM : "عاملهای هوشمند موجودیت های نرم افزاری هستند که یک سری عملیات را به عنوان نماینده یک کاربر یا یک برنامه دیگر و با درجه خاصی از استقلال یا خودمختاری برعهده دارند و برای انجام چنین کاری بخشی از دانش و یا نمایش اهداف و امیال کاربر را به کار می گیرند."
عامل Wooldridge : " سیستم کامپیوتری مبتنی بر سخت افزار و یا به طور معمول تر نرم افزاری که مشخصات زیر را داشته باشد :
• خودمختاری : عامل بدون دخالت مستقیم انسان و یا دیگران عمل می کند و تا حدودی بر عملکرد و حالات درونی خود کنترل دارد.
•قابلیت اجتماعی : عاملها با سایر عاملها (وحتی انسانها) بوسیله انواع زبانهای ارتباطی عاملها در تعامل می باشند.
•واکنشپذیری : عامل محیط خود را درک می کند (ممکن است یک کلمه باشد ، یک کاربر از طریق یک واسط کاربری باشد، مجموعه ای از عاملهای دیگر باشد ویا ترکیبی از همه اینها ) و به موقع در مقابل تغییرات اعمال شده در آن واکنش نشان می دهد.
•Pro-activeness: عاملها تنها به واسطه پاسخ به محیط عمل نمی کنند بلکه خود می توانند به واسطه اهداف خود آغاز گر یک عمل باشند. "

عامل SodaBot : "عامل های نرم افزاری ، برنامه هایی هستند که در یک گفتگو شرکت می کنند ، مذاکره می کنند و تبادل اطلاعات را هماهنگ می کنند. "
عامل Brustoloni : "عاملهای خودمختار سیستمهایی هستند که می توانند در دنیای واقعی خودمختار و هدفمند عمل کند. "
عامل Jennings : "يك عامل يك سيستم كامپيوتري كپسوله است كه در يك محيط قرار دارد و قادر به انجام عمليات خودكار و قابل انعطاف در اين محيط براي رسيدن به اهداف طراحي آن مي باشد."
تعریف اخیر تعریفی است که در عین سادگی به نظر می رسد نمایانگر مشخصات اصلی یک عامل است . در مطلب مرتبط بعدی به تعاریف سیستمهای چند عامله (Multi Agent System ) خواهم پرداخت.
همین!

Ali Vahed | 03:43 PM | Comment(s)(0)

اگر "بازی" نبود....

August 4, 2007 09:55 AM

1-هفته پیش برادر دبستانی یکی از بچه ها، عصر ها دفتر ما بود. ابتدا حوصله اش سر می رفت، چند بازی کامپیوتری آورد و روی یکی از کامپیوتر ها مشغول شد. با وجودیکه شاید نزدیک 20 سال اختلاف سنی داریم، چنان رفیق شدیم که روزهای آخر هفته با هم حسابی کل کل کردیم و راجع به بازی ها، علاقه مشترکمان، صحبت کردیم.
2- این روزها میزبان مهمانانی خانوادگی هستیم که دو پسر جوان هم همراهشان هست. مشکل مهم ما این بود که نه ما فرانسه بلدیم نه آنها فارسی که با آنها ارتباط برقرار کنیم. چند روزی به این که دور هم بنشینیم و همدیگر را نگاه کنیم گذشت، ماکزیموم پدرشان برایمان ترجمه می کرد یا یا اینکه با انگلیسی دست و پا شکسته ای که ما و آنها می دانستیم، چند کلمه حرف زدیم، فکر کنم هر دو طرف کلافه شده بودیم، تا اینکه ..... آخر هفته فرصتی شد و با هم شروع کردیم به بازی کردن با کامپیوتر! جالب بود، بعد از چند ساعت به یک زبان مشترک رسیدیم، جوری که  بعد از چند ساعت کلی رفیق شدیم، انگار که زمان طولانی است با هم دوستیم. حل شد، قرار بازی گذاشتیم برای شبها... خوش می گذرد فکر کنم این چند وقته که با هم هستیم ....

3-دبیرستان که بودم، بازی بود که ارتباط من را با کامپیوتر ایجاد می کرد (راستش با سن من قبلش کامپیوتر نبود، تی وی گیم بود و آتاری بعد ها کمودور بود و آمیگا) پدرم هم این را می دانست و از کامپیوتر دل خوشی نداشت، وقتی در زمان انتخاب رشته کامپیوتر را انتخاب کردم، می دانست و واقعیت هم همین بود که بازی است که باعث شد سراغ کامپیوتر بروم. با وجودیکه می دانستم زیاد راضی نیست چیزی نگفت، اما ... بعد از تمام شدن درس و تا چند سالی پس از آنکه کار می کردم، مدام می پرسید: "پس تو کی می خواهی بروی سر کار!؟" باورش نمی شد که به جز بازی کردن با کامپیوتر کار هم می شود کرد و پول هم می شود در آورد.
4- این سالها، هر پدر و مادری که پسر یا دختر نوجوان یا جوانی دارد و می داند کامپیوتر خوانده ام، از من می خواهد که بچه هایشان را نصیحت کنم که اینقدر با کامپیوتر بازی نکنند! شرمنده آنها می شوم، چون نه تنها همچین نصیحیتی نمی کنم، شاید بنشینم با بچه هایشان بازی هم بکنم! کلی نا امید می شوند از من و بچه هایی که منتظر یک نصیحت بوده اند از من، جا می خورند و کلی کیف می کنند. رطب خورده کی منع رطب کند!؟
5- در دروس مبانی و برنامه سازی، با الگو برداری از آقای پوروطن، همیشه پروژه های پایانی را ساخت بازی داده ام.هم به خاطر جامعیت بازی ها در برنامه نویسی، هم به خاطر جذابیتی که برای بچه ها دارد. دلم می خواهد در رادمان هم ساخت بازی ها را جدی تر نگاه کنیم، اگر مشتری هایی حاضر به سرمایه گذاری در آن باشند که کم پیدا می شود.
6- ....

مطمئن هستم خیلی از ما کامپیوتری ها، بازی کامپیوتری را به خیلی از سرگرمی های دیگر ترجیح می دهیم. فرقی هم به سن و سال و مدرک و کلاس کار اجتماعی ندارد، خیلی بخواهیم جلوی خود را بگیریم و بازی نخریم، با بازی های ویندوز که بازی می کنیم! واقعیت این است که نه تنها یکی از دلایل علاقه من به کامپیوتر همین بازی و دنیای مجازی آن بوده است، بلکه این روزها به نتیجه جالبی رسیدم ام، بازی کامپیوتری یک "رسانه" شده است. رسانه ای برای ارتباط آدم های مختلف با زبان های مختلف، در گروه های سنی مختلف و با فرهنگ های متفاوت. اینکه من با یک کودک دبستانی با یک نوجوان غیر ایرانی، با یک جوان هم وطن، با یک آدم هم سن خودم و .... می توانم از طریق بازی ارتباط برقرار کنم. همانگونه که "تماشای فوتبال" هم یک سرگرمی جهانی است، بازی کامپیوتر هم وسیله ای است جهانی که می تواند برای ارتباط بین آنها برقرار شود. نمی دانم تصمیم سازان علوم ارتباطات ما در این زمینه فکری کرده اند؟ نمی دانم مسؤولین فرهنگی کشور در مورد آن اندیشیده اند؟ نمی دانم مقامات عالی رتبه وزارتخانه ها و سازمانهای درگیر فرآیند آموزش، مسائل جوانان و خدمات اجتماعی برای بهره گیری مناسب از آن راهکاری دارند؟ نمی دانم و یک مورد دیگر به نادانسته هایم اضافه می شود اگر مصداق ضرب المثل "چو دانی و پرسی، سؤالت خطاست" نشوم!
همین!

Ali Vahed | 09:55 AM | Comment(s)(0)

مقایسه سیستمهای آموزش الکترونیک

August 2, 2007 10:07 AM

در ادامه مطالب پیشین، مقایسه ای خواهیم داشت بر روی شباهت ها و تفاوت های سیستمهای مدیریت آموزشی (LMS:Learning Managment Sysytem)  ، سیستمهای مدیریت محتوی آموزشی (LCMS: Learning Content Managment System)  و سیستمهای مدرسه مجازی (Virtual School)
هر کدام از این سیستمها قابلیت های خاص خود را دارند و در جای مختلفی می توانند استفاده شوند. اگر چه امكانات این سيستمها در سطوح بالایی  با هم مشترك هستند اما در نظر گرفتن تفاوت های آنها و امکانات مختلف برای یک نیاز خاص مهم است.در ادامه  نقشهاي سيستم هاي مديريت آموزشي مطلق ، سيستم هاي مديريت محتواي آموزشي ، و سيستم هاي مدارس مجازي  با هم مقايسه مي شود.

ا- چرا شما به يكي از اين سيستمها نياز داريد؟
سیستم مدیریت آموزشی:براي مديريت ياد گيرندگان كه تمام دوره هاي آموزشي را مي گذرانند
سیستم مدیریت محتوی آموزشی: براي يكپارچه نمودن دوره ها از واحد هاي كوچك تر محتواها
سیستم مدارس مجازی:براي بر پايي مدارس آن لاين با كلاس هاي ياد دهنده

2-چه سطحي از محتوا را هر يك مديريت مي كنند؟
سیستم مدیریت آموزشی:برنامه آموزشي و سطوح دوره
سیستم مدیریت محتوی آموزشی: دوره ، دروس ، صفحه و سطوح رسانه اي بخصوص اگر به عنوان عناصر آموزشي منتقل شوند
سیستم مدارس مجازی:دوره ، درس ، صفحه و سطوح رسانه اي همچنين فعاليت هاي اشتراكي و جلسات و ملاقاتهاي حضوري

3-چه چيزهاي ديگري را مديريت مي كنند؟
سیستم مدیریت آموزشی:ممكن است دوره هاي كلاس و مدارك را مديريت كند
سیستم مدیریت محتوی آموزشی: شايد صلاحيت ها را در يك سطح خيلي جزيي مديريت كند
سیستم مدارس مجازی:جلسات كلاس درسي ، سمينارها و ديگر فعاليت ها مانند فعاليت ها و برنامه هاي موجود در دانشگاه

4-در زمينه استفاده مجدد چه كمكي به شما مي كند؟
سیستم مدیریت آموزشی:تمام دوره ها در چندين دوره تحصيلي
سیستم مدیریت محتوی آموزشی: دروس ، صفحات و فايلهاي رسانه اي در چندين دوره
سیستم مدارس مجازی:دوره ها در چندين دوره تحصيلي ممكن است محتوا در سطوح پايين تر نيز قابل استفاده مجدد باشد.

5-چگونه آنها محتوا را با ياد گيرندگان تطبيق مي دهند
سیستم مدیریت آموزشی:معرفي كردن يك منو و كاتالوگ از دوره ها برخي بر اساس پروفايل يا گيرندگان پيشنهاد مي شود
سیستم مدیریت محتوی آموزشی: برخي بر اساس سطح علمي بالفعل اشخاص، فرآيند آموزشي را تجزيه و تحليل مي كنند
سیستم مدارس مجازی:آموزگار به صورت دستي محتوا را بر دانش آموزان خود منطبق مي كند

6-چه پيگير ي هايي را در مورد دانش آموزان مي توان انجام داد؟
سیستم مدیریت آموزشی:نيازها ، تواناييها و اولويت ها ي آنها همچنين شروع دوره ها ، اتمام آنها و امتياز بندي آزمونها قابل پيگيري هستند
سیستم مدیریت محتوی آموزشی: شروع ، اتمام ، امتياز بندي ، رتبه ها و فرايند دوره ها ، درسها و صفحات
سیستم مدارس مجازی:اولويت ها و نياز هاي آموزشي بيشترين فعاليت هاي پيگيري مانند مواردي كه به طور معمول در هر يك از كتابهاي پايه ها وجود دارد

7-چه نوع گزارشاتي توليد مي كنند؟
سیستم مدیریت آموزشی:ياد گيرندگان ، دوره تحصيلي ، دوره ها و پايه ها
سیستم مدیریت محتوی آموزشی: دوره ها و درسها ، آزمونها و فعاليت ها
سیستم مدارس مجازی:يادگيرندگان ، دوره ها ، درس ، آزمونها ، فعاليت ها و جلسات حضوري

8-چگونه دوره ها ايجاد مي شوند؟
سیستم مدیریت آموزشی:دوره ها به سيستم هاي مديريت آموزشي وارد مي شوند ابزارهاي سازنده در اينجا وجود ندارند
سیستم مدیریت محتوی آموزشی: ابزارهاي سازنده يا در اينجا وجود دارند و يا قابل افزودن به سيستم مديريت محتواي آموزشي را دارند همچنين شما مجاز هستيد محتواي موجود را وارد نماييد.
سیستم مدارس مجازی:سيستمهاي مدارس مجازي كمي هستند كه ابزارهاي سازنده پيچيده دارند اگر چه همه آنها اجازه وارد كردن همه محتواها را دارند

9-چگونه آموزش ها ارزيابي مي شوند؟
سیستم مدیریت آموزشی:سيستم هاي مديريت آموزشي داراي آزمون سازها و ابزارهاي مديريتي براي دوره و ارزيابي هاي دوره تحصيلي مي باشند
سیستم مدیریت محتوی آموزشی: سيستمهاي مديريت محتواي آموزشي داراي آزمون سازها و ابزارهاي مديريتي مي باشند آزمونها در سطح‌ صفحه ، درس و دوره قابل پيگيري هستند
سیستم مدارس مجازی:امتحانات و آزمونها معمولا به عنوان فعاليت هاي جداگانه پيگيري مي شد و نه به عنوان بخشي از درس يا صفحه خاص

10-چه كسي كنترلهاي حركتي را براي دوره ها تعيين مي كند؟
سیستم مدیریت آموزشی:سيستم مديريت آموزشي دروه هاي كاملي را برگزار مي كند كه هر كدام الگوريتم حركتي خاص خود را استفاده مي كنند
سیستم مدیریت محتوی آموزشی: ماژول هاي محتوا در قالب حركتي در سيستم هاي مديريت محتواي آموزشي ظاهر مي شوند
سیستم مدارس مجازی:ماژول هاي محتوا در قالب حركتي سيستم هاي مدارس مجازي ظاهر مي شوند.


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

منبع : کتاب "e-Learning Tools and Technologies" نوشته ویلیام و کاترین هورتون

همین!

Ali Vahed | 10:07 AM | Comment(s)(2)

ابزار یا راهکار نرم افزاری، نیاز واقعی سازمانها کدامیک است؟

August 1, 2007 10:22 AM

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

به نظر من یک پاسخ قطعی برای همه سازمانها و برای همه مسائل آنها نمی توان ارائه کرد. اما به طور کلی:
- سازمانهایی که مدیریت قوی و با دانشی در زمینه فنآوری اطلاعات دارند، نیاز خود را در مورد یک مساله به خوبی می دانند و با داشتن یک بدنه کارشناسی قوی و یا جذب مشاوران کارآمد می توانند مختصات ابزار مورد نیاز خود را دارند و شهامت و استقامت لازم را برای راه اندازی و عملیاتی کردن آن ابزار در سیستم دارند بهتر است "ابزار" یا سیستم نرم افزاری خاص سفارش دهند. چرا؟ چون اولا خودشان مشکل خود را بهتر از دیگران می دانند و می توانند با داشتن آن ابزار، مشکل را برطرف کنند. طبیعتا هم هزینه کمتر زمانی و مالی باید بپردازند، هم نسبت به نتیجه کار اطمینان بیشتری دارند.
- در سازمانهای گسترده، مسائل پیچیده و یا تخصصی و یا در مواردی که سازمان به این نتیجه می رسد که خود تمایل و یا توانایی حل مشکل خود را ندارد، بایستی با انتخاب یک مجری فهیم و با عقل سلیم برای مشکل خود راه حلی بیابد و از صفر تا 100 پیاده سازی راه حل را به وی بسپارد و خود زمانی مسؤولیت ادامه را بر عهده بگیرد که بر اساس شرایط موافقت نامه بداند سیستم کاملا راه اندازی و عملیاتی شده و مشکل برطرف شده است. طبیعتا هزینه انجام چنین کاری برای سازمانها بالاتر است و انتخاب مجری حساس تر. اما باید پذیرفت که در صورت پرداخت این هزینه و انتخاب درست، ادامه کار برایشان راحت تر است و درگیری کمتری خواهند داشت. نکته اینکه اجرای یک راهکار بدین معنی نیست که سازمان هیچ مسؤولیتی در قبال آن ندارد، بلکه مدیریت ارشد باید با حمایت همه جانبه و قاطع از مجری، وی را در انجام درست راه حل یاری دهد و شرایط کار را برایش مهیا کند.

لذا، به مدیران سازمانهای دولتی و یا خصوصی کشور توصیه می کنم که قبل از سفارش هر نرم افزاری ابتدا مسائل مرتبط با راه اندازی و عملیاتی کردن آن و اینکه آیا این سیستم می تواند مشکلشان را برطرف کند یا خیر در نظر بگیرند و در هنگام عقد قرارداد خرید یا توسعه آن را به کار گیرند.
در آخر باید به این نکته هم اشاره کنم که خروجی یک پروژه نرم افزاری فقط شامل یک product صرف نیست. اینکه ما یک یا چند CD شامل نرم افزار را تحویل بگیریم اصلا کافی نیست. یک نرم افزار صرف، به نظر من تنها یک سوم از خروجی را شامل می شود، دو سوم باقیمانده را آموزش، راه اندازی و پشتیبانی آن سیستم در طی حیات نرم افزار و کمک به حل مسائل خریدار می دانم. مساله ای که متاسفانه اغلب خریداران نرم افزار به آن توجه نمی کنند و نرم افزار قفل شکسته و یا بدون پشتیبانی درست خرید می کنند.
همین!

Ali Vahed | 10:22 AM | Comment(s)(0)