توليد نرم‌افزار و چالش‌هاي آن - Developer Center
Developer Center




بازگشت   Developer Center > اخبار و مقالات > مقالات و آموزش
ثبت نام راهنما فهرست کاربران تقویم جستجو ارسالهاي امروز نشانه گذاري انجمن ها به عنوان خوانده شده

پاسخ
 
ابزارهای موضوع نحوه نمایش
قدیمی Sunday 16 October 2005, 10:16 AM   #1
admin
مدير سایت - مهرداد تاجيك
 
admin آواتار ها
 
تاریخ عضویت: Thursday 30 June 2005
محل سکونت: تهران
نوشته ها: 810
با تشکر: 20
تشکر شده 1,339 بار 297 پست
admin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخارadmin کاربر بسیار پر افتخار
Post توليد نرم‌افزار و چالش‌هاي آن

نويسنده : حميد مشرف
ناشر : همكاران سيستم
تاريخ انتشار : 23/07/1384
- کارکنان بخش نرم افزار
گروه دومی که مدیر یک پروژه با آن‌ها روبه‌روست، اعضای بخش‌های تولید نرم‌افزار و کمی دقیق‌تر اعضای تیم‌های نرم‌افزاری است. افرادی با تخصص‌ها و ویرگی‌های گوناگون که به منظور تولید و ارايه یک محصول نرم‌افزاری سازمان یافته‌اند. سازمان دادن و هدایت چنین تیمی به منظور تولید محصولی با کیفیت در چهارچوب زمان و هزینه پیش‌بینی شده کار ساده‌ای نیست. بخشی از مشکل همان‌طور که پيش از اين نیز اشاره شد به ماهیت نرم‌افزار مرتبط است. برخی از ویژگی‌های خاص نرم‌افزار که آن را از دیگر محصولات تکنولوژیک متمایز مي‌كند، عبارت است از:

- محصول نرم‌افزاری به طور كامل انتزاعی است.
- تولید آن به خلاقیت نیاز دارد.
- گرایش به سمت پیچیدگی دارد.
- برآورد زمان و هزينه‌ي تولید آن بحث‌انگیز و مشکل است.


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

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


خروج از برآوردهای زمانی
برآورد تلاش‌های لازم برای تولید یک نرم‌افزار و برآورد زمان پروژه‌های نرم‌افزاری، یکی از بحث انگیز ترین مسايل مدیریت در پروژه های نرم‌افزاری است. بررسی روش‌های تخمین هزینه و زمان تولید یک نرم‌افزار از حوصله این نوشته خارج است. بسیاری از پروژه‌های نرم‌افزاری تنها بدلیل خروج از برآوردهای زمانی خود شكست خورده‌اند. بنا بر این بوضوح باید گفت که برآورد واقعی هزینه‌ي اجرای یک پروژه نرم‌افزاری یکی از بنیانی ترین قدمهای موفقیت یک پروژه نرم‌افزاری است [1].
وقتی که پروژه‌ای می‌رود تا از زمان خود خارج شود، از مهندسان نرم‌افزار خواسته می‌شود ( و یا انتظار می‌رود) تا ساعات بیش‌تری را کار کنند تا پروژه بر مسیر پیش‌بینی شده منطبق شود. نکته این‌جاست که فشار کاری بر تیم نمی‌تواند لزوما نتایج قابل انتظار را برآورده سازد.

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

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

گاهی حتا یک مهندس نرم‌افزار کار جدیدی را قبول می‌کند صرفا برای این که با تکنولوژی‌های جدید آشنا شده و موقعیت‌های جدید را تجربه کند. با فراهم آوردن شرایطی که اعضای تیم در حین کار خود از آموزش‌های مناسب برخوردار شوند، انگیزه جست‌وجوی کار جدید با هدف آشنایی با حوزه‌های جدید تکنولوژی به خودی خود از میان خواهد رفت.

با این همه یک پروژه‌ي نرم‌افزاری همیشه مواجه با چالش از دست دادن هر یک از اعضای تیم است. یک راه حل احتمالی برای حل مساله بالا آن است که همیشه کاندیداهای آماده برای مصاحبه به منظور جای‌گزینی آن‌ها وجود داشته باشد. اما نباید فراموش کرد که جای‌گزینی اعضای تیم همواره با ریسک‌هایی همراه است و پر کردن جای خالی یک عضو تیم، به خصوص در میانه‌های راه پروژه، چندان هم ساده نیست.
admin آنلاین نیست.   پاسخ با نقل قول

.......

پاسخ

ابزارهای موضوع
نحوه نمایش

قوانین ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
کدهای HTML غیر فعال است
انتخاب سریع یک انجمن

موضوعات مشابه
موضوع نویسنده موضوع انجمن پاسخ ها آخرين نوشته
وب سرويس چيست؟ sara84 مقالات و آموزش 6 Wednesday 1 September 2010 12:04 PM
وب سرويس چيست ؟ bahman-radpoor مقالات و آموزش 1 Tuesday 3 February 2009 06:49 PM
واژه نامه گرافیک کامپیوتر Bztajik گــــرافيك و مالتي مديا 0 Thursday 9 March 2006 10:16 AM
كارگاه برادران نول - چگونه فتوشاپ از نرم‌افزاري ساده به صنعتي بزرگ تبديل شد Bztajik گــــرافيك و مالتي مديا 0 Tuesday 31 January 2006 02:40 PM
مفهوم وب سرويس s.bashari .Net Framework 1* 0 Tuesday 11 October 2005 11:50 AM


اکنون ساعت 07:58 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.





Powered by vBulletin Version 3.7.3
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.

Persian Language By Persian Forum Ver 1.0