رفع موانع خودمختاری تیم های DevOps

خودمختاری چیست؟

خودمختاری به معنی آزادی یا استقلال می‎باشد. یعنی کس دیگری خارج از محدوده شما نتواند کار شما را کنترل نماید. رهبران خودمختار، فعالیت‎های خود را خودشان جهت می‎دهند و این دقیقا چیزی است که تیم DevOps به آن نیاز دارد. در بحث خودمختاری DevOps سه اصل از 6 اصلی که بیان شد باید دنبال شود:

  • مسئولیت پشت سر هم: استقلال تیم برای گرفتن و احساس مسئولیت در جهت ارائه خدمات به مشتری ضروری است.
  • اقدام مشتری محور: بدون داشتن اختیار، بجای تمرکز بر روی خواسته دقیق مشتری، بر روی یک قرارداد بینابین تمرکز خواهد شد.
  • تیم‎های خودمختار با قابلیت‎های بالا: خودمختاری بخش اصلی و یکپارچه کننده تیم با قابلیت‎های بالاست.

 

مشکلات تیم خودمختار

خود مختاری فایده‎های زیادی دارد اما بعضی چالشها هم ایجاد می‎کند. شرکت‎های سنتی بعد از حرکت به سمت تشکیل تیم‎های خودمختار با مشکلات جدیدی روبرو خواهند شد که قبلا نداشته اند. به همین دلیل بهتر است این مشکلات قبل از شروع فرآیند تغییر ساختار سازمانی به دقت بررسی شوند. در این بخش مشکلات اصلی بیان می‎شوند:

  • محدوده تیم‎های کاری در DevOps چیست؟
  • تیم‎های DevOps چطور روی یک محصول کار می‎کنند؟
  • نگهداری و توسعه استانداردها در موضوعات تکنیکال چگونه است؟
  • علاقه اعضای تیم‎های DevOps در زمینه خاصی خارج از موضوع تیم، چگونه مدیریت می‎شود؟

راه کار این مشکلات در قالب یک مثال واقعی از شرکت Spotify و مدل ارتباطی سازمانی آن شرکت بیان شده تا درک عملی تر از راه حل به دست آید. این شرکت در زمینه موسیقی کار می‎کند و با سرویس‎های جدیدی که ارائه داده دنیای موسیقی را متحول کرده است.

 

حل مشکلات خودمختاری

Spotify یک مثال خوب برای تیم‎های خودمختار است. این شرکت با تشکیل تیم‎های خودمختار و متمرکز روی مجموعه ای سرویس خاص، توانسته است تا اصول اولیه DevOps–اقدام مشتری محور، مسئولیت پشت سر هم و توانایی برای تجربه و ابتکار- را به صورت سریع در بر بگیرد. در نتیجه یک چرخه مناسب ایجادکرده تا تیم‎ها را برای یادگیری سریعتر و بهتر توانا کند.

Spotify کارمندانش را در تیم‎هایی به نام Squad سازمان بندی کرده که آزادانه و بصورت خودمختار عمل می‎کنند. هر squad با دیگر squad‎هایی که وظایف مرتبط دارند در قالب یک Tribe قرار می‎گیرند. هر tribe یک مسئولیت خاص برای یک بخش از سرویس‎های spotify بر عهده دارد، برای مثال قسمت توسعه رابط کاربری جستجو در سایت یا قسمت اپلیکیشن موبایل یا ... . کارمندان tribe های مختلف، که کارهای شبیه هم انجام می‎دهند یا توانایی و دانش شبیه دارند با هر کدام از tribe های دیگر در قالب Chapter و guild ها در تعاملند و از هم یاد می‎گیرند. بعبارتی ارتباط میان tribeها ، از طریق chapter و guild است.

1- Squad

تیم‎های کاری در spotify به نام squad هستند.

squad در یک تیم DevOps

مشخصه‎های squad :

  • چندزمینه ای و خود مختار
  • خود سازماندهی شده و کوچک
  • با یکدیگر در تعاملند و به ابزارها و توانایی‎ها نیازمندند.
  • شعار "فکر کن، درست کن، بفرست، تنظیم کن" دارند.
  • بکارگیری مفاهیم استارتاپ Lean مثل MVP و Validated learning
  • پشتیبانی چرخه کامل یک محصول از ایده تا تولید
  • تمرکز بر روی همکاری نزدیک
  • بکار بردن مفاهیم Lean

 

2- Tribe

یک  tribe (قبیله) مجموعه ای از squad ها است که در محدوده مرتبط کار می‎کنند مانند تصویر زیر:

tribe یا قبیله در ساختار سازمانی DevOps

در spotify یک tribe می‎تواند music player یا ... باشد. در یک بانک می‌تواند یک فرآیند payment باشد.

رهبر tribe مسئول ریاست squad های داخل یک tribe است. Squad های یک tribe بصورت فیزیکی در یک دفتر مشخص حاضر هستند و همکاری می‎کنند. تعامل با هم می‎تواند شامل دموی زنده از کار نرم افزار، ابزارها، تکنیک‎های جدید و ... باشد.

 

3- Chapter

Chapter جهت نگهداری، توسعه و گسترش استاندارها در یک فضای منظم کارشناسی است. یک chapter یک خانواده کوچک از کسانی است که توانایی‎های شبیه دارند و در یک tribe مشخص کار می‎کنند. اینها با یکدیگر در مورد روش‎های کاری خود که می‎تواند ارتقا پیدا کند یا استانداردسازی شود بحث می‎کنند و با همکارهایشان می‎توانند بهترین تمرین‎ها را داشته باشند.

chapter  در ساختار سازمانی DevOps

یک مثال از chapter می‎تواند گروهی از tester ها از squad های مختلف باشد که در مورد استانداردی برای نمایش قسمت‎های فریم‌ورک‎های تست یا ابزارهای خودکارسازی صحبت کنند. مثال دیگر chapter ، توسعه دهنده‎هایی هستند که در مورد کتابخانه‎ها، فریم‌ورک‎ها یا تمرین‎های توسعه با یکدیگر در تعامل قرار می‎گیرند.

 

4- Guild

Guild ها به انتشار دانش در یک سازمان کمک می‎کنند. این نوع ارتباط بین تیمی باعث رشد بدون از بین بردن خودمختاری می‎شود.

guild در ساختار سازمانی DevOps

Guild ها در حقیقت یک انجمن از افردای است که دانش ابزار، کد، تجربه‎ها و غیره را منتشر می‎کنند. بر خلاف chapter ها که همیشه در tribe ها قرار دارند، guild ها در میان تمام سازمان گسترش پیدا می‎کنند. بعضی از مثال های guild عبارتند از: developer guild, tester guid, agile coachguild و ... .