واضح آرشیو وب فارسی:سایت ریسک: View Full Version : توليد نرمافزار و چالشهاي آن rtech19th October 2008, 02:02 AMگروه دومی که مدیر یک پروژه با آنها روبهروست، اعضای بخشهای تولید نرمافزار و کمی دقیقتر اعضای تیمهای نرمافزاری است. افرادی با تخصصها و ویرگیهای گوناگون که به منظور تولید و ارايه یک محصول نرمافزاری سازمان یافتهاند. سازمان دادن و هدایت چنین تیمی به منظور تولید محصولی با کیفیت در چهارچوب زمان و هزینه پیشبینی شده کار سادهای نیست. بخشی از مشکل همانطور که پيش از اين نیز اشاره شد به ماهیت نرمافزار مرتبط است. برخی از ویژگیهای خاص نرمافزار که آن را از دیگر محصولات تکنولوژیک متمایز ميكند، عبارت است از: - محصول نرمافزاری به طور كامل انتزاعی است. - تولید آن به خلاقیت نیاز دارد. - گرایش به سمت پیچیدگی دارد. - برآورد زمان و هزينهي تولید آن بحثانگیز و مشکل است. نیروی انسانی مهمترین سرمایه اولین مشکل یک مدیر پروژهي فراهم آوردن نیروی انسانی مناسب برای تیم است. مهندسان نرمافزاری که تواناییهای آنها به تخصصهای نرمافزاری صرف محدود نشده و از مهارتهای فردی دیگری چون برقراری ارتباط، توانایی، انگیزه و روحیهي خودآموزی و تحقیق برخوردار باشند. یک مدیر با تجربه بر آن است تا کسانی را برای همکاری انتخاب (یا استخدام) کند که به رشد دانش مجموعه تیم کمک كند. از آنجا که فناوری تولید نرمافزار به سرعت رو به تکامل است، یک مدیر با تجربه بر آن است که دانش مجموعه تیم یا شرکت خود را افزایش داده و بستری فراهم کند تا مجموعه تحت سرپرستیاش از آموزش کافی برخوردار باشند. در چنین حالتی کیفیت و کمیت دانش و توانایی اعضای تیم مضاعف میشود. اگر چه چنین آموزشهایی هزینه دارد با این همه سرمایه گذاری ارزشمندی محسوب میشود. به نظرنگارنده آموزش حین کار باید به عنوان یک اصل در شرکتها و بخشهای تولید نرمافزار پذیرفته شود . هدف اصلی این آموزش باید بر افزایش کارآیی اعضای تیمهای نرمافزاری متمرکز باشد. به راحتی میتوان ثابت کرد که هزینهای که صرف آموزش تیم میشود، به سرعت با افزایش کارآیی اعضای تیم و رشد کیفیت نرمافزارهای تولیدی جبران میشود. خروج از برآوردهای زمانی برآورد تلاشهای لازم برای تولید یک نرمافزار و برآورد زمان پروژههای نرمافزاری، یکی از بحث انگیز ترین مسايل مدیریت در پروژه های نرمافزاری است. بررسی روشهای تخمین هزینه و زمان تولید یک نرمافزار از حوصله این نوشته خارج است. بسیاری از پروژههای نرمافزاری تنها بدلیل خروج از برآوردهای زمانی خود شكست خوردهاند. بنا بر این بوضوح باید گفت که برآورد واقعی هزینهي اجرای یک پروژه نرمافزاری یکی از بنیانی ترین قدمهای موفقیت یک پروژه نرمافزاری است [1] (کاربران ثبت نام کرده قادر به مشاهده لینک می باشند_ftn1). وقتی که پروژهای میرود تا از زمان خود خارج شود، از مهندسان نرمافزار خواسته میشود ( و یا انتظار میرود) تا ساعات بیشتری را کار کنند تا پروژه بر مسیر پیشبینی شده منطبق شود. نکته اینجاست که فشار کاری بر تیم نمیتواند لزوما نتایج قابل انتظار را برآورده سازد. برای روشن شدن این نکته تصور کنید که حفرهای در یک کشتی در حال حرکت ایجاد شده و کاپیتان کشتی از ملوانان میخواهد که آب وارد شده به کشتی را با سطلهایی به دریا بازگردانند تا کشتی غرق نشود! واضح است که پس از مدت زمانی، ملوانان آن قدر خسته میشوند که حتا نمیتوانند سطلهای خود را بلند کنند! و آب با سرعت بیشتری به کشتی نفوذ کرده و کشتی به همراه همه ملوانان به قعر دریا خواهد رفت! پس چه باید کرد؟ یک راه جایگزین برای چنین حالتی کشف محل رخنه و رفع اشکال و نقص به وجود آمده است. خروج از زمان پیشبینی شده برای مثال میتواند نشان از مشکل بزرگ دیگری یعنی نبود هماهنگی میان اعضای تیم باشد. بهترین راه آن است که یا پس از 8 ساعت کاری و یا با تقسیم پروژه به بخشهای کوچکتر، پس از رسیدن به اهداف هر بخش، همه به خانههای خود بروند. طبیعی است که اگر هدف قابل لمسی را ببینند احساس رضایت بسیار بیشتری خواهند داشت. چرا که فرستادن تیم به خانههای خود و یا حذف همهي اضافه کاریها بدون این که اعضای تیم پشرفت کارشان را به صورتی قابل لمس مشاهده کنیم، فقط باعث آن خواهد شد که زمانی هم که خارج از محیط کارند همچنان به آن فکر کنند. به هر حال در زمانی که پروژه از زمان خود خارج میشود، بر عهدهي مدیر پروژه است که محل اشکال را کشف و نسبت به رفع آن به بهترین شکل ممکن و نه با درخواست یا انتظار کار اضافی، اقدام کند. نکتهي آخر آنکه زمانبندی پروژههای نرمافزاری هنوز بیشتر یک هنر است تا علم. واقعا راهی برای پیشبینی همهي ریسکهای موجود در پروژه وجود ندارد و به همین دلیل توصیه میشود که در برآوردهای هزینهي و زمان پروژههای نرمافزاری بسیار محافظه کارانه عمل شود. انگیزه انگیزه نقش بسیار مهمی در زندگی یک مهندس نرمافزار بازی میکند. کار نرمافزار نه یک کار خدماتی، نه یک کار تولیدی صنعتی بلکه خلاقیتی در دنیایی مجازی است. یک سیستم نرمافزاری، موجودی مجازی است که خلق میشود، رشد میکند و در نهایت از میان میرود. برای این که خلاقیت در اعضای تیم وجود داشته و تقویت شود، ایجاد و تقویت انگیزههای آنان بسیار مهم است. در بازار کار مناسب هر لحظه انتظار خروج عضوی از تیم میرود. یک مدیر پروژه ارزش مهارتهایی را که در اختیار دارد به خوبی میشناسد و میداند که سرمایهي اصلی تیمش نیروی انسانی کار آزمودهای است که در اختیار دارد. فراموش نکنیم که با رشد سریع تکنولوژیهای جدید، تقاضا برای مهارتهای جدید همیشه رو به افزایش بوده و لذا برای بسیاری از مهندسان نرمافزار مجرب و کار آزموده، یافتن شغل مناسب در شرایط خوب بازار، مشکل نیست. گاهی حتا یک مهندس نرمافزار کار جدیدی را قبول میکند صرفا برای این که با تکنولوژیهای جدید آشنا شده و موقعیتهای جدید را تجربه کند. با فراهم آوردن شرایطی که اعضای تیم در حین کار خود از آموزشهای مناسب برخوردار شوند، انگیزه جستوجوی کار جدید با هدف آشنایی با حوزههای جدید تکنولوژی به خودی خود از میان خواهد رفت. با این همه یک پروژهي نرمافزاری همیشه مواجه با چالش از دست دادن هر یک از اعضای تیم است. یک راه حل احتمالی برای حل مساله بالا آن است که همیشه کاندیداهای آماده برای مصاحبه به منظور جایگزینی آنها وجود داشته باشد. اما نباید فراموش کرد که جایگزینی اعضای تیم همواره با ریسکهایی همراه است و پر کردن جای خالی یک عضو تیم، به خصوص در میانههای راه پروژه، چندان هم ساده نیست. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 546]