مشاور: مدیریت پروژه نرم افزاری
تاریخچه مدیریت پروژههای نرم افزاری با تاریخچه تولید نرمافزار در هم آمیختهاست. نرمافزارها در آغاز برای مقاصد خاص و یا راهاندازی سخت افزارها نوشته میشد. اما با معرفی مفهوم برنامهنویسی شیگرا در سال ۱۹۶۰، برنامه نویسی با این رویکرد مورد استقبال شرکتهای توسعه نرم افزار قرار گرفت و در دهههای ۱۹۷۰ و ۱۹۸۰ روند تولید و توسعه نرم افزار رشد سریعی را تجربه کرد.
در این زمان شرکتهای تولیدکننده نرمافزار تلاش میکردند تا با استفاده از روشهای کلاسیک مدیریتی، پروژههای نرم افزاری را راهبری کنند اما به زودی و با کند شدن سرعت تولید نرم افزار و بروز مشکلات جدی در تست و نیز تغییرات به وجود آمده در نیازمندیهای مشتریان مشخص گردید که روشهای سنتی مدیریت پروژه برای راهبری تیمهای نرم افزاری مناسب نمیباشد. تحلیل و بررسی پروژههای نرم افزاری شکست خورده، عوامل زیر را به عنوان مهمترین دلایل شکست آنها مشخص کرد:
عدم بیان روشن اهداف پروژه
برآورد نادرست از منابع مورد نیاز پروژه
تعریف نادرست نیازمندیها
گزارشدهی ضعیف روند پروژه
استفاده از فناوریهای نابالغ
عدم توانایی در کنترل پیچیدگیهای پروژه
روشهای توسعه غیر استاندارد
مدیریت پروژه ضعیف
سیاستهای ذینفعان
فشارهای مربوط به جنبههای تجاری پروژه
سه مورد نخست در فهرست بالا نشان میدهد که عدم بیان روشن و بدون ابهام نیازمندیهای نرمافزاری توسط مشتریان منجر به اشتباه در هدفگذاری و تخصیص منابع مورد نیاز پروژه میشود.
برنامه ریزی، پایش و کنترل پروژه
هدف از برنامه ریزی پروژه نرم افزاری، مشخص نمودن محدود(scopee) پروژه، تخمین حجم کاری مورد نیاز و در نتیجه تدوین یک برنامه زمانبدی جهت اجرای پروژه می باشد. برنامه ریزی پروژه با شناسایی نیازمندی های موضوع پروژه آغاز می شود. پس از آن طرح اجرایی پروژه جهت تشریح وظایف سطوح مدیریت عالی و میانی تدوین می گردد. نظارت بر پروژه و کنترل آن بر اساس معیارهای مهندسی نرم افزار تضمین می کند که روند اجرای وظایف در تیم ها و تخصیص منابع به آن ها بر اساس طرح اجرایی پروژه انجام پذیرد و مدیر پروژه در صورت مشاهده عدم تطابق در روند اجرا، اقدامات اصلاحی را به عمل آورد.
ISSUE
در مهندسی نرم افزار، یک issue یک واحد از کار است که در صورت انجام به بهبود عملکرد سیستم نرم افزاری منجر می شود. مانند رفع یک باگ، مستند سازی یک کامپوننت یا تحلیل نیازمندی جدید. مدیریت issue یکی از وظایف مدیر پروژه نرم افزاری است . issue ها معمولا بر اساس پارامتر میزان شدت یا میزان اهمیت دسته بندی می شوند. این دسته بندی معمولا به صورت زیر می باشد:
بحرانی: مشکلات و یا کارهای تعریف شده در این دسته مواردی هستند که در نحوه عملکرد سیستم تاثیر حیاتی دارند و عدم پاسخگویی به آنها ممکن است باعث به خطر افتادن سیستم شود.
میانی: مشکلات و موارد این دسته در رده دوم اهمیت در زمانبندی اجرا و پاسخگویی قرار می گیرند.
پایین: مواردی که در این دسته قرار می گیرند از سطح اهمیت پایین تری نسبت به دو دسته قبلی قرار می گیرند. باید توجه داشت که انباشته شدن و عدم پاسخگویی به موارد کم اهمیت ممکن است سیستم را با یک خطر بحرانی مواجه کند.
در بسیاری از شرکت های نرم افزاری وظیفه استخراج و دسته بندی مشکلات نرم افزاری بر عهده تیم یا مسئول تضمین کیفیت می باشد.