چرخه عمر توسعه نرم افزار
در زندگی چیزهای زیادی وجود دارند که با کمی توجه، خیلی بهتر می شوند: روابط دوستانه، برنامه تعطیلات آخر هفته، نوع لباسی که می پوشیم و …. اما توسعه نرم افزار یکی از آنها نیست.
بنجامین فرانکلین می گوید:
“اگر در برنامه ریزی شکست بخورید، در حال برنامه ریزی برای شکست هستید.”
تمام نرم افزارهای عالی، با یک برنامه و فرآیند واضح شروع شده اند. خوشبختانه، فرآیندهای توسعه نرم افزار متنوعی وجود دارد که می توانید هنگام شروع پروژه یکی از آنها را انتخاب کنید.
اما کدام فرآیند توسعه نرم افزار برای شما مناسب است؟
در این مقاله، ابتدا اصول چرخه عمر توسعه نرم افزار Software Development Lifecycle (SDLC) را به شما آموزش می دهیم، چون درکش بسیار مهم است.
چرخه عمر توسعه نرم افزار هفت بخش دارد:
- تحلیل و برنامه ریزی
- ملزومات
- طراحی و نمونه سازی
- توسعه نرم افزار
- آزمایش نرم افزار
- استقرار نرم افزار
- تعمیر، نگهداری و بروزرسانی نرم افزار
چرخه عمر توسعه نرم افزار چیست و چه اهمیتی دارد؟
تمام نرمافزارها از ایده تا راهاندازی مسیری مشابه را طی میکند. مراحل این مسیر را چرخه عمر توسعه نرم افزار (به اختصار SDLC) می نامند. چرخه عمر توسعه نرم افزار مراحلی است که در طول توسعه یک نرم افزار انجام می شود. معمولا در هر مرحله از چرخه عمر توسعه نرم افزار یک خروجی (ایده، سند، نمودار، یا قطعه ای از نرم افزار) ایجاد می شود که به عنوان ورودی مرحله بعد استفاده می شود. به همین ترتیب کار ادامه پیدا می کند تا زمانی که به هدف برسیم.
چرخه عمر توسعه نرم افزار هرگز واقعاً “تمام” نمی شود. حتی انتشار اولین نسخه برنامه را می توان گام دیگری در چرخه عمر نرم افزار دانست.
حتی اگر فکر می کنید که میتوانید نرمافزاری را بدون فرآیند چرخه عمر توسعه نرم افزار راهاندازی کنید، اکیدا توصیه می کنم که این کار را نکنید. به لطف سال ها آزمایش، تکرار و توسعه، فرآیندهای توسعه نرم افزار به شما کمک می کنند تا توسعه نرم افزار ارزان تر، کارآمدتر و کم استرس تر شود.
استفاده چرخه عمر توسعه نرم افزار مزیت های دیگری نیز دارد:
- در هر مرحله از مسیر تعاریف مشترک ایجاد می کند.
- کانال ارتباطی و انتظارات توسعه دهندگان و ذینفعان پروژه را تعریف می کند.
- نقش ها و مسئولیت های روشنی را برای کل تیم (توسعه دهندگان، طراحان، مدیران پروژه و غیره…) تعیین می کند.
- پارامترهای تایید انجام صحیح کار در هر مرحله را مشخص می کند.
- نحوه رسیدگی به باگ ها، درخواست ها و بهروزرسانیها را مشخص میکند.
عدم وجود برنامه توسعه نرم افزار به معنای زمان طولانی تر، کیفیت پایین تر یا حتی شکست کامل پروژه است. اگر برنامه توسعه نرم افزار نداشته باشید، توسعه دهندگان دقیقا نمی دانند چه چیزی بسازند. مدیران پروژه هیچ سرنخی نخواهند داشت که چقدر پیشرفت داشتهاید و آیا شما در مسیر تکمیل پروژه هستید یا خیر!
آشنایی با 7 مرحله چرخه عمر توسعه نرم افزار
اگر مدیر پروژه هستید، احتمالاً از قبل با مراحل مختلف چرخه عمر توسعه نرم افزار آشنایی دارید. به عنوان مدیر پروژه دیجیتال باید در مورد همه چیز از الزامات گرفته تا ارتباطات ذینفعان، توسعه و نگهداری مداوم فکر کنید. این مراحل در تمام فرآیندهای توسعه نرم افزار تقریباً یکسان است. با این حال، همانطور که بعداً به آن خواهیم پرداخت، ترتیب و توالی آنها میتواند بسته به نیازها، اهداف، پروژه و اندازه تیم تغییر کند (به عنوان مثال، برخی از مراحل ممکن است با هم ترکیب شوند، تکرار شوند یا به صورت موازی اجرا شوند).
-
تحلیل و برنامه ریزی
هنگامی که یک مشتری یا ذینفع پروژه ای را درخواست کرد، اولین مرحله از چرخه عمر توسعه نرم افزار، برنامه ریزی است. در این مرحله موارد زیر را بررسی کنید:
- همسویی: آیا این پروژه به ماموریت و اهداف شرکت شما مرتبط است؟
- در دسترس بودن و تخصیص منابع: آیا افراد و ابزارهای مورد نیاز برای انجام این کار را دارید؟ یا نیاز به استخدام افراد جدید دارید؟
- زمانبندی پروژه: آیا این پروژه با اهداف و سایر وظایف شرکت شما مطابقت دارد؟
- برآورد هزینه: هزینه انجام پروژه چقدر است؟ آیا منابع کافی در اختیار دارید؟
مرحله برنامه ریزی تضمین می کند که قدم اول را درست بردارید. بنابراین مطمئن شوید که همه بخشهای پروژه (مدیران، توسعهدهندگان، عملیات، امنیت و سهامداران) را بررسی و تحلیل کرده اید. در پایان مرحله برنامه ریزی، باید سند محدوده کاری (Scope of Work (SOW)) داشته باشید. در سند محدوده کاری، اهداف پروژه، مواردی که باید تحویل داد، جدول زمان بندی، نقاط عطف، گزارشات دوره ای، تکالیف طرفین قرارداد، موارد قابل تغییر، اطلاعات مالی، نتایج مورد انتظار و شرایط و الزامات پروژه به وضوح مشخص شده است. سند محدوده کاری جلوی سردرگمی، اختلاف نظر، سوء تعبیر، فراموشی، دوباره کاری و مشکلات زیادی را خواهد گرفت.
-
الزامات فنی
قدم بعدی درک الزامات فنی پروژه است. هر نرم افزار باید مشکل مشتری را حل کند. همانطور که از مرحله برنامه ریزی پیش می روید و سند محدوده کاری را تکمیل می کنید، سوالاتی در مورد جزئیات این پروژه بپرسید، مانند:
- این پروژه چه مشکلی را حل می کند؟
- چه کسی قرار است از آن استفاده کند و چرا؟
- چه نوع ورودی/خروجی داده مورد نیاز است؟
- آیا نیاز به ادغام با ابزارها یا APIهای دیگر دارد؟
- چگونه امنیت/حریم خصوصی را مدیریت خواهید کرد؟
هنگامی که تیم توسعه دهنده پاسخ سؤالات فوق را دریافت کرد، می تواند الزامات فنی و فناوری های مورد نیاز را بررسی کند.
-
طراحی و نمونه سازی
پس از تعیین الزامات فنی، زمان آن فرا رسیده که طراحی نرم افزار را آغاز کنیم. در این مرحله در مورد زیبایی شناسی صحبت نمی کنیم، بلکه عملکرد برنامه مورد نظرمان است. به قول استیو جابز:
طراحی فقط چیزی که می بینیم و حس می کنیم نیست. طراحی، چگونه کار کردن است.
بسته به فرآیند توسعه نرمافزاری که دنبال میکنید، شاید در این مرحله از چرخه عمر توسعه نرم افزار نیاز باشد wireframes سادهای ایجاد کنید تا نشان دهید تعاملات در نرمافزار چگونه کار میکنند. شاید هم تصمیم بگیرید نمونههای اولیه کاملتری را توسط ابزاری مانند Marvel یا InVision برای آزمایش با کاربران بسازید.
این مرحله به تیم شما و مشتری یا ذینفع کمک می کند تا ایده های اولیه را تأیید کنند و قبل از اینکه ایده ها را به کدنویسی تبدیل کنید، بازخورد ارزشمندی دریافت کنید.
-
توسعه نرم افزار
پس از آنکه تمام افراد ذینفع در پروژه، با عملکرد و طراحی پیشنهادی نرم افزار همراه شدند، زمان آن رسیده که آن را مطابق با الزامات فنی و سند محدوده کاری بسازیم. بدیهی است که این مرحله سختترین و بالقوه خطرناکترین مرحله چرخه عمر توسعه نرم افزار است. آنچه بسیار مهم است پایبندی به سند محدوده کاری برای جلوگیری از بروز مشکلات احتمالی و تولید نرمافزار کارآمد است.
-
آزمایش
همزمان با توسعه نرم افزار، باگ ها بررسی، ردیابی و رفع می شوند. با این حال، هنگامی که محصول کامل و آماده به کار در نظر گرفته شد، باید مرحله دیگری از آزمایش های تخصصی را انجام دهید. در این مرحله می توانید محصول را برای گروه کوچکی از آزمایش کنندگان بتا یا استفاده از ابزارهای UX منتشر کنید تا نحوه تعامل کاربران با محصول ردیابی شود.
این مرحله میتواند مرحله ای طولانی در چرخه عمر توسعه نرم افزار باشد. بسیار مهم است که مطمئن شوید نرمافزار دارای باگ را برای مشتریان واقعی ارسال نمیکنید. وجود مشکل در محصول، شهرت شما را از بین می برد، درآمدتان را از دست می دهید و از همه بدتر، ساعت ها وقت تیم را خواهد گرفت تا بجای تمرکز بر ارتقای محصول مجبور به دوباره کاری شوند.
-
استقرار نرم افزار
پس از اتمام کار سنگین کدنویسی، زمان آن رسیده که نرم افزار را به کاربران نهایی عرضه کنید. در اکثر شرکتها، این مرحله باید با استفاده از یک مدل استقرار پیوسته یا ابزار Application Release Automation (ARA) خودکار شود.
-
تعمیر و نگهداری و به روز رسانی
حتی زمانی که نرم افزار در حالت طبیعی قرار دارد، چرخه عمر توسعه نرم افزار تمام نمی شود.
این یک “چرخه زندگی” است، یادتان هست؟
پایان یک مرحله شروع مرحله دیگر است و این پس از استقرار نرم افزار نیز صدق می کند. درخواست های مشتری همیشه در حال تغییر است. هنگامی که مردم از نرم افزار استفاده می کنند، بدون شک باگ هایی را پیدا می کنند، ویژگی های جدیدی درخواست می کنند و عملکردهای بیشتر یا متفاوتی را می طلبند. همه این درخواستها باید به لیست کارهای عقب مانده محصول برگردند تا اولویتبندی شده و بخشی از نقشه راه محصول شوند.
چرخه عمر توسعه نرم افزار که در بالا توضیح دادیم ممکن است یک برنامه گام به گام برای ساختن نرم افزار به نظر برسد، اما در واقع فقط یک دستورالعمل است. اینکه آنها را چگونه، چه زمانی و به چه ترتیبی بررسی کنید به شما بستگی دارد. در طول سال ها، تعدادی از فرآیندهای مختلف توسعه نرم افزار برای مدیریت پروژه های پیچیده رسمیت یافته است که در مقاله بعدی 5 مورد از بهترین فرآیندهای توسعه نرم افزار با مزایا و معایب هر کدام منتشر خواهد شد.
پنج مورد از بهترین فرآیندهای توسعه نرم افزار
تهیه کننده: مهدی کوهستانی
مدیر اجرایی آموزش و مدیر دپارتمان فناوری اطلاعات
لطفا برای مشاهده برنامه کلاس های آموزش برنامه نویسی اینجا کلیک کنید.
مجتمع فنی تهران - نمایندگی گیلان میگوید:
ایمان علوی میگوید:
مجتمع فنی تهران - واحد رشت میگوید: