مدیریت پروژه
بررسی تفاوتهای مدیریت چابک (Agile) و دواپس (DevOps)
تکامل توسعه نرم افزار دارای سه نقطه عطف مهم است. ابتدا معرفی روش آبشاری (Waterfall) بود که بر زمان مورد نیاز برای عرضه یک محصول تمرکز داشت. سپس روش چابک (Agile) ارائه شد که چرخه عمر توسعه را بهینه میکند. و در حال حاضر، دواپس (DevOps) در تلاش است تا توسعه و عملیات را متحد سازد تا هر سه روش در کنار هم به عنوان یک تیم واحد کار کنند. این مهم باعث افزایش بهرهوری، بهبود همکاری و ارائه محصولات برتر میشود.
اتخاذ روشهای چابک و دواپس در توسعه نرم افزار، چالش بسیاری را به وجود میآورد. اولین قدم برای غلبه بر این مانع، درک تفاوت بین چابک و دواپس و نقشی است که این روشهای توسعه ایفا میکنند. در متن حاضر برآنیم تا این مسئله را از نظر بگذرانیم.
رویکرد چابک (Agile) چیست؟
چابک روشی است که بر ارائه مداوم تغییرات کوچک قابل کنترل از طریق توسعه و آزمایش تکراری متمرکز است. این مورد به عنوان جایگزینی برای روش سنتی آبشاری معرفی شد، که برای چرخه حیات ساختاری، خطی و پی در پی آن شناخته شده بود.
فرآیندهای پویا مانند مدیریت پروژه و توسعه نرم افزار نیاز به توانایی سازگاری با تغییرات و شرایط جدید دارند. رویکرد آبشاری انعطاف ناپذیر نمیتواند انتظارات دنیای پرشتاب نوآوری مداوم فناوری را برآورده کند. بنابراین، رویکرد چابک متولد شد.
در یک بیان کلی، چابک مدیریت موثر و روزمره پروژههای پیچیده، بهبود ارتباط و همکاری بین اعضای تیم و مشتریان را فراهم میکند.
ارزشهای چابک (Agile)
این روش توسط مانیفست چابک تعریف شده است، ۱۲ اصلی که پایه و ارزشهای رویکرد چابک را تشکیل میدهد.
در قلب توسعه نرم افزار چابک چهار ارزش اصلی وجود دارد:
افراد و تعاملات بیش از فرایندها و ابزارها
این مانیفست بر اهمیت ارزشگذاری هر یک از اعضای تیم و پرورش یک محیط کار سالم و تحریک کننده تأکید دارد. برای به حداکثر رساندن کارایی، ارتباط مداوم بین هم تیمیها را تشویق میکند، بنابراین همه درگیر روند توسعه هستند.
کار کردن نرم افزار بر روی اسناد جامع
مستندات نمیتوانند مانع ارائه درست کار نرم افزار باشند. پیش از این، هر پروژه باید با مستندات دقیق نیازها و انتظارات از نرم افزار در حال توسعه شروع میشد. چابک بر تغییرات آشفته متمرکز است تا نظم مورد نظر را برقرار کرده و از صرف وقت زیاد برای اسنادی که احتمالا بعدا تغییر میکنند، جلوگیری کند.
همکاری مشتری بر سر مذاکره در مورد قرارداد
توسعه مداوم، شامل همکاری منظم با مشتری است. بازخورد فوری، پروژه را به سمتی هدایت میکند که در نهایت بهترین نتیجه را خواهد داشت. مذاکره در مورد قرارداد با مشتری قبل از توسعه و مراجعه مجدد به آن پس از تولید، منجر به سوءارتباط احتمالی میشود که باید از آن اجتناب شود.
پاسخ به تغییر بیش از پیروی از یک برنامه
تغییرات ایجاد شده در اواسط پروژه باید به راحتی پذیرفته شوند زیرا میتوانند به موفقیت کلی محصول کمک کنند. سازگاری با شرایط جدید و پذیرفتن ویژگیهای جدید، یکی از تفاوتهای بارز بین رویکرد چابک و آبشاری است.
توسعه نرم افزار چابک (Agile)
توسعه نرمافزار چابک شامل اجرای چارچوبهای چابک، مانند اسکرام و کانبان است. هر چرخه عمر نرم افزار با تجزیه پروژه به داستانها و الزامات قابل کنترل شروع میشود. وظایف به دو اسپرینت (Sprint) مختلف تقسیم و انجام میشوند. دو اسپرینت طی دو هفته اتفاق میافتد و طی آن تیم تلاش میکند تا یک ویژگی خاص را راهاندازی کند.
در طول دو اسپرینت، تیم بر روی ساخت، آزمایش و استقرار نرمافزار و انجام تنظیمات در طول مسیر تمرکز دارد. پس از اتمام دو اسپرینت، آنها به مرحله بعدی میروند تا پروژه کامل شود. چنین روشی امکان تحویل مداوم نرم افزار را فراهم میکند. در همان زمان، مشتریان، سهامداران و مدیران پروژه میتوانند برای اطمینان از نتایج رضایت بخش، پیگیری و بازخورد خود را ارائه دهند.
برخی از مراحل توسعه همچنین میتوانند شامل فرآیندهای خودکار برای سرعت بخشیدن به ادغام (مانند تست اتوماسیون و مدیریت کد) و اطمینان از عملکرد صحیح همه موارد باشند. مهم این است که در طول توسعه، اعضای تیم با هم همکاری میکنند، به یکدیگر بازخورد میدهند و پس از هر اسپرینت، در جلسات منظم گذشتهنگر، کار خود را بررسی میکنند.
دواپس (DevOps) چیست؟
دواپس یک فرهنگ توسعه نرمافزار است که در آن تیم توسعهدهنده و تیم عملیاتی برای بهبود همکاری و بهرهوری بیشتر در کنار هم قرار میگیرند. این روش همچنین شامل پیادهسازی اصول و روشهای دواپس و استفاده از مجموعهای از ابزارهای دواپس برای آزمایش است.
اصول دواپس باعث تقویت ارتباطات، بر عهده گرفتن مسئولیتهای پایان به پایان (end-to-end) و به اشتراک گذاری اطلاعات میشود. مدیریت و اعضای یک تیم برای کار خود این اصول را از دواپس وام میگیرند، اهداف خود را تعیین میکنند و با توجه به استراتژیهای مطرح شده در کسب و کار مربوطه، کار خود را شروع میکنند.
برخلاف توسعه نرم افزارهای سنتی، دواپس شامل چرخهای مداوم از ساخت، آزمایش، استقرار و نظارت بر نرم افزار است. هدف اصلی دواپس ارائه نرم افزار با کیفیت به طور کارآمد است.
اصول دواپس (DevOps)
شرکتهای بیشتری در حال انتقال به دواپس هستند. پیادهسازی دواپس مزایای بسیاری دارد، مانند استقرار سریع و آسان یکپارچه نرم افزار.
انتقال به این فرهنگ جدید بدون درک ارزشهای اساسی که آن را پیش میبرد، غیرممکن است. این مسئله نیاز به تغییر طرز فکر در گروه توسعه و تیم عملیاتی دارد، که آنها را به کار میگیرد تا به عنوان یک جبهه متحد کار کنند. اصول زیر پایههائی هستند که روند مهندسی را در یک محیط دواپس هدایت میکند.
هفت اصل دواپس
کنترل نسخه
توسعه دهندگان چندین بار در روز تغییرات کد را به یک مخزن مرکزی ارسال میکنند. قبل از ارسال کد به مخزن اصلی (شاخه اصلی)، همه کد باید تأیید شود. برای تسهیل همکاری، سایر توسعه دهندگان میتوانند تغییرات را پیگیری کنند.
ادغام مداوم
اعضای تیم توسعه، کد خود را در یک مخزن مشترک، چندین بار در روز ادغام میکنند. هر توسعه دهنده کار را به چند کد کوچک و قابل مدیریت تقسیم میکند و اختلافات احتمالی ادغام و اشکالات را سریعتر تشخیص میدهد.
تحویل مداوم
از آنجا که کد به طور مداوم ادغام شده است، به طور مداوم به کاربر نهایی نیز تحویل داده میشود. مشارکتهای کوچک اجازه انتشار سریعتر به روزرسانی را میدهد، که عامل مهمی برای رضایت مشتری است.
استقرار مداوم
بخش عمده ای از دواپس، خودکارسازی فرایندها برای سرعت بخشیدن به تولید است. استقرار مداوم شامل انتشار خودکار به روزرسانیهای جزئی است که تهدید قابل توجهی برای معماری موجود نیست.
تست مداوم
چنین استراتژی شامل آزمایش هرچه بیشتر در هر مرحله از توسعه است. آزمایشات خودکار بازخورد ارزشمند و ارزیابی ریسک فرآیند موجود را ارائه میدهند.
عملیات مداوم
تیم دواپس همیشه در حال کار بر روی ارتقا نرم افزار با نسخههای کوچک اما مکرر است. به همین دلیل دواپس نیاز به نظارت مداوم بر عملکرد دارد. هدف اصلی آن جلوگیری از خرابی و مشکلات موجود در هنگام انتشار کد است.
همکاری
یکی از اهداف اصلی دواپس تقویت همکاری و به اشتراک گذاری بازخورد است. توسعه و عملیات برای برقراری ارتباط با خط تولید دواپس نیاز به برقراری ارتباط فعالانه و بازخورد دارند.
مجموعه
دواپس (DevOps)
- تعریف دواپس (DevOps) چیست و چه کاربردهایی دارد؟
- مهندس دواپس (DevOps) کیست و چه کاری انجام میدهد؟
- ۹ اصل اساسی دواپس(DevOps)
- بررسی تفاوتهای مدیریت چابک (Agile) و دواپس (DevOps)
- نقشها و عنوانهای شغلی در دواپس (DevOps)
- معرفی برترین ابزارهای دواپس (DevOps)
- نقشه راه پیادهسازی دواپس (DevOps) در سازمان
- مهمترین سوالات مصاحبه دواپس (DevOps) به همراه پاسخ آنها
- چرخه عمر دواپس چیست و چگونه میتوان آن را مدیریت کرد؟
- معرفی ۱۵ شاخص کلیدی عملکرد در دواپس