برنامه‌نویسی

چرخه‌ی توسعه‌ و مدیریت منابع نرم‌افزاری


۱۰ اردیبهشت ۱۴۰۰
چرخه‌ی توسعه‌ و مدیریت منابع نرم‌افزاری

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

هدف از مدیریت منابع نرم‌افزاری چیست؟

پیش‌بینی، تخصیص، برنامه‌ریزی، پیگیری و بهینه‌سازی تیم از هدف‌های مدیریت منابع نرم‌افزاری است یعنی باید زمان و بودجه را برای ارائه‌ی نهایی نرم‌افزار و پروژه‌هایی با حداکثر کارایی، مدیریت کرد.

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

اما اختصاصی بودن چرخه‌ی توسعه‌ی نرم‌افزار است که باعث برجسته‌تر شدن و اهمیت مدیریت منابع در پروژه‌‌های نرم‌افزاری می‌شود. SDLC (Software Development Life Cycle) فرایندی برای برنامه‌ریزی، ساخت، تست و استقرار نرم‌افزار است که در ادامه با جزئیات بیشتر به آن می‌پردازیم.

مراحل SDLC

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

۱) بررسی و تجزیه و تحلیل نیازها

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

تجزیه و تحلیل این داده‌ها به شناسایی خطر‌های آینده کمک می‌کند و از همان ابتدای پروژه می‌توان استراتژی‌هایی برای کاهش خطرها درنظر گرفت.

خروجی‌های این مرحله شامل برنامه‌ریزی پروژه، مستندسازی مشخصه‌های برنامه و برآورد هزینه‌ها است. SRS یا Software Requirement Specification باعث می‌شود که توسعه‌دهندگان با درک بهتر از خواسته‌های مشتریان به توسعه‌ی پروژه بپردازند و همچنین همکاری بهتری میان اعضا شکل بگیرد.

۲) امکان‌سنجی

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

۳) طراحی پروتوتایپ نرم‌افزار

در این مرحله است که تیم توسعه‌ باید براساس مشخصه‌ها به طراحی معماری نرم‌افزار بپردازد و بهینه‌ترین طراحی را ارائه دهد. الزام‌های موجود در SRS روش‌های طراحی را تعیین می‌کند. برخی مشخصه‌های نرم‌افزاری به شرح زیر است:

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

۴) توسعه‌ی نرم‌افزار

توسعه‌ی نرم‌افزار طولانی‌ترین مرحله از بین مراحل SDLC است. توسعه‌دهندگان با برنامه‌نویسی و نوشتن کدهای مختلف به توسعه‌ی محصول نهایی که با نیازهای مشتری مطابقت داشته باشد می‌پردازند.

توسعه‌ی نرم‌افزار به وظایف مختلفی تقسیم می‌شود و برنامه‌نویسان باید زمان مختلفی را به هر کدام از مراحل برنامه‌نویسی، unit test و یافتن خطاهای برنامه اختصاص دهند.

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

۵) تست نرم‌افزار

ممکن است تست نرم‌افزار در مرحله‌ی توسعه‌ی نرم‌افزار انجام شود اما اولویت با توسعه‌ی کدها است بنابراین می‌توانید تست نرم‌افزار را در مرحله‌ی دیگری انجام دهید. در این مرحله تیم QA موظف است که کیفیت محصول را تضمین کند یعنی عملکرد و ساختار برنامه را بررسی کرده و وضعیت برنامه را در ترافیک بالا بسنجد.

اگر در این مرحله اشکالی پیدا شود تیم QA موظف است که مشکل‌ها را به توسعه‌دهندگان گزارش دهد و هر بار مرحله‌ی توسعه و تست نرم‌افزار تکرار می‌شود تا تمام اشکال‌های موجود برطرف شوند.

۶) استقرار و مستندسازی

اشکال‌ها در این مرحله برطرف شده است و زمان آن فرا رسیده که از محصول نهایی رونمایی کنیم. نرم‌افزار نهایی در این مرحله از مرحله‌ی development به مرحله‌ی production منتقل می‌شود و برخی کاربرهای محدود می‌توانند با نرم‌افزار تعامل داشته باشند.

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

۷) نگهداری از نرم‌افزار

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

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

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

منبع: https://beyond-average.hashnode.dev/software-development-life-cycle-and-resource-management