ورود

View Full Version : IT های سازمانی و توسعه نرم افزار با Agile



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

IT Man های سازمان ها سوال می پرسند که از کجا شروع کنیم ؟ چگونه شروع کنیم ؟ چگونه 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

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

http://sirasad.files.wordpress.com/2010/09/almaspects.jpg

Governance یا مدیریت

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

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

http://sirasad.files.wordpress.com/2010/09/almgovernance.jpg

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

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

Development یا توسعه

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

http://sirasad.files.wordpress.com/2010/09/almdevelopment.jpg

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

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

http://sirasad.files.wordpress.com/2010/09/almsdlc.jpg

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

Operation یا عملیاتی

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

http://sirasad.files.wordpress.com/2010/09/almoperations.jpg

ALM چگونه ؟

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

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

http://sirasad.files.wordpress.com/2010/09/visual-studio-2010-stadium-diagram_thumb.png

منبع : دنیای چابک

موفق باشید