Scrum متدولوژی که تیمهای توسعه را متحول میکند!
scrum چیست؟ متدولوژی یا چارچوب اسکرام در توسعه نرمافزار رادوو
تنها یک صاحب محصول است که ماموریت کلی و چشمانداز محصول که تیم میسازد را ترسیم میکند. مالک محصول در نهایت مسئولیت مدیریت سند یا بک لاگ محصول و قبول تکمیل کار را برعهده دارد. بک لاگ محصول (Product Backlog) نیز لیستی از تغییرات (شامل ویژگی ها، قابلیت ها و پیشرفت ها) که قرار است روی محصول صورت گیرد را نشان می دهد. بک لاگ محصول یکی از مهم ترین لیست هایی است که تمام نیازمندی های پروژه و محصول را مشخص می کند. مردم اغلب فکر می کنند اسکرام و چابک یک چیز هستند زیرا اسکرام حول محور بهبود مستمر است که یک اصل چابکی است.
مدت اسکرام روزانه 15 دقیقه است و تمامی اعضای تیم فعالیتهای روز قبل و امروزشان را به صورت خلاصه توضیح میدهند. دقت کنید که نباید این رویداد به بحث و حل مسئله کشیده شود و مدتش نیز نباید از مدت گفتهشده بیشتر باشد. در این مطلب قصد داریم به این سوالات پاسخ دهیم تا این متدلوژی نقش های اسکرام مفاهیمش و دیگر موارد مربوط به آن را بشناسید و بتوانید از آن جهت مدیریت پروژه خودتان بدون هیچگونه ابهامی استفاده کنید. ۱۱- و در انتها برای اسپرینت آینده پروژه مورد نظر خود برنامهریزی کرده و آن را شروع کنید. اسکرام چنان فریمورک محبوب اجایلی است که غالباً اسکرام و اجایل با هم اشتباه گرفته میشوند.
مالک محصول صاحب پروژه است و اهداف و ماموریت های تیم را در مسیر تولید محصول به اعضای تیم انتقال می دهد. تمام تلاش مالک محصول برای تحقق اهداف پروژه و ارائه راه حل های مناسب در مسائل پیش روی توسعه محصول است. انتقال به اسکرام می تواند یک سفر هیجان انگیز باشد که رویکرد تیم شما به کار را متحول می کند. چه یک مدیر پروژه کارکشته باشید یا یک تازه وارد در متدولوژی های چابک، شروع به مسیر اسکرام نیازمند برنامه ریزی دقیق و درک اصول اصلی آن است. تیم های اسکرام معیارهای خود را برای اندازه گیری عملکرد پروژه انتخاب می کنند. آنها جدول زمانی، بودجه و معیارهای کیفیت را بر اساس تجربه و قابلیت های خود تخمین می زنند.
تصور کنید بر روی یک محصول مبتنی بر سرور کار میکنید که هر سه ماه برای مشتریان ارسال میشود. در انتها باید بگوییم که امروزه با پیشرفت تکنولوژی و پیچیده شدن روابط، پیشبرد اهداف یک پروژه کار سختی است. متدولوژی اسکرام بر اساس چارچوب اجایل یکی از همین روشهای مدیریت پروژه است که این روزها به دلیل یادگیری آسان و استفاده راحت از آن بین تمامی مشاغل محبوب شده است. در این جلسات کارهای انجام شده در اسپرینت قبلی ارائه و هدف اسپرینت بعدی نیز مرور میشود. معمولا افراد پروژه آنها را یادداشت میکنند تا بدانند چه کاری را باید در چه مدت زمانی انجام دهند.
این در مورد ایجاد سازمان های هدفمند است که در آن کار لذت بخش و رضایت بخش می شود. در واقع اسکرام یک بستر مناسب برای استفاده از روش اجایل است و بیشترین کاربرد را در میان چارچوبهای مختلف اجایل دارد. چارچوب اسکرام دارای تعریفها و اصطلاحات بیشتری است، اما از تمام اصول اجایل پیروی میکند. روش چابک و اسکرام برای توسعه نرم افزار ساخته شدهاند؛ اما استفاده از مفاهیم آنها برای انجام پروژههای مختلف استفاده میشود. این متدولوژی یک مدل تکراری(iterative) از متدولوژی Agile برای حل مسایل پیچیده است. صاحب محصول ذینفع اصلی پروژه است، که میتواند مشتری داخلی یا خارجی یا سخنگوی مشتری باشد.
اسکرام یک چارچوب برای توسعه، تحویل و نگهداری محصولات پیچیده است، در نتیجه اسکرام به جای وضع قوانین سختگیرانه که شما را وادار به انجام آن کند، در واقع راهنمایی برای پیشبرد کارها پیش روی ما میگذارد. تئوریهای زیادی وجود دارد در خصوص اینکه چگونه تیم اسکرام باید برای موفقیت تلاش کند. اما تجربه نشان داده شفافیت در ارتباطات و تلاش برای پیشرفت مداوم باید همیشه در مرکز چارچوبی که انتخاب میکنید باشد، حال هر چارچوبی که باشد. معمولا نقش اسکرام مستر با مدیر پروژه به اشتباه یکسان تصور میشود؛ اما در واقع اسکرام مستر سعی میکند تیم، وظایف خود را به درستی انجام دهد. او از به وجود آمدن چالش جلوگیری میکند و در صورت بروز چالش یا مشکلی آن را به بهترین شکل هدایت میکند.
به طور کلی سند اسپرینت قلب یک اسکرام است که در آن تمامی جزئیات ذکر میشود. البته این سند هم همانند کل اسکرام منعطف است و بنا به نیاز مشتری تغییر میکند. در واقع مالک محصول به عنوان سهامدار می تواند از بازخوردهای دریافتی شما پس از هر اسپرینت میزان رضایت خود از پیشرفت کار را اعلام کند. تیم اسکرام نیز با رعایت ویژگی های درخواستی می تواند در اسپرینت های بعدی رضایت سهامداران را افزایش دهد. در مجموع از اسکرام می توانید برای بهبود رضایت سهامداران و ایجاد یک محیط کار مثبت و مثمر ثمر استفاده کنید.
با این حال تیمهای باتجربه تأکید دارند که ارتباط روشن، شفافیت و تلاش برای بهبود مداوم همواره باید در کانون هر فریمورکی که انتخاب میشود، قرار داشته باشد. Backlog محصول، لیست مرتب شده ای از کلیه تغییرات احتمالی موجود در محصول است. مواردی که در Backlog وجود دارند به این معنی نیستند که حتما باید تحویل داده شوند پس تعهدی مبنی بر انجام آنها وجود ندارد. Backlog محصول، مهمترین سندی است که به طور خلاصه تمام نیازهای یک سیستم، پروژه یا محصول را مشخص می کند. همچنین آن را می توان لیستی از to-do دانست که متشکل از لیست کارها است و هرکدام از آن ها محصول قابل تحویل، تولید می کنند.
آنها برای یکدیگر توصیف میکنند که کارشان چگونه پیش میرود، در صورت نیاز درخواست کمک میکنند و در نظر میگیرند که آیا هنوز در مسیر رسیدن به هدف سرعت هستند یا خیر. این یک جلسه وضعیت نیست، بلکه فرصتی برای تیم توسعه است تا محصول و فرآیند را به صورت روزانه بررسی و تطبیق دهد. تیمهای توسعه بزرگ پیچیدگی خیلی زیادی را برای مفید بودن یک فرآیند تجربی به وجود میآورند. نقشهای مالک محصول و اسکرام مستر تا زمانی که تکلیفی در بکلاگ اسپرینت بر عهده نداشته باشند در این شمارش محاسبه نمیشوند. تیم توسعه یک گروه چندکارکردی و خودسازماندهی شده است با مهارتهای لازم جهت انتقال سود در پایان هر اسپرینت. اسکرام تعریف “توسعهدهنده” را به چیزی بیش از برنامهنویس گسترش داده است، که شامل هر کسی میشود که در ارائه سود نقش ایفا میکند.
در واقع اسکرام بخشی از شاخه فرآیند تولید نرمافزار چابک و سریع است و به عنوان یک مدل ایدهآل در مهندسی نرمافزار شناخته میشود. پست مالک محصول، مدیر محصول و تیم توسعه اعضای تیم اسکرام رو تشکیل میدن. حدود ده عضو یا حتی کمتر برای اطمینان از بهینه بودن ارتباطات و بهرهوری و عملکرد بهتر همیشه توصیه میشه. این جلسه بررسی همچنین جایی است که مالک محصول بکلاگ محصول را بر اساس اسپرینت جاری بازبینی میکند و میتواند در نشست برنامهریزی اسپرینت بعدی بررسی کند. در مورد یک اسپرینت یک-ماهه باید جلسه بازنگری حداکثر در یک بازه زمانی چهار ساعته اجرا شود.
با استفاده از این چهارچوب مشتریان میتوانند ویژگیها و امکانات جدید را بعد از تولید محصولات دریافت کنند و در صورت وجود مشکل یا ایراد آن را شناسایی و برطرف نمایند. اسکرام یک چارچوب بسیار مهم و کاربردی است که برای کنترل و مدیریت پروژههای مختلف به کار میرود. به عنوان مثال، یک پروژه نرم افزاری را به عنوان یک سمفونی در نظر بگیرید که تعداد زیادی از نوازندگان با هم کار می کنند تا نتیجهای هماهنگ ایجاد کنند. اسکرام روشی است که همه را هماهنگ نگه میدارد و تضمین میکند که هر یک از اعضای تیم نقش خود را به طور مؤثر ایفا مینماید. چرخه زندگی اسکرام با بک لاگ محصول (Product Backlog) شامل نیازمندی های پروژه و قابلیت های محصول که توسط مالک محصول اولویت بندی شده است آغاز می شود.
در نتیجه، اسکرام محیطی از حمایت و اعتماد ایجاد می کند و انگیزه و روحیه کلی افراد را افزایش می دهد. Sprint دوره زمانی واقعی است که تیم اسکرام با هم کار می کند تا یک افزایش را به پایان برساند. دو هفته طول معمولی برای اسپرینت است اما بسته به نیاز پروژه و تیم می تواند متفاوت باشد. ۴- در مورد کارهای مربوط به تولید محصول مورد نظر یک بکلاگ ایجاد کنید و آنها را اولویتبندی نمایید. آنها تیمها، مالکان محصول و کسبوکار را در فرایند اسکرام هدایت میکند و به دنبال روشهایی برای تنظیم دقیق رویههای خود هستند.
هیچکس نمیتواند تیم توسعه را مجبور به کار بر روی یک سری نیازمندی دیگر کند. به طور کلی در جواب اسکرام چیست میتوان گفت اسکرام چارچوبی Agile یا چابک برای پیشرفت، انجام و پیشبرد پروژههای پیچیده است که اوایل بیشتر برای مدیریت پروژههای نرم افزاری استفاده میشد. اما از آنجایی که یادگیری آن آسان و کار با آن راحت است، امروزه در بخشهای دیگر از جمله تیمهای تحقیقاتی، فروش، بازاریابی و فناوریهای پیشرفته استفاده میشود. اصطلاح Artifact در اسکرام اشاره به مصنوعاتی دارد که شامل عناصر ملموس، واضح و شفاف در چارچوب اسکرام است و می تواند اطلاعاتی در خصوص محصول، کارهایی که باید انجام شود و میزان پیشرفت پروژه ارائه دهند. Artifact در اسکرام در طول توسعه نرم افزار ایجاد می شود و در طراحی نرم افزار و عملکرد آن موثر است. احترام گذاشتن در تیم اسکرام به معنی اعتماد متقابل اعضای تیم به یکدیگر و ارزش قائل شدن به کار هم است.
در مورد اینکه چرا این سوال بر اساس یک فرض ناقص است، به بخش بالا مراجعه کنید. اگر در مورد خود سازماندهی تیم جدی هستیم (قبل از تمرین اصول را به خاطر بسپاریم)، دعوت از مالک محصول به استند آپ یک تصمیم تیم و مالک محصول است. مطالعه موردی اینتل نشان داد که تیمهای آن ها زمانی که صاحبان محصول را دعوت نمی کردند، به دلیل سال ها عادات فرماندهی و کنترل، کار بهتری انجام می دادند. چگونه تفسیر نادرست از نقش مالک محصول، ارزش تحویل را کاهش می دهد؟ زمانی که مالکان محصول به مدیریت بک لاگ های تیم محدود می شوند، سازمان در معرض خطر ارائه ارزش کمتر به مشتریان است. تیم ها در انزوا کار می کنند، غافل از ارزشمند ترین کار در کارهای عقب مانده تیم های دیگر. این تفکیک مانع از توانایی سازمان برای انطباق سریع با نیازهای متغیر مشتری می شود.
سند اسپرینت فهرستی شامل جزئیات هر اسپرینت، افراد اختصاص داده شده برای هر کار، زمان اسپرینت، رفع اشکالات و نقش هر فرد در انجام پروژه است. در این سند مشخص میشود که کارهای روزانه هر فرد چیست و چه اهدافی دارد. همچنین تاریخ برگزاری جلسات و اینکه در هر جلسه چه چیزی باید ارائه شود، مشخص میگردد. بک لاگ محصول براساس تقاضای کاربران یا مشتریان و براساس داستان آنها آماده می شود. شجاعت برای یک تیم اسکرام صرفاً شجاعت زیر سوال بردن وضعیت موجود یا هر چیزی است که توانایی آن را برای موفقیت مختل می کند.
تیم توسعه پروژه با آگاهی از عملکرد تیم اسکرام و کارهای انجام شده می داند که چه بازه زمانی برای هر اسپرینت مناسب است. تطبیق یا سازگاری در اسکرام به معنی میزان توانایی منطبق شدن با بازرسی هاست. همه اعضای تیم باید بدانند وضعیت سازمان نسبت به گذشته در چه موقعیتی قرار دارد؟ در کسب و کارهایی که به میزان درآمدسازی و سودآوری تاکید می شود ارزش محصول نیز براساس سودآوری بدست می آید اما میزان تطبیق نیز به مدیریت چابکی موثر است. سازمان ها براساس برنامه ریزی اسپرینت(sprint planning)، اسکرام دیلی(Daily Scrum)، بازبینی اسپرینت(Sprint Review) و اسپرینت رترو(Sprint Retrospective) به تطبیق به عنوان یکی از ستون های اسکرام می پردازند. در ادامه و سال 1993 سادرلند در راس تیم شرکت easel مدیریت پروژه اسکرام را توسعه داده اند. جلسه مربوط به بررسی اسپرینت یک جلسه غیررسمی است که معمولاً بعد از پایان اسپرینت برگزار میشود و طی آن تیم اسکرام و ذینفعان آنچه را که در طول مدت اسپرینت انجام شده، مورد بررسی و ارزیابی قرار میدهند و در مورد آن صحبت میکنند.
رویکرد سنتی دریافت مشخصات یکپارچه از بخشهای داخلی و واگذاری کار به سایر تیمهای داخلی میتواند نوآوری را خفه کند، مانع سازگاری شود و منجر به عدم مالکیت و پاسخگویی شود. همه اعضای تیم، یعنی مالک محصول، اسکرام مستر و تمام تیم توسعه در جلسه شرکت می کنند. کل تیم اسکرام باید بفهمد و تعریف کند که چه هدفی باید در آن اسپرینت به دست آید (هدف اسپرینت). از این نقطه، تیم توسعه باید یک برنامه کاری برای دستیابی به هدف طراحی کند. این برنامه ریزی باید به شما این امکان را بدهد که ببینید آیا هدف اسپرینت با توجه به مدت زمان تعیین شده برای اسپرینت ها (که 2 تا 4 هفته است) شامل حجم کاری است یا خیر.
همانطور که در پادکست تاک شد پلاس گفته شد، متدولوژی اسکرام بهطور گسترده توسط توسعهدهندگان نرمافزار، مدیران پروژه، صاحبان محصول، و تیمهای چابک در صنایع مختلف بهکار گرفته میشود. این چارچوب چابک به تیمها این امکان را میدهد که به سرعت و با انعطاف به تغییرات در نیازمندیها و شرایط پروژه واکنش نشان دهند. توسعهدهندگان از قابلیت تحویل مداوم ارزش به مشتری و مدیران پروژه از تسهیل در مدیریت و کنترل پروژه بهره میبرند. صاحبان محصول از تعامل مداوم با تیم و امکان بهروزرسانی محصولات به موقع بهرهمند میشوند. این متدولوژی، با اینکه برای پروژههای مختلف قابل استفاده است، امکانات و اصول خود را برای توسعه نرمافزارها و پروژههای چابک بهویژه به نمایش میگذارد و از مزایا و معایب خاص خود بهرهمند است. چابک یک رویکرد فلسفی و متدولوژیک است که بر تعامل، انعطافپذیری، و ارائه ارزش به مشتری تأکید دارد.
این ارزش های پنج گانه اسکرام به تیمهای توسعه کمک میکنند تا پروژههای خود را به طور موثر مدیریت کنند و محصولاتی با کیفیت بالا تحویل دهند. گذشته نگر یا Retrospectives با هدف بازبینی همه موارد که آیا طبق برنامه ریزی پیش رفته است یا نه؟ صورت می گیرد و بر روند کلی کار تاکید دارد. Retro در بازه زمانی نهایتا 3ساعته که می تواند در 4هفته تقسیم شود بررسی می شود که چه مواردی به خوبی انجام شده، چه مشکلاتی وجود داشته و تیم اسکرام چطور می تواند برای اسپرینت بعدی روند را بهبود دهد. شاید در ابتدا هماهنگکردن افراد برای استفاده از این روش کمی سخت به نظر برسد، اما در نهایت با تمرین و تکرار چهارچوب اسکرام برای انجام فعالیتهای مختلف در سازمان به یک فرهنگ تبدیل خواهد شد. در ابتدای هر اسپرینت معمولاً یک جلسه کاری برگزار میشود تا برنامهریزیهای اسپرینت جاری انجام شود. هر روز اعضای تیم دور هم جمع میشوند و در مورد کارها با هم صحبت میکنند.
تیمهای نرمافزاری از اسکرام برای حل مشکلات پیچیده بهطور مؤثر و پایدار استفاده میکنند. اسپرینتها هسته اصلی اسکرام را تشکیل میدهند و در واقع به دورههای زمانی تکرار شونده اشاره دارند و طی این دورهها محصول به تدریج کامل شده و در پایان دوره زمانی هر تکرار، شرایط محصول مورد بررسی قرار میگیرد. در اسپرینتها لازم است تعیین شود که چه کارهایی باید انجام شود، چه نیازمندیهایی وجود دارد و چگونه میتوان آنها را به بهترین شکل ممکن به اتمام رسانید. با این حال یادگیری اسکرام به زمان نیاز دارد، به خصوص اگر تیم توسعه به استفاده از مدل آبشاری معمول خو کرده باشد. مفاهیم تکرارهای سریع، جلسههای اسکرام روزانه، بررسیهای اسپرینت و شناسایی اسکرام مستر میتواند چالش بزرگی برای یک تیم جدید باشد.
برنامه نویسی چیه