علی نیک روش
علی نیک روش
خواندن ۷ دقیقه·۳ سال پیش

تیم خود سازماندهی شده از دید اسکرام

توی شرکت ها و تیم هایی که با هاشون تا به حال کار کردم، و همین طور بین چیز هایی که بعضا از اسکرام مستر ها و یا حتی اجایل کوچ ها و . . . شنیدم خیلی وقت ها به این نکته اشاره شده که تیم ها رو باید راحت گذاشت تا خودشون کار ها رو انجام بدن و به اصطلاح Self-organize هستن. از طرفی خیلی وقت ها میبینیم که تیم ها مشکلات زیادی دارن و عملا نمیتونن به تعهدات خودشون توی چارچوب های زمانی که بهشون اسپرینت میگیم برسن. به همین خاطر اول از همه میخوایم با هم ببینیم که مراجع اصلی اسکرام چه دیدگاهی در این خصوص دارن و بعد از اون ببینیم که چه راه حل هایی برای رفع مشکلات تیم ها برای رسیدن به تیم های خود سازماندهی شده وجود داره.

تیم اسکرام
تیم اسکرام


اولین چیزی که برای این موضوع باید بهش توجه کنیم معنی خود تیم از دیدگاه اسکرام هست؛ «تیم اسکرام» از از سه نقش اصلی تشکیل شده:

  1. مالک محصول (Product Owner)
  2. اسکرام مستر (Scrum Master)
  3. تیم توسعه (Development Team) که در راهنمای اسکرام 2020 ساده ترش کرده و بهش توسعه دهندگان (Developers) گفته میشه.

همون طور که میدونیم، اسکرام مستر وظیفه خدمت رسانی به تیم توسعه و مالک محصول رو داره، تیم توسعه وظیفه سرویس دهی به مالک محصول رو داره، و مالک محصول هم باید به ذی نفعان خدمت رسانی کنه.

با توجه به تعریف، اسکوپ کار و منظور ما «تیم توسعه» هست؛ بنابراین، خوبه که اول بدونیم تیم توسعه باید چه ویژگی هایی داشته باشه و یا به عبارتی از پس چه مسوولیت هایی به خوبی بر بیاد که چند تا از مهمترین شون رو براتون میزارم:

  1. تیم توسعه به صورت خود سازماندهی شده و خود مدیریت شده (Self-organized & Self-managed) کارش رو برای اسپرینت انجام میده و به تنهایی مسوول تحویل یک فرآورده محصول (Product Increment) در پایان هر اسپرینت هست که در این راه مالک محصول از طریق مرتب سازی بک لاگ های محصول و اسکرام مستر هم از طریق پایش درست انجام شدن فرآیند اسکرام به تیم توسعه در این مسوولیت (خطیر!) کمک می کنند.
  2. تیم توسعه مسوول تحقق «کیفیت» محصول منطبق با «تعریف کار انجام شده» یا همون DoD در انتهای هر اسپرینت هست (به دعوای این که چه کسی DoD رو باید تهیه کنه توی یه مطلب جداگانه رسیدگی می کنیم!).
  3. تیم توسعه باید بتونه هر تعارض درون تیمی رو حل کنه، یعنی اعضای تیم باید «مدیریت تعارض» رو یاد بگیرن (البته اگه لازم شد میتونه کمک اسکرام مستر های خوب رو هم برای رفع مشکلاتش بپذیره)؛ سازمان ها و HR های مهربون هم اینجا می تونن از طریق برگزاری دوره های آموزشی مدیریت تعارض به کاهش مشکلات تیم ها کمک کنند.
  4. تیم توسعه «تعیین می کنند» در هر اسپرینت کار چگونه باید انجام بشه (دید فنی و تخصصی)؛ همین طور تخمین زمانی انجام کار روی PBI ها هم با خودشون هست (که در این راه مالک محصول از طریق تشریح کار میتونه به تیم توسعه برای رسیدن به تخمین درست تر کمک کنه).

