مدیریت پروژه نرم‌افزاری

مدیریت پروژه نرم‌افزاری، زیرمجموعه کنترل پروژه فناوری اطلاعات است که به‌طورخاص به مدیریت و رهبری فرایند توسعه نرم‌افزارها می‌پردازد.

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

 

ویژگی‌های پروژه نرم‌افزاری

به‌طورکلی یک پروژه، تلاشی موقت برای ایجاد یک محصول منحصربه‌فرد یا ارائه یک خدمت خاص است.پروژه‌ها پنج ویژگی دارند:

  1.     هدفی منحصربه‌فرد یا یک هدف مشخص
  2.     نقطه شروع و نقطه پایان قطعی
  3.     توسعه مستمر
  4.     نیازمندی به منابع
  5.     داشتن یک اسپانسر یا مشتری.

پروژه های نرم‌افزاری نیز از سایر پروژه‌ها مستثنی نبوده و ویژگی‌های فوق را دارا هستند. همچنین پروژه‌های نرم‌افزاری از یک چرخه عمر پیروی می‌کنند که انواع آن در ادامه خواهد آمد.

 

چرخه عمر پروژه‌های نرم‌افزاری

چرخه عمر پروژه به چند مرحله تقسیم می‌شود:

  1. طرح کلی: در این مرحله، عدم قطعیت بالاتر است و هدف پروژه تعریف می‌شود.
  2. توسعه: در مرحله توسعه، برنامه‌های کاری پروژه و میزان بودجه آن مشخص می‌شود.
  3. پیاده‌سازی: در این مرحله، کار اصلی انجام پروژه و فرایند تولید محصول یا خدمت شروع می‌شود. بخش اصلی اجرای پروژه در این قسمت قرار دارد و معمولا مدت زمان این مرحله بیشتر از سایر مراحل است.
  4. پایان: مرحله پایان، شامل تکمیل‌کار و ارائه آن به اسپانسر یا مشتری است.این بخش شیرین‌ترین بخش اجرای پروژه است!

پروژه‌های نرم‌افزاری نیز از همین چرخه عمر پیروی می‌کنند. برای چرخه عمر پروژه مدل‌های مختلفی وجود دارد که در زیر به مهمترین آنها اشاره شده است.

  • مدل آبشاری:

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

 

  • مدل مارپیچ:

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

  • مدل افزایشی:

در این مدل با آزادی می‌توانید به اضافه‌کردن قابلیت‌های جدید بپردازید.

قسمت‌های پروژه به طور جداگانه ایجاد و آزمایش می‌شوند.

 

  • مدل چابک:

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

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