فرآیند تولید نرم افزار

فرآیند تولید و توسعه نرم افزار

تولید و توسعه نرم افزار معمولا چرخه ای است که در آن نرم افزار تحلیل، طراحی، پیاده سازی، تست و نصب می شود. الگو ها و روش های متفاوتی برای اولویت بندی مراحل و نحوه تولید نرم افزار وجود دارد. عمده ترین دسته های تولید نرم افزار روش های مبتی بر هزینه (سرعت)، یا روش های مبتنی بر کیفیت نرم افزار هستند. اکثر الگوهای امروزی بصورت چرخه مارپیچی یا تکرار شونده تعریف می شوند. یعنی در بازه های زمانی خاص مراحلی از تولید نرم افزار تکرار می شوند. با این تکرار، نرم افزار نهایی به نظر مشتری نزدیکتر شده و مشکلات زودتر خود را نشان می دهند.

 

تحلیل و طراحی

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

تولید و پیاده سازی نرم افزار

در این فاز طراحی هایی که قبلا بصورت نقشه راه درآمده به برنامه نویس داده می شود و فرم ها، گزارش ها ، اپلیکیشن ها، سرویس ها و غیره تولید می شوند. معمولا این فاز با بقیه فاز ها تکرار می شود و با تایید مشتری و طراحی دوباره ، تولید و تست تکرار می شود. متدلوژی های مختلفی برای روش های سرعت دهی این قسمت وجود دارد که در حال تکمیل هستند. اکثر روش های امروزی مبتنی بر متدلوژی چابک (Agile) هستند و از روش اسکرام برای شفاف سازی کارهای تولید استفاده می شود. بر اساس تجارب معرفی شده در DevOps روش های چابک گرایی، و تولید ناب (LEAN) جهت کم کردن هزینه ها بسیار موثر هستند. بطور کلی دو سیاست کلی متفاوت باید جهت تولید نرم افزار اتخاذ کرد که در شرکت فرآیند مدار نت نیز استفاده می شود. یا باید کیفیت همیشه در بالاترین سطح باشد و در جهت بهبود سرعت و کم کردن هزینه ها بکوشیم (مانند مایکروسرویس ها)، یا باید هزینه و زمان ثابت باشد و در جهت ارائه کیفیت بهتر نرم افزار بکوشیم.

تست

لازمه تامین کیفیت نرم افزار تست است. باور غلط درباره تست نرم افزار این است که بعد از مرحله پیاده سازی باید تست انجام شود. تست از روز اول باید جزو اولویتهای کار باشد. مثلا تست راحتی کار کاربر ، فقط با داشتن ظاهر UI قابل انجام است.

بطور کلی 4 سطح تست نرم افزار داریم. تست پذیرش، تست سیستم، تست یکپارچگی و تست واحد. تست های واحد و یکپارچگی بصورت کد برنامه نوشته می شوند و بصورت خودکار با زدن یک دکمه قابل انجام هستند. تست سیستم توسط اپراتور انجام می شود و تست پذیرش توسط مشتری. همه این تست ها باید صورت بپذیرد و باید در زودترین زمان ممکن نحوه انجام تست مشخص شود (مثلا تست واحد قبل پیاده سازی و تست پذیرش قبل از طراحی). بدین صورت می توان به کیفیت بالای نرم افزار فکر کرد.

نصب

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

بر اساس رهنمودهای DevOps ، بسیاری از کارهای بخش نصب و تست باید بصورت اتوماتیک انجام شوند و ابزارهای مناسبی جهت خودکارسازی فرآیندهای جانبی تولید نرم افزار وجود دارد. شرکت فرآیند مدار نت از پیشگامان ارائه خدمات خودکار است که در آن کیفیت تولید بسیار بالا و سرویس های تولید نرم افزار بدون دخالت دست و در سریعترین زمان انجام می پذیرد.

شرکت های نرم افزاری جهت آشنایی با رهنمودهای DevOps و خودکارسازی فرآیندهای نرم افزاری می توانند با مشاوران ما تماس بگیرند.