Software Release Life Cycle یا چرخه زندگی انتشار نرمافزار فرایندی ۷ مرحلهای در فرایند توسعه و خلق محصولات نرمافزاری است. درک استفاده و یادگیری این مراحل یکی از موضوعات مهمیست که مدیران محصول (Product Managers) باید با آن آشنا باشند و بتوانند محصول شرکت را از این مراحل عبور دهند.
برای درک بهتر SRLC میتوان آن را مانند بزرگ شدن یک انسان در نظر گرفت. حالتی که در آن هر فرد در مراحل مختلفی از رشد قرار گرفته و در هر مرحله نیازهای متفاوتی برای پیشرفت کردن دارد. دنیای نرمافزار نیز دقیقا چنین مراحل و Stageهایی دارد.
در این مطلب از وبلاگ همروش قصد داریم ابتدا بهصورت کامل با چیستی SRLC آشنا شویم و سپس مراحل مختلف آن را با جزئیات کامل بررسی کنیم.
SRLC چیست؟
چرخه زندگی انتشار نرمافزار یا SRLC به مجموعهای از مراحل توسعه نرمافزار اطلاق میشود. این مراحل از ایده اولیه شروع شده و تا ساخت خود نرمافزار ادامه پیدا میکند. طول این مراحل به فاکتورهای مختلف مانند نوع محصول (نوع نرمافزار)، کاربری آن، امنیت، استانداردهای همگانی و… بستگی دارد.
مراحل SRLC بهصورت خطی بوده و نیاز است که برای گذراندن هر مرحله، قدم پیش از خود بهطور کامل انجام شده باشد. هر مرحله هدف تعیین شدهای داشته و نیاز است که در اتمام آن مرحله، به هدف مورد نظر دست پیدا کنیم.
مراحل چرخه زندگی انتشار نرمافزار ممکن است کمی با SDLC یا چرخه زندگی توسعه نرمافزار در تضاد باشد. دلیل آن نیز قرار گرفتن فرایند خطی در مقابل فرایند حلقهای است. در SDLC مراحل بهصورت حلقهای پیش میروند و هر مرحله ممکن است چندین بار تکرار شود. در تصویر زیر میتوانید این فرایند را بهتر درک کنید:
با وجود تضاد ساختاری که این دو حالت دارند، اما با درک و پیادهسازی مناسب هرکدام میتوانید از ۲ مزیت زیر استفاده کنید:
- دانش SRLC میتواند به سادهسازی انجام کارها در فرایند SDLC کمک کند.
- دانش SDLC میتواند با تخصیص منابع درست در حین توسعه، بیشترین بهرهوری را برای هر مرحله از SRLC به همراه داشته باشد.
مراحل و استیجهای SRLC
مراحل SRLC بهطور کلی شامل دو بخش اصلی میشوند که در هرکدام از این بخشها مراحل پیشرفت مختلفی دارند. این دو بخش با نامهای Testing and Development Period و Release Period از همدیگر جدا شدهاند.
بخش تستینگ و توسعه
فاز تستینگ و توسعه، جاییست که بیشتر فرایندهای خلق نرمافزار انجام میشود. بهصورت استاندارد در فاز تستینگ و توسعه، چهار مرحله مشارکت دارد که عبارت از: Pre-alpha ،Alpha ،Beta ،Release Candidate است. در هر کدام از این مراحل دو موضوع توسعه و تست ثابت بوده و همواره انجام میشود. در ادامه با هر کدام از این موارد بهصورت جداگانه آشنا خواهیم شد:
Pre-Alpha
مرحله Pre-Alpha اولین مرحله از فرایند SRLC بوده و تمام تمرکز آن روی توسعه محصول است. بنابراین در این مرحله صحبتی از معرفی محصول و Release کردن آن نیست. بیشتر کارهایی که در این مرحله انجام میشود شامل، آنالیز، طراحی، توسعه و تست واحد یا Unit Testing است.
عمدتا در این مرحله اساسیترین ویژگیهای محصولات پیادهسازی شده و روی جزئیات چندان تاکیدی نمیشود. همچنین میتوان این مرحله را پُر باگترین استیج، در فرایند توسعه نرمافزار دانست.
Alpha
مرحله آلفا عمدتا بهعنوان مرحله تست نیز شناخته میشود. جایی که در آن توسعهدهندگان و کارمندان داخلی شرکت روی نسخه کنونی نرمافزار، تستهای مختلفی را انجام داده و آماده توسعه نسخهای با اشکالات کمتر هستند. در این مرحله بهصورت استاندارد، نسخهای برای تست کردن توسط مشتریان و کاربران واقعی منتشر نخواهد شد. بجای آن یکسری افراد خارج از شرکت بهعنوان Tester انتخاب شده و با نسخه Alpha کار میکنند.
در مرحله Alpha انتظار میرود که تمام ویژگیهای اصلی نرمافزار پیادهسازی شده باشند و سعی میشود قبل از وارد شدن به مرحله بعدی (بتا) تمام مشکلات و نواقص رفع شود.
Beta
پس از پیادهسازی تمام ویژگیها و تستها در نسخه آلفا، در مرحله بتا، نرمافزار ما برای استفاده توسط افراد و کاربران واقعی آماده میشود. از آنجایی که در این مرحله، نرمافزار عملا منتشر میشود، انتظار میرود که باگهای بیشتری پیدا شده و تسترهای بیشتری برای محصول پیدا شوند.
این شرایط به شرکتهای نرمافزاری کمک میکند تا با درک بهتری از اینکه نرمافزارشان چگونه در دنیای واقعی کار میکند روبهرو شوند.
پیادهسازی سازوکاری برای ارسال فیدبک توسط کاربران واقعی یکی از مهمترین موضوعاتیست که توسعهدهندگان در این مرحله پیش از انتشار باید آن را به انجام برسانند. با دریافت بیشتر فیدبکها از طرف کاربران واقعی، میتوانید ضعفهای نرمافزارتان را در استفادههای روزمره مشاهده کنید.
Release Candidate
RC یا Release Candidate نسخهای پیشا-انتشاری (Pre-Release) از نرمافزار است که برای توزیع نسخه نهایی آماده میشود. با وجود اینکه انتظار میرود این نسخه بدون مشکل باشد اما باز هم میتواند به مشکل برخورده و با تغییرات روبرو شود.
در نهایت انتظار میرود که RC بهترین نسخه از نرمافزار مورد نظر بوده (آماده انتشار عمومی) و بتواند در مقابل تستهای مختلف، بهصورت موفقیتآمیز عمل کند.
شروع انتشار
چهار مرحله قبلی که بررسی کردیم روی توسعه و تستینگ تمرکز داشت. از این نقطه به بعد بیشتر مراحل روی انتشار و توزیع نرمافزار تمرکز خواهند داشت.
Release to Manufacturing
RTM یا Release to Manufacturing شامل تمام حالتهایی است که منجر به توزیع و نشر نرمافزار میشود. شکل توزیع میتواند براساس نیازها و ساختار خود اپلیکیشن متفاوت باشد. برای مثال انتشار روی DVD، قرار دادن اپلیکیشن روی فضای میزبانی ابری، استفاده از مارکتپلیسها، گیتهاب و… .
زمانی که این مرحله بهدرستی انجام شود و نرمافزار برای تهیه کردن در اختیار مخاطبین قرار بگیرد، وارد فاز بعدی میشود.
General Availability
بعد از انتشار عمومی، نوبت General Availability یا دسترسیپذیری همگانی است که یکی از مراحل مهم در نشر حداکثری نرمافزار بهحساب میآید.
بازاریابی برای محصول، قرار دادن اخبار مربوط به توزیع نرمافزار در شبکههای اجتماعی، آگاهیبخشی همگانی و… از جمله کارهاییست که در این مرحله برای آگاهی حداکثری از نرمافزار باید انجام شود.
جدای از این موارد، در این مرحله باید روی نیازهای جدید کاربران تحقیق بهعمل آمده و این درک درست شود که در آینده چه تغییراتی برای بهبود نرمافزار نیاز است.
Production Release
مرحله نهایی در SRLC مربوط به Production Release میشود. این مرحله زمانی به انجام میرسد که، محصول نهایی به دست مشتری میرسد. برخلاف چرخه زندگی توسعه نرمافزار که در آن مراحل در یک حلقه قرار گرفته و همه چیز تکرار خواهد شد، در SRLC این نقطه را به عنوان نقطه پایانی در نظر میگیریم. اما اگر قصد داشته باشیم که ویژگیهای جدیدی را به نرمافزار اضافه کنیم نیاز خواهیم داشت که تمام مراحل را تکرار کنیم.
در مرحله نهایی یکی از مهم ترین کارهایی که باید انجام شود «پشتیبانی سرویس» است. پشتیبانی سرویس یا نرمافزار همواره باید بتواند مشکلات کاربران در کار کردن با سرویسها را برطرف کرده و در دسترس باشد.
در پایان
چرخه زندگی انتشار نرمافزار یکی از مهمترین موضوعات در دنیای توسعه نرمافزار و محصولات مرتبط بوده و بسیار مهم است که فرایندها و مراحل گفته شده برای انتشار موفقیتآمیز نرمافزار در نظر گرفته شود.
در این مطلب از وبلاگ همروش، ۷ مرحله اصلی برای انتشار نرمافزار را بررسی کردیم و همچنین نگاه کوچکی به تفاوتهای SRLC و SDLC انداختیم.