. . .

و اما برسیم به دو ساختار اصلی «تیم توسعه» در اسکرام که دومیش «کامپوننت بیس» هست، ولی آن چه که مرسوم تر هست و معمولا در شرکت ها و سازمان ها دیده میشه تیم های «فرا وظیفه ای یا کراس فانکشنال (Cross Functional)» هستند که از ظرفیت های سه تا نه نفر تشکیل میشن و هر تیم باید بتونه تمامی عملکرد های مورد نیاز یه محصول رو در هر اسپرینت پوشش بده؛ بنابراین، افراد اون تیم ها هم باید Cross-Skilled باشن (یعنی توی این تیم ها افرادی موفق تر هستن که علاوه بر داشتن تخصص در یک بخش مثل بک اند، از سایر بخش ها هم سر در بیارن و به اصطلاح فول استک باشن؛ بماند که اینجا سافت اسکیل ها هم میتونه خیلی بهمون به عنوان اعضای تیم توسعه کمک کنه که اسکرام سعی می کنه به اون ها هم در رویداد های پنج گانه خودش نیم نگاهی داشته باشه و من هم در مقالات بعدی بهشون خواهم پرداخت).

این موضوعات ادامه داره، اما نکاتی که بسیار مهم هست و در کتاب (Scrum Insights for Practitioners) از آقای Hiren Doshi که یکی از منابع اصلی آزمون های اسکرام هست بیان شده رو با هم مرور می کنیم تا با ایجاد چند سوال و پاسخ اون ها بفهمیم منظور دقیق تر اسکرام در این خصوص چیه . . .

اسکرم مستر
اسکرم مستر


پرسش اول: اسکرام چطور میتونه خود سازماندهی رو ترویج کنه؟

در پاسخ به این پرسش سه موضوع مطرح میشه:

  1. اسکرام یه چارچوب سبکه که از: سه نقش، پنج رویداد، و سه خروجی اصلی تشکیل شده.
  2. با برداشتن عناوین از اعضای تیم توسعه، که همه رو در یک سطح می بینه و بینشون سلسله مراتبی وجود نداره.
  3. با توانمند سازی تیم توسعه و تعیین بهترین روش برای انجام کارش.

در این راستا خوبه که بدونیم خود سازماندهی تقویت کننده «خلاقیت، مسوولیت پذیری، و تعهد افراد» برای رسیدن به اهداف تیم اسکرام هست.

همون طور که میدونیم خود سازماندهی چیزی نیست که بشه به تیم تحمیل کرد و در حقیقت افراد تیم باید بتونن به اون بلوغ برسن.

تو صفحه 61 همون کتاب میگه که خود سازماندهی به معنای یک فضای باز نیست که اعضای تیم توسعه بتونن هر چیزی که دوست دارن رو انجام بدن. خود سازماندهی با گذاشتن مرزهای واضح و روشن برای این که هر کدوم از "اعضای توانمند" تیم باید بتونن کار خودشون رو سازماندهی کنن اتفاق میفته.

بعضی فاکتور ها که خود سازماندهی رو ترویج می کنه رو با هم مرور کنیم:

اطمینان: افراد تیم باید بتونن به همدیگه اعتماد کنن، آزادانه صحبت کنن، به بینش لازم برای انجام کار دست پیدا کنن، و بتونن با هم مشارکت کنند.

  • چارچوب زمانی (Time-Boxing): این قاعده اسکرام به تمرکز و مدیریت ریسک ها کمک می کنه.
  • ثابت بودن طول اسپرینت: این فاکتور کمک می کنه خروجی مستمر ارزش کسب و کار در هر تایم باکس اسپرینت تحویل بشه.
  • بهینه بودن اندازه تیم توسعه: یک تیم سه تا نه نفره چند تخصصی بر اساس راهنمای اسکرام کمک می کنه پیچیدگی های غیر ضروری و ارتباطات اضافی از بین بره.
  • تعریف کار انجام شده (Definition of Done): ایجاد شفافیت برای کار قابل قبول انجام شده که باعث می شود تمام افراد تیم نسبت به تعریف کار انجام شده به نظر مشترکی برسند.
  • ارزش های اسکرام: ارزش های اسکرام شامل "شجاعت، تمرکز، تعهد، احترام، و گشودگی" هستن و باید به گونه ای در افراد نهادینه بشه که باهاش زندگی کنن.

