|
 |
عوامل انسانی در مهندسی نرم افزار |
 |
مقدمه هدف از بررسی عوامل انسانی بدست آوردن راهکارهایی در جهت تطبیق عوامل و شرایط محیطی با ویژگیهای انسان میباشد، به گونهای که وی با تحمل حداقل خستگی جسمی و عوامل روحی، حداکثر بهرهوری را داشته باشد. در این میان بررسی ارتباط دنیای رایانه و انسان، که روز به روز بر ژرفای آن افزوده میشود از اهمیت خاصی برخوردار است. اگر چه در نگاه اول پرداختن به این امر آسان مینماید اما با جلو رفتن روند مطالعه در خواهیم یافت که بررسی این ارتباط پیچیدگیهای خاصی دارد که از سویی ناشی از تنوع طبیعت انسان در تقابل با تنوع شرایط و اوضاع محیط کاری و از سوی دیگر نسبی بودن شرایط کاری مناسب میباشد. با وجود این مشکلات تنها تامل در وقوع نتایج فاجعه بار ناشی از خطاهای انسانی در تقابل با رایانه، که میتواند به طور تدریجی و یا آنی شالوده حیات را متلاشی سازد ما را ناگریز از پذیرفتن این مشکلات در جهت پرده بر داشتن از ابهامات موجود و بدست آوردن رهیافتهایی جهت همسوسازی محیط کاری و عوامل انسانی خواهد نمود. عوامل انسانی در چرخه تکاملی سیستم در چرخه تکاملی سیستم عوامل انسانی از دو دیدگاه قابل بررسی میباشد. یکی از نظر کاربران و استفاده کنندگان و دیگری از نگاه طراحان و برنامهنویسان جهت طراحی و پیادهسازی سیستم. در ادامه ابتدا به بررسی تقابل کاربر و سیستم رایانهای به منظور راهکارهایی در جهت افزایش هماهنگی میان آنها میپردازیم. سپس مدیریت و سازماندهی گروههای تولید نرمافزار را مورد بررسی قرار خواهیم داد. کاربر و سیستم رایانهای همسوسازی طراحی ابزارها و سیستمها با احتیاجات افراد و کاربران به منظور ایجاد ایمنی و راحتی محیط کار، تنها در سایه بکارگیری شیوهای مدون، برای انجام کار و انطباق بخشیدن آن با خصوصیات فیزیکی و روانی افراد امکانپذیر خواهد بود. در ذیل به پارهای از عملیات مفید در هر یک از مراحل چرخه تکاملی سیستم که در جهت رسیدن به این هدف مؤثر میباشند بطور خلاصه خواهیم پرداخت. مطالعات مقدماتی و تحلیل از آنجا که این مرحله به لحاظ تعریف وظایف، محدودیتها و اهداف سیستم دارای نقشی پایهای و اساسی در روند سیر مراحل بعدی میباشد، توجه به عوامل انسانی در کلیه جهتگیریها و تصمیمات اتخاذ شده در آن ضروری و غیرقابل چشمپوشی مینماید. بررسی این امر از دو دیدگاه باید مدنظر قرار گیرد: تعیین نیازهای کاربر (User Requirements) با توجه به اینکه اساساً تعریف مسأله بر پایه نیازهای کاربر صورت میگیرد و علاوه بر این آنچه وسعت و مشخصات سیستم را مشخص میکند عاملی جز گستره و سطح نیارهای کاربر نیست، دریافت اطلاعات دقیق و جامع، از ضروریتهای این بخش میباشد و برای این کار توجه به اصول روانشناسی جهت ارتباط با افراد گوناگون، حائز اهمیت است. به عنوان نمونه، برخورد با مدیران و کارگران در مصاحبهها، شیوههای متفاوتی را میطلبد. برای سیستمهای محاورهای، از آنجا که نحوه تقابل انسان و کامپیوتر در کارایی اینگونه سیستمها نقش حساسی دارد، تهیه نمونههای محاوره در خواستی کاربر، پیشنهاد میشود. تعیین نیازهای نرمافزار (Software Requirements) این بخش نشانگر این است که نرمافزار چه کاری را باید انجام دهد مواردی که نیازمند توجه به عوامل انسانی است باید مشخص گردیده، مستند شوند که این مستندات، شامل یک گزارش به زبان طبیعی برای مدیران و کاربران و گزارش دیگر به بیان علمی و فنی برای طراحان نرمافزار میباشد. در گزارش اول، بررسی هزینههای پروژه و توجیه اقتصادی آن با توجه به تحمیل هزینههای اضافی ناشی از ایجاد شرایط کاربر پسند، توصیه میشود. در گزارش دوم بررسی عوامل انسنی مورد نیاز و تأثیر ویژگیها و خصوصیات کارکردی و غیرکارکردی آنها بر روند کار، با توجه به شرایط موجود و محدودیتهای پروژه، مفید به نظر میرسد. طراحی و پیادهسازی بطور کلی در طراحی و پیادهسازی نرمافزار، توجه به عوامل ذیل، نقش مهمی در میزان تطابق نرمافزار با کاربر ایفا مینماید: - کاربران (User): سطح تحصیلات، سن و فرهنگ استفاده کنندگان - زبان ورودی (Input Language): شیوه کار کردن با نرمافزار مانند ماوس، صفحه کلید و غیره. - راهنمای کار (User guidance): راهنمای مناسب استفاده از نرمافزار و امکانات آن - پیامها (messages): شیوه ارائه نتایج، متن گزارش و خطاها. - زمان پاسخ (response Time): مدت زمانی که طول میکشد تا عملیات مورد نظر انجام گیرد. - طراحی وسط گرافیکی کاربر (Graphic User Interface): به علت ارتباط مستقیم کاربران با آن و اینکه از نظر مدیران و کاربران بعنوان یک معیار برای قضاوت بر روی سیستم میباشد. دخالت عوامل انسانی در آن حائز اهمیت میباشد. در طراحی واسطهای گرافیکی باید اهداف زیر دنبال شود: - کاربرپسند بودن (User Friendliness): به معنی سادگی کار با نرمافزارهای پیچیده به عنوان مثال ورود اطلاعات فارسی کاملاً هوشمند باشد، به گونهای که برای تایپ حروف بزرگ و کوچک از کلیدهای ترکیبی و کنترلی استفاده نشود. - یکنواختی و یکسان بودن واسط کاربر بین برنامههای کاربردی (Application) مختلف. - استفاده از سخت افزار: یعنی بر روی هر سیستم سختافزاری قابل اجرا باشند. آزمایش در این مرحله عواملی انسانی از دو منظر قابل بررسی است: - عمل بازبینی و بازرسی: تصدیق و مستندسازی آنچه آیا عناصر، فرآیندها، خدمات یا مستندات با نیازهای تعیین شده منطبق هستند یا نه. - فرآیند ارزیابی سیستم: تعیین آنکه آیا محصولات یک مرحله تولید، شرایط وضع شده آغازین آن مرحله را ارضا مینماید یا نه. در بررسی تطابق فرآیندها و خدمات با نیازهای اولیه و ارضای شرایط آغازین باید عوامل انسانی را به عنوان یکی از نیازهای اساسی و معیارهای ارزیابی در نظر گرفت. آموزش گرچه اتوماسیون و خودکارسازی ممکن است سبب کاهش تعداد افراد در محیطهای کار شود، اما افراد باقیمانده مسئولیت بزرگتری خواهند داشت. در چنین مراکی خطاهای انسانی ناشی از عدم آگاهی اپراتورها میتواند نتایج ناگواری به بار آورد. اینجاست که آموزش به صورت جدیتری مطرح میشود. شیوه و محتوای آموزش به نوع وظیفه بستگی دارد، در گسترش و بهبود برنامههای آموزشی، پاسخ به سه پرسش "چرا، چه و چگونه؟" میتواند مفید باشد. در پرسش چرا، نیازهای آموزشی توسط بازخوردی که از مشتریان و کاربران حاصل میشود تأمین میگردد. در پرسش چه، وظایف مورد نظر به منظور درک کامل آنها مورد تحلیل قرار گرفته، موارد مهم آموزشی مشخص میشود و در پرسش چگونه، جزئیات برنامه آموزشی طراحی میشود. آنچه در این میان نباید فراموش شود این است که آموزش مهارتهای فنی نباید به صورت تصادفی و اتفاقی انجام پذیرد، بلکه باید به صورت سازماندهی شده و بر اساس باخوردهای محیط کاری به کاربران منتقل و عملکرد صحیح آموزش داده شود. متناسب با موضوع کار، آموزش میتواند به صورت کلی یا جزء صورت گیرد. آنچه بدیهی است در روش جزء به جزء فراگیری مطالب سادهتر خواهد بود. جایگزینی با سیستم دستی یکی از مشکلات گسترش سیستمهای رایانهای عدم درک و پذیرش سیستم جدید توسط افراد (کارکنان، ارباب رجوع و مدیران) میباشد. اهمیت این موضوع به قدری است که در بسیاری از مواردة وجود همین مشکل منجر به شکست پروژه گشته است. برخی از عوامل بروز این مشکل عبارتند از: - پیچیدگی کار با سیستم - احساس بیثمر بودن تجارب کاری - نگرانی از بیکاری و یا کاهش اعمال قدرت فردی در جهت حل این موارد میتوان راهکارهای زیر را عنوان نمود: - گسترش فرهنگ صحیح استفاده از کامپیوتر در جامعه - آموزش کاربران - استفاده از کاربران و تجارب آنها در طراحی سیستم جدید - رفع و بهبود ضعفهای سیستم دستی در سیستم کامپیوتری - ایجاد محیط کاربردی مناسب - تغییرات تدریجی سیستم نگهداری برخی مشکلات حاصل شده در محصول نهایی ممکن است به جهت عدم انطباق آن با ویژگیهای کاربران باشد. مدیریت و سازماندهی گروهها با توجه به تأثیر متقابل مدیریت گروه تولید بر کلیه مراحل برنامهریزی پروژه، مدیر موفق ناگزیر از بکارگیری شیوهای هدفمند در مدیریت پروژه خواهد بود. بدین معنا که در کلیه مراحل برنامهریزی پروژه لازم است عواملی را که میتواند نقش مؤثری در روند مدیریت و سازماندهی گروه تولید داشته باشند را شناسایی و در جهت نیل به مدیریت مطلوب گروه به کار گیرد. به عنوان مثال میتوان ماهیت و دامنه فعالیتها را به گونهای تعیین نمود که انگیزه کارکنان را افزایش دهد. از سوی دیگر نقش مؤثر و گاه تعیین کننده گروه تولید و مدیریت آن بر سایر مراحل برنامهریزی پروژه، امری انکار ناپذیر مینماید. به عنوان مثال بدیهی است که مدیریت ریسک پروژه بدون در نظر گرفتن ویژگیهای گروه تولید و نحوه مدیریت آن، کل پروژه را محکوم به شکست خواهد نمود. به عنوان نمونه دیگری میتوان به نقش حساس مدیریت گروه در تخصیص اعضا به فعالیتها، در کیفیت نرمافزار اشاره نمود. در ادامه به بررسی مبحثی تحت عنوان رفتار سازمانی خواهیم پرداخت. این مطالعه ما را قادر خواهد ساخت تا با استفاده از نتایج بدست آمده در این مبحث، که لزوماً مربوط به علوم کامپیوتر نمیباشد، عوامل مؤثر در مدیریت تیم تولید نرمافزار را با توجه به شرایط حاکم بر پروژه بدرستی تشخیص داده، در جهت مدیریت مطلوب گروه بکار گیریم. نکتهای که در این مطالعات باید مورد توجه قرار گیرد. این است که با تکیه بر این یافتهها برخلاف علوم ریاضی، نمیتوان همیشه از برقراری وضعیت A انتظار نتیجه B را داشت و باید هرگونه احتمالی را در نظر گرفت. چرا که در دنیای واقعی به لحاظ گستردگی دامنه تأثیرات بر هر وضعیت، بسیاری از آنها برای مشاهده کنندگان آشکار و یا واضح نیست. به طور کلی دو تئوری در زمینه مدیریت منابع انسانی وجود دارد. مک گریگور (MC Gregor) این دو را تحت عنوان تئوری Xو تئوری Y مورد بررسی قرار داده است. در تئوری X فرض بر این است که: - عموم افراد بشر به صورت ذاتی کار را دوست ندارند. - لذا لازم است افراد را با اجبار وادار به کار کرده و آنها را کنترل نمود. - افراد تمایل دارند که مسئولیت نپذیرند. اما در تئوری Y اعتقاد بر این است که: - کار هم مثل استراحت یا تفریح جزء طبیعت انسان است. - اجبار و کنترل خارجی تنها روشهای جهت دهی تلاش اعضای گروه در جهت نیل به اهداف نیستند. - تعهد به اهداف تابعی از پاداشهای همراه با دستآوردهاست (پاداش الزاماً نباید مالی باشد. بلکه میتواند چیزی شبیه احساس بدست آوردن باشد). - عموم افراد بشر را میتوان در جهت قبول مسئولیت بیشتر آموزش داد. - اکثر افراد توانایی انجام کارهای با کیفیت بالا و خلاق را دارند. مک گریگور به این موضوع نیز توجه دارد که انتظارات از افراد بر رفتار آنها اثر میگذارد. وقتی که یک مدیر فرض میکند که شما ساعی و کوشا هستید، شما هم کوشش کرده و سعی میکنید انتظارات وی را برآورده سازید. حال که با نمایی کلی از رفتار سازمانی آشنا گشتیم به بررسی دقیقتری در این زمینه میپردازیم. مطالعات صورت یافته تحت این عنوان را میتوان در سه شاخه زیر طبقهبندی نمود: - انتخاب اعضای گروه: مهمترین عامل در مدیریت پروژه انتخاب اعضای گروه است. هدف از این مطالعات یافت راهکارهایی در جهت انتخاب بهترین افراد برای هر قسمت از کار میباشد. - انتخاب بهترین روش انجام کار: به عنوان نمونه از نتایج این مطالعات میتوان به رشد روشهای ساخت یافته اشاره نمود. - انگیزش اعضای گروه: اکر چه غاالباً پاداشهای مالی به عنوان انگیزه کاری مطرح میشوند، اما با نگاهی ژرفتر خواهیم یافت که مسأله پول در واقع مسالهای مجازی است و در بسیاری از موفقیتهای بزرگ، مسأله مهم ایمان به عینیت بخشیدن به طرح بوده است. از سوی دیگر گاه هیچ یک از این دو مطرح نبوده و تنها انگیزه حفظ آبروی کاری منجر به موفقیت گشته است. با توجه به این تنوع، مطالعه و شناخت عوامل انگیزشی اعضای گروه در جهت رسیدن به اهداف ضروری مینماید. فرد مناسب چه کسی است؟ تحقیقات به عمل آمده نشان میدهند که در روند تولید سیستمهای نرمافزاری دو ویژگی اعضای تیم میتواند نقشی اساسی در جهت رسیدن به اهداف ایفا نماید: - تجربه: طبق تحقیقات به عمل آمده توسط یک پژوهشگر آمریکایی، مهمترین عامل در بهرهوری برنامه نویس تجربه کاری اوست و در مقایسه با آن استعداد ریاپی تأثیر بسیار کمتری دارد. با توجه به نتایج یک نمونه تحقیقی دیگر اهمیت این موضوع آشکارتر خواهد شد. بر طبق این پژوهش تفاوت بیم کوتاهترین و بلندترین برنامهنویسی یک موضوع برای افراد با تجریه نسب به برنامهنویسان بیتجربه یک به بیست و پنج (1:25) و در زمان اشکالزدایی برنامه (1:28) گزارش گردید. - قدرت ارتباطی بالا: با توجه به این که تولید سیستمهای نرمافزاری به معنای واقعی کلام یک کار گروهی تمام عیار میباشد، لزوم داشتن قدرت ارتباطی بالا برای اعضای گروه تولید انکارناپذیر مینماید. اما بر طبق بررسیهای به عمل آمده اکثر برنامهنویسان تمایلی به کار گروهی ندارند. فرایند انتخاب نکتهای که قبل از انتخاب افراد باید مدنظر قرار گیرد این است که دقیقاً به چه وظایف و تخصصهایی نیاز است و سپس بر آن اساس از میان افرادی که میتوانند کار خاصی را انجام دهند بر اساس تحصیات، سوابق و... اشخاص مناسب انتخاب گردند. بکارگیری کاراترین روشها در بسیاری از موارد به منظور بکارگیری روشهای نوین و یا تسریع در عملیات، ناگزیر از بکارگیری افراد جدید در گروه تولید هستیم. وقتی که عضو جدید وارد تیم میشود، مدیر گروه باید برای معرفی دقیق او به بقیه افراد گروه برنامهریزی نماید. مخصوصاً اگر بخواهیم عضو جدید به سرعت به عضو مؤثری برای گروه بدل گردد. از سوی دیگر مدیر گروه باید به طور پیوسته نیازهای آموزشی اعضای تیم خود را تعیین و از بکارگیری روشهای آموزش داده شده نیز مطمئن گردد. انگیزش از آنجا که در تولید یک سیستم کامپیوتری همواره کوشش ما در جهت بکارگیری روشها و ابزارهای جدید به منظور بهبود بهرهوری است. تفکیک و کمی کردن کار در حال انجام که معمولاً یک کار گروهی تمام عیار است، بسیار مشکل میباشد. لذا در اینجا به مانند بسیاری از کارهای دیگر نمیتوان حاصل کار هر فرد را اندازهگیری و پاداشها را بر آن اساس تنظیم نمود. از طرفی اگر چه پول به لحاظ برآورده کردن نیازهای اساسی و اولیه انسان از قبیل غذا، سرپناه و امکانات رفاهی و ... میتواند عامل انگیزشی بسیار مهمی باشد اما پس از برطرف شدن این نیازها و یا در صورتی که شخصاً به لحاظ شرایط کنونیش نیازی به آنها احساس نمیکند، ارزش انگیزشی پول رنگ میبازد. مازلو معتقد است پس از برطرف شدن نیازهای اساسی فرد نیاز سطح بالاتری ظاهر خواهد شد و آن احساس احترام به خود (Self Actualization) به معنای استفاده کامل از قابلیتهای خویشتن است. از سوی دیگر به نظر میرسد که اگر بتوان به طریقی این احساس را در شخص تقویت نمود که برای انجام کار خویش ارزشی معنوی قائل باشد (مانند ایجاد احساس نتیجه داشتن و یا احساس تعلق به کار و یا حتی ماهیت خود کار) انگیزه وی در انجام هر چه بهتر وظیفهاش بسیار بیشتر از آنچه عوامل مادی بتوانند، بالا خواهد رفت. وروم (Vroom) سه موضوع مؤثر در انگیزش را بدین صورت تعریف میکند: - انتظار: این اعتقاد که با کار بیشتر و بهتر میتوان انتظار رسیدن به حاصلی و یا وضعیتی مطلوبتر از آنچه در حال حاضر برقرار است رسید. - سودمندی: اعتقاد شخص به اینکه حاصل تلاش وی قابل استفاده بوده و نیازی را برطرف خواهد نمود. در غیر این صورت بدیهی است که وی احساس کند که در حال تلف کردن وقت خود است و لذا کار را رها خواهد نمود. - مشاهده بها دادن دیگران به نتیجه کار: وقتی کاربران واقعا خواهان یک سیستم نرمافزاری باشند و یا مدیر گروه موفقیت پروژه را نتیجه تلاش تک تک اعضای تیم بداند، همین احساس گرم کمک به دیگران و یا همکاران و اینکه آنها سپاسگذار خواهند شد، بهترین پاداش شخص خواهد بود. اما چنانچه دیگران دائماً از نتیجه کار وی شکایت داشته و یا مدیر گروه او را مسئول هرگونه کاستی موجود در نرمافزار بداند، وی در آینده از هرگونه همکاری در پیادهسازی سیستمهای نرمافزاری دیگری که از او خواسته میشود امنتاع خواهد نمود. اولدهای و هاک من معتقدند که سه عامل زیر: - مهارتهای مختلفی که انجام دهنده کار فرصت یادگیری و تمرین آنها را خواهد داشت. - هویت کار: درجه اهمیتی که کار و نتایج حاصل از برای شخص انجام دهنده دارد و احساس اهمیتی که وی از تعلق کار به خودش نسبت به آن خواهد داشت. - اهمیت کار: میزان تأثیری که کار شخص بر دیگران خواهد دلشت موجب معنیدار شدن کار (Meaningful) برای انجام دهنده آن میشود. از سوی دیگر دو عامل استقلال داخلی و بازخور مطرح است: - استقلال داخلی: جهتی که شخص در روش انجام کار اتخاذ خواهد نمود. - بازخور: اطلاعاتی که شخص در مورد کار خود دریافت میکند موجب رضایت وی خواهد شد. به اعتقاد چنی (Cheney) میزان بازخور و مشارکت برنامهنویسان در تصمیمگیریها اثرات مثبتی در بهرهوری و رضایت شغلی ایشان دارد و ملاحظاتی از قبیل درجه پشتیبانی روانی، اعتماد دو طرفه، احترام، کمک کردن و دوستانه بودن کار از اهمیت کمتری برخوردار است. در پایان به سه روش که میتوانند در جهت افزایش انگیزه اعضای گروه نقش مثبتی ایفا نمایند اشاره میکنیم. روشهای افزایش انگیزه - مشارکت اعضای گروه در تعیین اهداف و تصمیمگیریها: پذیرش اهداف توسط اعضای گروه نقش مهمی در ایجاد اهمیت و هویت کار برای آنها ایفا خواهد نمود. - ارائه بازخور منظم از روند پیشرفت کار: با فراهم آوردن امکان پیگیری چگونگی پیشرفت کار توسط اعضای گروه، انگیزه بیشتری برای مفید بودن در این روند در آنها ایجاد خواهد نمود. - ایجاد احساس مسئولیت در کار، و افزایش آن با محول نمودن وظایف و اختیارات بیشتر به اعضای گروه نتیجهگیری همانگونه که در مقدمه عنوان شد بسیاری از مشکلات موجود در مهندسی نرمافزار ریشه در عدم توجه به عوامل انسانی دارد. لذا در این مقاله سعی گردید تا با مرزبندی عوامل انسانی مؤثر در موفقیت پروژه در دو دسته کاربران سیستم و تولیدکنندگان آن و بررسی چگونگی تأثیر آنها در مراحل مختلف روند تکاملی سیستم، علت اصلی پارهای از مشکلات را که ناشی از عدم در نظر گرفتن عوامل انسانی میباشند را روشن ساخته، راهکارهایی جهت برطرف نمودن آنها و قرار دادن عوامل انسانی در راستای بهبود نرمافزار ارائه گردد. همان گونه که در قسمت اول عنوان شد یکی از علل اصلی این مشکلات شرایط نامطلوب محیط کار و نرمافزارهای نامتناسب با ویژگیهای استفاده کنندگان میباشد. از این رو شناخت ویژگیها و خصوصیات انسانها و بررسی نقش آنها در مراحل مختلف طراحی و تهیه یک سیستم بسیار ضروری است. در قسمت دوم نیز با بررسی عوامل مؤثر در مدیریت گروهها و مطالعه رفتار سازماندهی مشخص شد که داشتن شناخت درستی از افراد و ویژگیهای آنها و توجه به عوامل انگیزشی اعضای گروه میتواند نقش بسیار مؤثری در موقفیت پروژه و بهبود مهندسی نرمافزار داشته باشد. مراجع [1] Ian Sommerville. (1996). Software Engineering, Addison – Weseley, New York. [2] Mike Cotterel, Bot Hughes (1998), Software Project Management [3] R.S Bridger. (1995). Introduction to Ergonomics, Mc Graw. Hill, Berkly · مرات نیا، احمد، مرات نیا، نیروانا (1376). استانداردهای مهندسی نرمافزار. |
|
|
|
|
|
|
|