ALM چیست و جایگاه آن در سازمان ها

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

مسئولین IT های سازمان ها سوال می پرسند که از کجا شروع کنیم ؟ چگونه شروع کنیم ؟ چگونه Agile  را در سازمان برای توسعه نرم افزار به کار بگیریم؟ ایده چگونه باید نرم افزار بشود ؟مرگ نرم افزار کی فرا می رسد ؟

جواب این است که شما باید با مفهوم ALM یا همان Application Life cycle Management آشنا بشوید و در واقع هدف اصلی این پست تبیین و توضیح ALM است.

ALM چیست ؟

ALM یک Business Process برای مدیریت چرخه نرم افزار از ایده تا مرگ است. بعضی از دوستان ALM را با SDLC اشتباه می گیرند در حالیکه خود SDLC (همان چرخه توسعه نرم افزار) داخل ALM قرار دارد و به عبارتی SDLC جزئی از ALM است.

ALM شامل 3 زمان ایده , Deployment  و مرگ نرم افزار است. در هر زمان یا فواصل بین زمان ها نمود و یا جنبه ای از ALM انجام می شود که به اینها جنبه و یا نمود ALM گفته می شود که به شرح ذیل هستند:

  • Governance : تصمیم گیری
  • Development : توسعه
  • Operation : عملیات

برای درک بهتر و راحتر مطلب به شکل زیر توجه نمایید :

Governance یا تصمیم گیری

این نمود از ALM از زمان ایده تا زمان مرگ نرم افزار ادامه دارد . این نمود بیشتر در مورد تصمیم گیری ها خواهد بود. بعبارتی تصمیات کلیدی و مدیریتی طی این نمودگرفته خواهند شد.

تصمیم گیری هایی که در این نمود انجام می شوند به صورت زیر می باشد :

  • کدام نرم افزار خاص باید توسعه داده شود ؟ (Business Case Development – Project Approved )
  • منابع چگونه برای نگه داری این نرم افزار باید توزیع شوند ؟ (PPM APM)
  • چه زمانی باید این  نرم افزار از رده خارج شود ؟

اینها تصمیمات کلیدی هستند که باید طی نمود Governance گرفته شوند و همانطور که قابل درک است اینها تصمیمات مدیریتی هستند که باید توسط مدیران IT و سازمان گرفته شود. شکل بالا به صورت توالی زمانی و کاملاواضح نمود Governance را تشریح کرده و نیازی به توضیح اضافی نیست.

Development یا توسعه

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

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

همانطور که می دانید در روش های چابک کارها و پیاده سازی ها طی تکرارها یا Iterative های متوالی انجام می شود که به این تکرار ها در اسکرام اسپرینت گفته می شود. در اول هر اسپرینت تعدادی نیازمندی انتخاب و در طی اسپرینت نیازمندی ها پیاده سازی می شود . همانند شکل زیر :

اما در نمود توسعه علاوه بر SDLC وظایف Maintenance یا نگه داری هم انجام می شود که برای حفظ نرم افزار ضرروری است.

Operation یا عملیات

این نمود شامل دو عملیات کلی Monitor کردن نرم افزار و Deployment است. عملیات Deployment این نمود بعد از هر SDLC و یا Update  بخشی از نرم افزار شروع و خاتمه پیدا می کند . ولی عملیات Monitoring  از اولین و حتی قبل از اتمام SDLC اول شروع و تا زمان مرگ نرم افزار ادامه پیدا می کند. در مونتیورینگ اشکالات و کمبود های نرم افزار کشف و برای آنها تصمیم گیری می شود و سپس براساس تصمیم گیری توسعه پیدا می کنند .

ALM چگونه ؟

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

شرکت های بزرگی مانند مایکروسافت و یا IBM ابزارهای خوبی در این خصوص ارائه داده اند . مایکروسافت TFS یا Team Foundation Server  خود را معرفی کرده و IBM نرم افزار Jazz server را معرفی کرده است . بدلیل اینکه اکثر دوستان از Visual Studio استفاده می کنند من هم پیشنهاد می کنم برای این منظور از TFS به همراه Visual Studio استفاده نمایید زیرا که یکپارچگی خوبی ایجاد می شود .

چابک و موفق باشید

درباره اسد صفری

اسد صفری – مربی تحول چابک سازمان و تیم های نرم افزاری. مدارک حرفه ای: CSP - CSM - PSM - PSPO - CDA - Management 3.0 برخی تجربیات: رئیس دفتر تحول چابک شرکت داده ورزی سداد(بیشتر از ده تیم نرم افزاری) - مربی چابک شرکت رامند (تیم های موبایل و گیم سازی) - مدیر تولید نرم افزار SimplyDesk برای شرکت فرانسوی PCI - مربی مشاور شرکت های:خدمات انفورماتیک، ارکید فارمد، فراداده، الفبا برخی از سوابق مشاوره کوتاه مدت و تدریس : علی بابا، فناپ، تجارت الکترونیک پارسیان، بیمه سامان، مهندسین مشاور تجارت (بانک تجارت)، بیمه ایران، پارس آنلاین، شرکت رهنما، ورانگر، انتشارات پزشکی کوثر، فولا آلیاژی یزد، پارک علم فناوری کردستان و ... . عضو انجمن های بین المللی Agile Alliance - Scrum Alliance

2 دیدگاه در “ALM چیست و جایگاه آن در سازمان ها

  1. سلام
    ممنون از مقاله جالب و کاملا متفاوت
    من درباره ALM زیاد مطالب خونده بودم ولی تا این عمق متوجه نشده بودم. بسیار مقاله واضح و مفیدی بود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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