پرسش دوم: بعضی نشانه های تیم خود سازماندهی شده چیست؟

  1. اعضای تیم توسعه با اشتیاق و میل بالا در حین اسپرینت برای انتخاب کارشون مشارکت می کنن و در صورت نیاز براش برنامه ریزی مجدد می کنند (میتونه یکی از خروجی های دیلی شون باشه).
  2. برای تحقق DoD تمام تلاش شون رو میکنن.
  3. خودشون نسبت به این که چطور PBI ها رو به فرآورده های قابل ریلیس تبدیل کنن مسوول هستن و نیاز ندارن کسی بهشون بگه که چطور باید این کار رو انجام بدن.

پرسش سوم: تایم باکس چطور به خود سازمانده شدن تیم اسکرام کمک می کند؟

Time-Boxing!
Time-Boxing!


  1. چارچوب های زمانی کمک می کنه هر یک از افراد روی هدف اسپرینت با یک هدف مشترک که ساخت یک نسخه افزایشی قابل ریلیس متعهد به DoD در پایان هر اسپرینت هست هم راستا و متمرکز شوند.
  2. چارچوب های زمانی مشوق اعضای تیم توسعه هستند که تمرکز شون رو روی حل مشکلات کاری که دست گرفتن بزارن تا بهترین دستاورد رو در زمان اختصاص داده شده و در زمینه کار مشخص شده خلق کنند.
  3. تایم باکس ها مانند گارد ریل های کنار جاده هستند که امنیت تیم رو از طریق محدود کردن ریسک فراهم می کنن.

سخن آخر

با توجه به مطالبی که مطرح شد میشه گفت تیم های خود سازماندهی شده (البته در نسخه 2020 اسکرام پا فراتر گذاشته شده و تبدیل به تیم های خود مدیریتی شده که بعدا درباره اون هم صحبت خواهیم کرد) چند ویژگی اصلی رو نیاز دارن تا به شرایط مطلوب برسن:

  1. از نظر اندازه کوچک هستند.
  2. حرفه ای هستند (هم دانشی، هم مهارتی و هم رفتاری)
  3. کراس فانکشنال یا فرا وظیفه ای هستند تا بتونن خودشون از پس تمامی موضوعات فنی در هر اسپرینت بر بیان.
  4. باید بتونن تصمیم بگیرن توی تیم شون «چه کسی؟ چه کاری رو؟ در چه زمانی؟» انجام بده.
  5. به DoD متعهد هستن.
  6. به چارچوب های زمانی اسکرام متعهد هستن (زمان و مسوولیت براشون اهمیت داره)
  7. اشتیاق لازم برای انجام کار و به پایان رسوندن اون رو دارن.

بنابراین، هر جا که این افراد رو دیدین قدرشون رو بدونین و مطمئن باشین که کارهاتون به درستی پیش خواهد رفت.

از طرفی اگه تیمی این ویژگی ها رو نداشته باشه شاید بتونیم از راه های مختلف مثل آموزش سافت اسکیل های مرتبط با رفتار های تیمی، استفاده از مربی و منتوری که هم به کار تیمی اشراف داشته باشه و هم به اسکرام، ... و یا حتی در صورت نیاز بهینه کردن ترکیب تیم نسبت به تقویت اون ها اقدام کنیم.


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

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