اسکرام: کلید کاهش پیچیدگی و هزینه در توسعه محصول

اسکرام؟ Scrum؟! چی هست؟ کِی، کجا و چطور بدرد میخوره؟ اسکرام به دنبال اینه که سریع‌تر بازخورد بگیریم و جایگاه استفاده موثر اسکرام در شرایط پیچیده (complex) هست اما پیچیدگی به معنای سختی نیست! منظور میزان نادانستنی‌هایی که در طول زمان و شرایط مختلف پدیدار می‌شوند. اسکرام کمک می‌کنه هزینه این پیچیدگی‌ها کاهش پیدا کنه و استراتژی اسکرام اینه که با گرفتن بازخوردهای سریع جلوی هزینه‌های اشتباهی گرفته شود. (یعنی اتفاق بده تا نیفتاده باید کاری انجام بدیم نه بعدش) مثلا فیچرهایی می‌سازیم که ذینفعان نمی‌خوانش، یا استفاده نمی‌شه یا اشتباه فهمیدیم، اینکه سریع‌تر بفهمیم چی به چیه، اگر دیرتر بازخورد بگیریم امکان اعمال بازخورد هم سخت‌تر و پرهزینه‌تر خواهند بود.علاوه بر یک برنامه اولیه (پلن بر اساس دانسته‌ها و چیزهایی که می‌دونیم)، در حین مسیر بر اساس بازخوردهایی که گرفته می‌شه برنامه‌ریزی(پلنینگ) می‌کنیم. یک چیزی اول داستان و مسیر می‌خوان ولی در حین مسیر با تغییر شرایط بازار یا نیاز کاربر و... مسائلی پدیدار میشه که باید تغییر مسیر داد. دارم میگم "پدیدار"میشه یعنی موضوعاتی که در دسته "نادانسته‌های" ما هستن و حتی قابل پیش بینی هم گاها نیستند. در ضمن یک تفاوتی هم بین برنامه و برنامه ریزی وجود داره: برنامه یعنی "مجموعه فعالیت‌ها" بر اساس دانسته‌ها، و برنامه‌ریزی یعنی "نقشه" برای نادانسته‌هایی که پدید می‌آیند و نمی‌تونیم از پیش بدونیم.یک مثال ساده، مثلا وقتی با Waze مسیری انتخاب می‌کنید. مبدا مشخص، مقصد مشخص. همون اول بهتون یک برنامه میده از نقطه A با این مسیر برو به نقطه B (البته همین برنامه هم با در نظر گرفتن کلی دیتا اولیه در اختیار شما قرار میده). بعد شما حرکت می‌کنید در طی مسیر Waze با گرفتن دیتا و بازخورد از سایر کاربران و… مسیر رو به روزرسانی می‌کنه و پیشنهاد جدیدی بر مبنای مسیر کوتاه‌تر یا زمان کمتر یا سرعت بیشتر برای رسیدن به مقصد بهتون پیشنهاد میده. پس نگاه اسکرام به حل مسائل پیچیدست، و پیچیدگی می‌تونیم در دو دسته در نظر بگیرم:- پیچیدگی محصول: اون چیزی که می‌سازیم که اساسا پیچیدست.- یک لایه بالاتر از اون، پیچیدگی روابط انسانی (روابط بین بخش‌های مختلف مثل فنی و دیجیتال مارکتینگ و…)حالا اسکرام برای حل این مشکلات پیچیده اومده یکسری نقش‌ها تعریف کرده مثل مالک محصول، اسکرام مستر و تیم توسعه‌دهنده. نقش‌ها جوری چیده میشن که هم بر پیچیدگی محصول و هم بر پیچیدگی روابط انسانی اثر گذار باشند.- مالک محصول: به طور اختصاصی به این سوال پاسخ میده آیا ما محصول درستی می‌سازیم؟ به این پیچیدگی نگاه می‌کنه و دائما در ارتباط با مشتریان و ذینفعان تجاری هست (یعنی مارکتینگ، فروش، پشتیبانی، مدیر عامل، کاربر) و این ذینفعان رو مدیریت می‌کنه. تا به یک وحدت کلام برسیم که چی می‌خوایم، چی درسته؟ نقشه راه چیه؟ (PO کمک می‌کنه بر این پیچیدگی محصول فائق بیایم)- اسکرام مستر: بیشتر روی اون جنبه انسانیش کار می‌کنه. ارتباطات انسانی بین ذینفعان مختلف، اعضای تیم با هم (دولوپرها باهم، دولوپرها با مالک محصول) و سیاست‌هایی که داخل سازمان هست.پس دو فرد با دو رویکرد متفاوت در مدیریت ذینفعان داریم:- مالک محصول: شناسایی بازار و اینکه حواسش به جنبه کسب و کاری محصول است.- اسکرام مستر: آیا محصول رو سریع و درست می‌سازیم یعنی به شیوه انجام کار تمرکز داره (اینکه چی داریم می‌سازیم رو حقیقتا زیاد کاری بهش نداره، اینکه چجوری می‌سازیم رو باهاش کاری داره).مثلا مدیرعامل یک شرکتی علاقه داره فیچری در نرم افزار پیاده سازی بشه. خب راه درستش در اسکرام اینه که این موضوع باید از طریق مالک محصول انجام بشه (چون PO هست که داره نیازمندی‌ها رو جمع می‌کنه و میاره سمت تیم) ولی مدیر عامل علاقه داره زنگ بزنه به دولوپر، از دولوپر بخواد ببین فردا اینو اونو انجام بده، خب اینجا اسکرام مستر وارد می‌شه برای اینکه پروسه‌ (فرایند کاری) رو درست کنه، که چرا مدیر عامل داره میاد فرایند کاری دور میزنه، مالک محصول اینجوری ضعیف میشه، (پس اسکرام مستر شیوه درست کار کردن رو پیاده سازی می‌کنه)این شد یک دید خیلی کلی از اسکرام. برای استفاده از هر ابزار یا به کار بردن هر روشی بدیهی هستش که باید اطلاعاتی در موردش بدست بیاریم، مطالعه و تحقیق کنیم و با داشتن دانش کافی در یک بازه زمانی مشخص تجربش کنیم تا بتونیم قضاوت درستی از مفید یا غیر مفید بودنش برای ما ازش داشته باشیم.