ALM چیستی و چرایی !

در صنعت نرم‌افزار مفهومی به نام ALM و یا Application Life cycle Management وجود دارد.اگر به صورت کلمه به کلمه این مفهوم را تعریف کنیم به چیزی شبیه : مدیریت قبل از تولد تا مرگ نرم افزار(!) می‎‌رسیم.

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

ALM Processes
ALM Processes

تعریف جذاب تری از ALM را در وبسایت Stackify می‌توان یافت (نسخه ترجمه شده در بلاگ اسکرام)که :

ALM, is an integrated system of people, processes, and tools that manage the life an application from concept to retirement.

که به فارسی معادل :

ALM یک روال از افراد، رویه ها و ابزار های در جهت مدیریت یک نرم افزار از ایده تا بازنشستگی را تشکیل می دهد.

در حقیقت ALM، یک اسلوب یا متودولوژی در صنعت نرم افزار -شامل مجموعه ای از رویه ها و ابزار های استاندارد شده برای رسیدن یک ایده به مرحله اجرایی شدن- می‌باشد.بخش‌های مختلفی در ALM وجود دارند که هر کدام اهداف خاصی را دنبال می کنند که به شرح زیر قابل دسته بندی می‌باشند :

ابزار و روش‌های مربوط به تحلیل و مدیریت نیاز ها

این رویه‌ها و ابزار‌ها به شما کمک می‌کنند تا نیاز‌های نرم‌افزار را مدیریت کنید و حتی این امکان را برای تیم ها به وجود می آورد که اتصال و ترکیب داستان های کاربر با Test ها و موارد کاری برقرار شود.

برنامه زیری و تخمین

این بخش به تیم ها اجازه برنامه ریزی فعالیت ها در جهت تولید نرم افزار را بر اساس متودولوژی های روز دنیا را می‌دهد.ابزار های ALM به گونه ای طراحی شده اند که چه درحال کار با متودولوژی Agile یا Scrum باشید و چه Waterfall قابل استفاده باشند.

توسعه کد

مرحله بعد از برنامه ریزی و تخمین مسائل مربوط به توسعه نرم افزار می باشد.ابزار های ALM شامل ابزار هایی برای انجام هرچه بهتر فعالیت های مربوط به توسعه می‌باشد، مانند، Source control ها و یا Task management.

تست و تضمین کیفیت

یکی از مهمترین بخش های ALM مدیریت تست و تضمین کیفیت می‌باشد که توسط ابزار های محتلف کنترل میگردند.این دسته ابزار ها برای مدیریت تست، اجرای آن و همچنین طراحی برنامه های تست (Test Plan) می‌باشد.بحث های مربوط به Automated Test ها نیز زیرمجموعه همین بخش می‌باشند.


استقرار و DevOps

اگرچه این مرحله معمولا از مراحل زیر مجموعه ALM به شمار نمی‌رود ولی در ابزار هایی که اکنون در بازار وجود دارند، مباحث مربوط به CI و یا قابلیت اتصال به این نوع ابزار ها یک مزیت به شمار می‌رود.


نکته مهم در ALM درک تفاوت آن با SDLC و یا Software Development Life Cycle است.در حقیقت SDLC یک زیر مجموعه کوچک از مفاهیم ALM می‌باشد که در زیر مجموعه آن ابزار هایی مانند: SCM،Task Management و ... وجود دارد.

در دنیا ابزار های بسیار متنوعی برای ALM وجود دارند که تا به امروز احتمالا با برخی از آنها مواجه شده باشید.بخشی از بهترین ابزار های SDLC در دنیا شامل لیست زیر می شوند :

یکی از مقبول ترین این ابزار ها که در ایران بیشترین استقبال از آن به عمل آمده است، TFS شرکت Microsoft می‌باشد که به اشتباه در ایران به عنوان فقط SCM شناخته می‌شود.در صورتی که این ابزار شامل بخش‌های مختلفی که در بالا ذکر شده می‌باشد.

در پست بعدی مراحل نصب TFS 2018 بر روی یک سرور خصوصی به عنوان یک ALM Tools بیان خواهد شد.