چُست و چابُک (agile)

مدیریت چابک (agile) خیلی بیشتر از خرد کردن تسک ها و اسپرینت هاس.هماهنگ نبودن و تعامل تیم فنی و محصول که زبانزد همگان است و نمیشه انکارش کرد. همین عدم هماهنگی و تعامل خودشون به تنهایی میتونن هزاران هزار مشکل کوچیک و بزرگ رو به وجود بیارن. قبل تر فکر میکردم که خیلی از گره هایی که توی کار میفته، کاملا طبیعیه و اجتناب ناپذیر. اما به پیشنهاد یکی از دوستانم به سراغ agile رفتم و هر روز که بیشتر راجع بهش میخونم، مطمئن تر از قبل میشم که با این متد میشه گره های کور رو هم باز کرد و تا حدودی جلوی به وجود اومدنشون رو هم گرفت.:)))))هدف agile (مدیریت چابک) چیه؟هدف اصلی مدیریت چابک افزایش رضایت مشتری از محصوله. تیم چابک از مشتریان بازخورد و فیدبک میگیره. بازخورد و فیدبک ها رو در قالب sprint تبدیل به تسک های کوچک تر میکنه و محصول رو بهبود میده. این چرخه (اسکرام) بارها و بارها تکرار میشه تا هم محصول بهینه تر باشه هم رضایت مشتری بیشتر.Agile process ویژگی های مدیریت چابک چی هست؟پذیرفتن تغییرتوسعه در بازه های زمانی کوتاهتعامل و گفت و گوی رو در رو با تیمسادگیاعضای تیم اسکرام:مالک محصول (product owner)مالک محصول مشتری ها و نیاز هاشون رو بهتر از همه میشناسه و در نوشتن یوزر استوری ها (متاسفانه معادل فارسیش رو نمیدونم) به تیم اسکرام کمک میکنه. مالک محصول در واقع ارزش محصول رو مشخص میکنه و به تسک ها اولویت میده.اسکرام مسترکارایی تیم اسکرام، ساده کردن فرآیندها، مراقبت از تیم و برگزاری دورهمی ها برعهده اسکرام مستره.بقیه تیم ها!بقیه تیم ها (تیم هایی که وظیفه اجرای تسک ها رو دارن. مثلا: تیم توسعه، محصول و دیزاین) مسئول کیفیت محصول، تخمین زدن انجام پذیری تسک ها هستن.جلسه ها چجورین؟جلسه ها قبل از شروع هر اسپرینت برگزار میشن و زمان تقریبی برای هر جلسه حدود دو ساعت هست.مرحله ۱:جلسه با یوزر استوری ها شروع میشن. مثلا فرض کنیم مالک محصول توسعه یک ویجت خاص رو مطرح میکنه که مشتری ها تقاضاش رو دارن.مرحله ۲:تو این مرحله باید اعضای تیم، توسعه این ویجت خاص رو از ۳ جهت بررسی کنن و در نهایت برای هر سه مورد، یک عدد رو اعلام کنن:راحتیپیچیدگیواضح بودن مسیرفرق راحتی و پیچیدگی چیه؟راحتی یعنی چی: فرض کنین برای بار اوله که قراره کار پیچیده ای رو انجام بدم. اگر بخوام به راحتی انجام این کار نمره بدم، مثلا عدد ۸، و اگه بخوام به پیچیدگی انجام این کار نمره بدم عدد ۱۳ رو میدم. اما اگه دوباره قرار باشه همین کار پیچیده رو انجام بدم، به راحتی انجام کار، عدد ۳ رو میدم (چون قبلا انجام دادم و اینبار سختیش کمتره) اما بازم به پیچیدگی کار، عدد ۱۳ رو میدم.واضح بودن مسیر یعنی چی: فرض کنین برای داشتن ویجت، باید با شرکت های دیگه همکاری کنین و هنوز هم راجع بهش صحبت و جلسه ای نداشتین. تو این سناریو مسیر شفاف و معلوم نیست.در ادامه هر کدوم از اعضای تیم برای هر سه ویژگی راحتی، پیچیدگی و واضح بودن مسیر یک عدد رو انتخاب و اعلام میکنن. زمان اعلام نمره ها باید همزمان باشه تا جواب اعضای تیم تحت تاثیر جواب همدیگه قرار نگیره. (social proof)معمولا برای نمره دادن از سری اعداد فیبوناچی استفاده میشه: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89چرا اعداد فیبوناچی:۱. هدف اصلی نمره دادن به استوری اینه که ارزیابی کنیم که تسک میتونه وارد اسپرینت بشه یا نه و از نمره به عنوان معیار استفاده میکنیم. برای اینکه بگیم با انجام دادن این تسک موافق نیستیم باید نمره ماکسیمم داشته باشیم و اگر بخوایم از اعداد معمولی استفاده کنیم باید همه اعضای تیم موافق با یک عدد برای نمره ماکسیمم باشن (مثلا عدد ۵۹. اما چرا عدد ۴۸ نباشه؟!) اما تو سری فیبوناچی برای نمره دادن به استوری، ماکسیمم نمره رو عدد ۸۹ در نظر میگیریم.۲. برای نمره دادن به استوری عدد صفر بی معنیه اما سری فیبوناچی از عدد ۱ شروع میشه.بعد از اعلام نمره ها نظر فردی که بالاترین نمره و پایین ترین نمره رو به تسک داده میشنویم و دوباره از اعضای تیم میخوایم که نمره نهاییشون رو دوباره اعلام کنن.مرحله ۳:بعد از اعلام نمره و توافق، تسک به اسپرینت ها خرد میشن و تیم در ددلاین تعیین شده کار ها رو پیش میبره.هر روز جلسه روزانه برگزار میشه و اسپرینت ها توضیح داده میشه تا همه چی شفاف باشه و تیم در مسیر پیش بره.مرحله ۴: در انتهای هر اسپرینت، تیم برای پرزنت کردن تسک میره (همین که کل تیم برای پرزنت کردن میره باعث میشه که کار همه اعضای تیم دیده بشه نه فقط مدیر اون بخش)مرحله ۵:مرحله آخر گرفتن فیدبک هست و این چرخه دوباره تکرار میشه.خب به همین سادگی، به همین کوتاهی! البته که جلسه ها خودشون کلی چالش دارن و agile به عمل سخت تره.از تجربه هاتون بگین برام. تا حالا از agile کمک گرفتین؟