شرکتها و سازمانهایی که شغلشان تولید نرمافزار است، تیمهای مختلفی دارند. تیم برنامهنویسان، تیم توسعهدهندگان، تیم عملیات، تیم تست نرمافزار و … برخی از تیمهایی هستند که میشناسیم.
هر یک از این تیمها اهداف و وظایفی دارد که در نهایت با کنار هم چیدن، یک برنامهی نرمافزاری، خلق میشود. مدیریت روابط و اهداف این تیمها میتواند به صورت تیمهای مجزا و یا یکپارچه باشد.
اینجاست که سروکلهی مفاهیمی مانند «دواپس» پیدا میشود. در این مطلب، به معرفی فرهنگ دواپس و پیادهسازی آن پرداختهایم. پیادهسازی این فرهنگ برای سازمانهایی که تولید نرمافزار انجام میدهند، بسیار کاربردی و مهم خواهد بود. همچنین در این مطلب، مزایا و چالشهایی که در استفاده از این فرهنگ وجود دارد را مطرح کردهایم.
دواپس چیست؟
دواپس (DevOps) اصطلاحی مدرن و جدید (مربوط به سال ۲۰۰۹) در دنیای فناوری اطلاعات است. این واژه در حقیقت از دو کلمهی Development و Operation برگرفته شده است. Development به معنای توسعه و Operation به معنای عملیات است.
دواپس در واقع یکسری اصول برای تیمهای توسعه و عملیات نرمافزار است. این اصول، به گونهای تنظیم شده که گروه توسعهی نرمافزار و گروه عملیات با هم متحد شوند و بتوانند به اهداف مشترک تیم برسند.
این در حالی است که پیش از مطرح شدن این اصول، تیم توسعهی نرمافزار از تیم عملیات، عملکردی مستقل و حتی ضد هم داشت. اغلب، تیم توسعه، به دنبال ایجاد تغییرات و امکانات در نرمافزار فعلی بود ولی تیم عملیات، علاقهای به این موضوع نداشته و به دنبال ثبات و پایداری نسخهی فعلی برنامه بود.
فرهنگ دواپس چیست؟
همانطور که توضیح دادیم، دواپس یک اصل و فرهنگ جدیدی را به سازمان منتقل میکند. طبق این فرهنگ، یکسری ابزار یا اصول به کار گرفته میشود تا سازمان بتواند نرمافزار و برنامههای خود را با سرعت بالاتری ارائه دهد.
همانطور که توضیح دادیم، دواپس یک اصل و فرهنگ جدیدی را به سازمان منتقل میکند. طبق این فرهنگ، یکسری ابزار یا اصول به کار گرفته میشود تا سازمان بتواند نرمافزار و برنامههای خود را با سرعت بالاتری ارائه دهد.
سرعت بالا، در حیطه تولید نرمافزار، یک برگ برنده برای پیروزی در رقابت به وجود آمده در بازار است. از سوی دیگر، فرهنگ DevOps به غیر از تأثیر روی سرعت ارائهی نرمافزار، کیفیت آن را نیز مدیریت میکند.
برای اینکه یک سازمان بتواند از دواپس استفاده کند، میبایست طرز فکر و فرهنگ خود را تغییر دهد.
بهصورت معمول و سنتی، فعالیت تیم توسعه از تیم عملیات کاملاً مجزا است. این در حالی است که در فرهنگ دواپس، این دو تیم با هم همکاری دارند. حتی تیمهای تضمین کیفیت و یا امنیت (در صورت وجود در سازمان) میتوانند با تیم توسعه و عملیات هماهنگ شوند.
مشارکت تمامی این تیمها، برای ساخت برنامه، سبب میشود تا موانع بین آنها از بین رفته و فرهنگ همکاری ترویج یابد. بنابراین اگر سازمانی به سمت این فرهنگ کوچ کند، همکاری، همدلی و اعتمادسازی زیادی را بین اعضای تیم خود مییابد.
مزایای فرهنگ دواپس
پیادهسازی فرهنگ دواپس میتواند مزایای زیادی برای سازمان شما داشته باشد. در ادامه به چند مورد از این مزایا اشاره خواهیم داشت؟
رفع چالشهای مختلف با همکاری تیمها
زمانی که یک سازمان از فرهنگ DevOps استفاده میکند، همکاری بین تیمها افزایش پیدا میکند. این همکاری، کمک میکند تا مشکلات و چالشهای پیش آمده، سریعتر برطرف شود.
اگر مشکلات هر فرد و هر تیم، مجزا در نظر گرفته شود، رفع آن زمانبر خواهد بود و طنین آن در بقیه تیمها و بخشهای پروژه، دیده میشود. لذا با همکاری همه اعضا، میتوان مشکل را سریعتر برطرف نمود و حتی از وقوع مسائل مشابه در آینده نیز پیشگیری کرد
افزایش سرعت ارائه برنامه به بازار
در بازار رقابتی نرمافزار، «سرعت» نقش پررنگ و مهمی دارد. نرمافزارها خیلی سریع متحول میشوند و برای اینکه بتوان در بازار جایگاهی داشت، باید سرعت بهروز بودن و ارائهی نرمافزار را افزایش داد. این مسأله با راهکار ترویج فرهنگ دواپس، شدنی است.
دواپس، زمان تولید و ارائه محصول را به نسبت روشهای سنتی، کاهش میدهد. این موضوع، برای توسعه و افزودن قابلیتهای جدید به نرمافزار، یک نقطه قوت به حساب میآید.
تحقیقات مختلف، نشان میدهد که در صورت بهکارگیری فرهنگ DevOps، سرعت تولید محصولات نرمافزاری تا ۳۰ برابر ارتقا مییابد. همچنین رفع مشکلات برنامهها با سرعت ۲۰۰ برابری به نسبت عدم استفاده از این فرهنگ، خواهد بود.
کاهش هزینهها
زمانی که با به کارگیری فرهنگ دواپس، کوتاهتر میشود؛ روی کاهش هزینهها نیز تأثیر دارد. در واقع زمانی که محصولی با این تکنیک تولید میشود، کوتاهتر از زمانی است که محصول با تکنیکهای سنتی تولید شود.
این کاهش زمان، به معنای آزادسازی سریعتر منابع و نیروی انسانی در هر پروژه خواهد بود.
موضوع دیگری که میتوان در مقولهی کاهش هزینهها، به عنوان مزیت فرهنگ DevOps از آن یاد کرد، اشکالزدایی آسانتر برنامه است.
دیباگ کردن و رفع باگهای برنامههایی که با این فرهنگ پیاده میشوند، به علت ماژولار بودن، سریعتر انجام میشود. سرعت رفع باگ، رضایت مشتریان را نیز به همراه دارد.
چطور فرهنگ سازمانی دواپس را پیادهسازی کنیم؟
تا به اینجای مطلب، دانستید که دواپس چیست؟ فرهنگ DevOps به چه معنی است و کم و بیش با مزایای این فرهنگ، آشنا شدید.
ما در مطلبی دیگر، به خود چیستی دواپس و مسیر یادگیری مهندسی دواپس پرداختهایم. اکنون میخواهیم به این موضوع بپردازیم که چطور میشود در یک سازمان، فرهنگ DevOps را پیادهسازی کرد.
به عنوان یک مقدمه، باید ذکر کنیم که فرهنگ، به یک شخص خاص متکی نیست! بنابراین باید افراد مختلف و تمام تیمهای سازمان برای تغییر به سمت یک فرهنگ خاص، تلاش کنند.
برای پیادهسازی این فرهنگ، باید دیوار و شکافی که بین تیمهای مختلف برنامهنویسی وجود دارد، شکسته شده و از بین برود. به عبارت بهتر، فرهنگ دواپس، به دنبال تعامل بیشتر بین تیمها و ایجاد اهداف یکپارچه برای آنهاست.
اتوماسیونسازی بین اعضای تیم
گام دوم بعد از ایجاد فرهنگ تعامل و همدلی بین اعضا و تیمهای مختلف، باید به سمت اتوماسیون کردن پیش برویم. اتوماسیون، نقطه مقابل دستی بودن فرایندهاست. فکر نمیکنم نیازی باشد تا برایتان توضیح دهم که فرایندهای دستی مستعد خطا بوده و کند انجام میشوند. بنابراین ضروری است تا برای بهبود و سرعت عمل بالاتر، از اتوماسیون شدن فرآیندها استقبال کنیم.
برای این منظور، باید بگردید و ببینید در فازهای مختلف تولید محصول نرمافزاری، چه ابزارهایی میتواند در اتوماسیون شدن کارها، کمککننده باشد. زمانی که شما بتوانید تمام فازهای فرآیند تولید تا تحویل محصول را اتوماسیون کنید، این گام را صحیح برداشتهاید.
تیمهای با اندازهی کوچکتر بسازید
درست است که در فرهنگ DevOps میخواهیم دیوارهای تیمها را از بین ببریم و تعامل بین تمام تیمها برقرار باشد؛ اما باید در نظر داشته باشید که سایز هر تیم را باید طوری در نظر بگیرید که کارایی بیشتری داشته باشد. تیمهای بیش از حد بزرگ، کارایی کمی دارند. پس یک حد معتدل مد نظر است. اگر پروژهتان پیچیده است و امکان ساخت برنامه بدون تشکیل تیم بزرگ وجود ندارد، تیم بزرگ را به زیرگروههای کوچکتری تقسیم کنید.
ارزیابی منظم داشته باشید
شما باید بتوانید به طور دورهای و منظم، وضعیت برنامه و تیمهای خود را ارزیابی کنید. این ارزیابی در تمام سطوح تولید نرمافزار، باید برقرار باشد. ارزیابی کمک میکند تا وضعیت پروژه کاملاً شفاف باشد. به عنوان مثال، بعد از ارائهی هر نسخه، ضروری است که آن را ارزیابی کنید و بدانید که پروژه در نسخهی فعلی، تعداد n باگ دارد.
به اشتراک بگذارید
هر تجربهای، باید بین کل تیمها به اشتراک گذاشته شود. اگر این کار را نکنید، فرهنگ دواپس معنا و جایگاهی ندارد. به اشتراکگذاری تجربهها و آموختهها، سبب میشود تا برای دیگران درسهایی باشد که به پیشگیری از تکرار مشکلات یکسان کمک میکند. فراموش نکنید که اشتراکگذاری، باید همیشه و در تمام مراحل پروژه، برقرار باشد.
چالشهای استفاده از دواپس
فرهنگ devops با تمام مزایا و خوبیهایی که دارد، نقاط سخت و چالشبرانگیزی هم دارد. همانطور که در این مطلب ملاحظه کردید، برای پیادهسازی این فرهنگ، تغییرات گستردهای انجام میگیرد.
انجام این تغییرات، مستلزم تلاش تمام اعضا و پذیرش فرهنگ جدید است که خود یک چالش بزرگ خواهد بود. معمولاً توصیه میشود تا برای قانع شدن افراد، تیم کوچکی که این رویکرد را اتخاذ میکنند، با نمایش موفقیت خود، دیگران را به سمت ترویج فرهنگ DevOps ترغیب نمایند.
نکتهی مهم دیگر این است که بسیاری از سازمانها، با بهکارگیری ابزارهای جدید، فکر میکنند که موفق به پیادهسازی فرهنگ devops شدهاند. این در حالی است که فرهنگسازی نشده و هنوز ضعف زیرساختی در سازمان وجود دارد.
کلام نهایی!
پذیرش تغییر بسیار سخت است. من فکر میکنم حتی پذیرش تغییر از خود تغییر کردن هم سختتر باشد.
بیشتر افراد برای تغییر ابزار کار هم مقاومت نشان میدهند چه برسد به تغییر فرهنگ که دگرگونیهای زیرساختی را میطلبد! با این حال، آنچه از کمپانیهای دیگر میبینیم، اجرای فرهنگ دواپس در سازمان، ارزش دارد.
در نهایت و بعد از عبور از تمام چالشهای تغییر، شما میتوانید رضایت را در تکتک افراد سازمان از مدیر گرفته تا مشتریان و اعضای تیمها ببینید. بهعلاوه، موفقیتهای نرمافزار و محصولات ارائه شده نیز مهر تأییدی خواهد بود که بر مزیت این فرهنگ جدید، زده میشود.