اسکرام مستر کیست و چه وظایفی دارد؟
این نقش که معمولا توسط یک نفر ایفا می شود هدایت کننده اسکرام در یک پروژه می باشد. ممکن است به علت نام این نقش این شبهه به وجود آید که اسکرام مستر مدیر اسکرام یا مدیر پروژه می باشد.
اسکرام مستر رهبر اسکرام است و همواره سعی او بر این است که اسکرام توسط تیم به درستی اجرا شود. او همچنین تلاش می کند تا از حاد شدن چالش ها جلوگیری به عمل آورد و در صورت بروز مشکل تیم را در جهت حل آن حمایت کند.
اسکرام مستر دو وظیفه کلی بر عهده دارد : حفظ بهره وری بالا در توسعه و هدایت توسعه. هر کدام از این وظایف جزئی تر شکسته می شوند. این وظایف جزئی را در ادامه توضیح خواهیم داد.
1. انجام جلسات
در اسکرام اکثر ارتباطات گروهی که اغلب منجر به تصمیم گیری می شود در جلسات صورت می گیرد. روند اجرای جلسات اسکرام کاملا تعریف شده و قانونمند است. در گروه (سازمان)های سنتی قوانین اداری و مدیران، انجام جلسات را کنترل و مدیریت می کنند. اما اسکرام دارای مدیریت سطح به سطح نمی باشد و کل اعضای تیم وظیفه کنترل جلسات را بر عهده خواهند داشت.
علی رغم مزیت های بسیاری که جلسات اسکرام برای توسعه خواهد داشت گاهی پیش می آید که تیم از انجام جلسات سر باز می زند و یا اعضا برای عدم حضور در جلسات متوسل به بهانه هایی می شوند. این اهمال کاری می تواند ضربه های جبران ناپذیری به توسعه وارد سازد.
به یاد داشته باشید ما همواره با شمارش معکوس زمان در توسعه نرم افزار روبرو هستیم و اشتباهات کوچک ممکن است برای توسعه و تیم توسعه بسیار گران تمام شود.
همانطور که گفته شد اعضای تیم اسکرام مسئول کنترل جلسات می باشند اما معمولا این شخص اسکرام مستر است که با استفاده از اختیارات خود، تیم را مجبور به برگزاری جلسات می نماید. او باید تضمین کند که جلسات به طور منظم و صحیح انجام شوند. زمان بندی، برنامه ریزی و اجرای جلسات از دیگر وظایف اسکرام مستر می باشند.
2. تضمین نرم افزار کارکننده
در توسعه نرم افزار گاهی پیش می آید که تیم آیتم هایی که برای یک اسپرینت اخذ کرده را به طور کامل تکمیل نمی کند. دلیل آن هم می تواند برآورد اشتباه تیم توسعه از آیتم ها یا رخ دادن اتفاقی پیش بینی نشده در طول توسعه اسپرینت باشد (مثلا بیماری برخی از اعضای تیم). به هر حال آنچه مسلم است این است که در توسعه روند پیش بینی شده ای وجود ندارد. بدیهی است در چنین شرایطی همه آیتم های بک لاگ اسپرینت تکمیل نمی شوند.
تیم ممکن است برای آیتم ها در حالت عادی روندی موازی را پیش گیرد مثلا اگر دو عمل برنامه نویسی و تست برای سه آیتم وجود داشته باشد ابتدا سه آیتم برنامه نویسی شده و هر سه با هم تست می شود.
اگر در اسپرینتی حالتی مانند حالت فوق روی ندهد هیچ قابلیت تعیین شده ای در اسپرینت ظاهر نمی شود. اگر در اسپرینتی حالتی مانند حالت فوق رخ ندهد هیچ قابلیت تعیین شده ای در اسپرینت ظاهر نمی شود. این بدین معنی است که اصل ارائه نرم افزار کار کننده در بیانیه چابک (Agile) نقض می شود. در چنین حالاتی اسکرام مستر وظیفه دارد با تغییر برنامه در خروجی، قابلیت های تکمیل شده را ظاهر نماید.
3. تسهیل ارتباطات
کارهای گروهی با وجود مزیت های بسیار زیاد خود حاشیه هایی را نیز در بر دارند. این حواشی طبیعتا در گروه های خود سازمانده نیز وجود دارد. هرچقدر اعضای یک گروه با یکدیگر متحد و هماهنگ باشند هم ایجاد اصطکاک بین آن ها اجتناب ناپذیر است. در گروه های سنتی معمولا مدیریت حل اختلافات را برعهده دارد. در گروه های اسکرام که خود سازمانده می باشند این وظیفه اسکرام مستر است که روابط اجتماعی بین افراد را بهبود بخشد.
او نه تنها باید مانند یک رهبر مشکلات را حل و فصل کند بلکه باید با مساعد کردن جو اجتماعی محیط کار از بوجود آمدن هرگونه اختلاف و ناهماهنگی پیشگیری نماید. مهم است که کسی که این نقش را برعهده دارد از لحاظ مهارت های اجتماعی، فردی با روابط عمومی بالا و انعطاف پذیر باشد چرا که بنا به تعریف، رهبر شخصی است که پیش روی عده ای حرکت می کند و با قدم برداشتن خود، راه را به دیگران نشان می دهد.
4. هدایت جلسه برنامه ریزی اسپرینت
به جرات می توان گفت جلسه برنامه ریزی اسپرینت یکی از دشوارترین و حساس ترین عملیاتی است که گروه در طی توسعه انجام می دهند. خطا در این جلسه ممکن است به قیمت از دست دادن کل زمان پروژه تمام شود. هر کدام از عملیات تعیین سرعت (حجم) اسپرینت، برآورد آیتم ها و بستن بک لاگ اسپرینت نیاز به مهارت و تجربه خواهد داشت. برخی مواقع به عللی چون عدم تجربه کافی تیم در اسکرام و یا فشار کاری، تیم عملکرد مناسبی در عملیات فوق نخواهد داشت.
اسکرام مستر به عنوان شخصی که تسلط کافی در اسکرام دارد وارد عمل می شود و اشتباهات احتمالی تیم را در تصمیم گیری ها متذکر می شود. علاوه بر تذکرات او باید راه حل هایی برای مشکلات احتمالی بیابد و به تیم ارائه کند. به عنوان مثال اگر تیم در تعیین سرعت اسپرینت دچار مشکل شود او می تواند با استفاده از تکنیک هایی سرعت واقعی تیم را برآورد کند و از این طریق تیم را راهنمایی کند.
5. ردگیری اسپرینت و Release
بخشی از مستندسازی برای ردگیری و نظارت بر روند پروژه استفاده می شود. در اسکرام نموداری وجود دارد به نام Sprint burn down که تیم از طریق آن چگونگی اجرای اسکرام را دنبال می کند. Sprint burn down نموداری است ساده که از دو محور زمان و ساعت کار روی آیتم ها تشکیل شده است. زمان اسپرینت هرچه باشد به صورت تعداد روز در محور X و در محور Y نیز جمع ساعات همه کارهای درون اسپرینت وجود دارد. به عنوان مثال نمودار زیر را مشاهده کنید :
هر روز (معمولا در پایان روز کاری) این نمودار به وسیله نقاطی که روی آن رسم می شود به روز خواهد شد. برای این نقاط قاعدتا دو مختصات نیاز است: روزی که سپری شد (محور X) و میزان ساعات باقیمانده کار (محور Y). برای محاسبه تعداد ساعات باقیمانده باید ساعات آیتم های انجام شده را با هم جمع کنیم و از تعداد کل ساعات کم کنیم. به این ترتیب میزان ساعات باقیمانده در اسپرینت بدست می آید.
اگر برای همه روزهای اسپرینت این عمل تکرار شود مجموعه ای از نقاط بدست می آید. با اتصال این نقاط به وسیله خط روند اجرایی اسکرام بر اساس یک نمودار خطی بدست می آید. خطی فرضی نیز وجود دارد که حالت ایده آل اجرای اسپرینت را نشان می دهد به طوری که میزان کم شدن مجموعه ساعات با روزهای سپری شده اسپرینت کامل هماهنگ می باشند. همانطور که گفته شد این یک حالت ایده آل است و هیچوقت اتفاق نمی افتد و فقط معیاری برای اجرای واقعی اسپرینت است.
اگر خط واقعی بالای خط فرضی باشد به این معنی است که کارها سریع تر از پیش بینی تیم در حال انجام هستند و یا اینکه پیش بینی تیم در خصوص تعداد آیتم های انتخابی نادرست است. همچنین اگر خط واقعی پایین تر از خط ایده آل باشد متوجه خواهیم شد که از زمان بندی عقب افتاده ایم و یا اینکه پیش بینی تیم نسبت به کارهای اخذ شده غیر واقعی بوده است.
تیم وظیفه دارد روزانه این موارد را به روزرسانی کند. چرا که در صورت به روز زسانی مداوم است که این نمودار اثر بخش خواهد بود. بیشترین استفاده از این نمودار مربوط به اسکرام مستر است. او وظیفه دارد روند سابقه اجرایی اسپرینت را بررسی و ردگیری نماید و در صورت بروز مشکل آن را تشخیص داده و سریعا برای رفع آن اقدام کند.
6. نمایندگی گروه
اسکرام برای تیم های بزرگ بهتر است به چند گروه کوچک (مثلا 10 نفره) تقسیم شود و اسکرام در هر گروه به صورت جداگانه ای صورت می پذیرد. نماینده گروه ها به صورت یک کل گروهی را در سطح کلان تشکیل می دهند که به طور مستقیم وظیفه توسعه را بر عهده ندارند و و ظیفه این گروه اغلب مرتبط با تصمیم گیری های استراتژیک می باشد.
بدیهی است که همه اعضای نیم ها مانند آنچه در اسکرام دیده شد نمی توانند در این گروه سطح کلان شرکت کنند. از این رو هر کدام از گروه های کوچک نماینده ای را به گروه سطح کلان می فرستند تا به جای آن در تصمیمات شرکت کند. نمایندگی گروه های اسکرام بر عهده اسکرام مستر است. هر کدام از گروه های سطح پایین توسعه قسمتی از پروژه را بر عهده دارند.
کار گروه سطح کلان بررسی هر قسمت و برنامه ریزی برای آنهاست. با اینکه در اسکرام مدیر پروژه تعریف نشده است اما در حالت کلان معمولا شخصی به عنوان ارشد تعیین می شود که می تواند مدیر پروژه لقب بگیرد. این فرد یا از اسکرام مسترها گزینش می شود و یا به صورت خارجی به این سمت گماشته می شود.
7. بهره وری
بالا نگه داشتن بهره وری تیم از دیگر وظایف اسکرام مستر است. این وظیفه نیز مانند وظیفه پیشین یک وظیفه کلی است و از بخش های جزئی تر تشکیل می شود. هدف وظایفی که در زیر شرح داده خواهد شد افزایش بهره وری تیم می باشد. اسکرام مستر با انجام آنها بهره وری را در توسعه تضمین می کند.
8. انجام جلسات کارا
جلسات عضو جدایی ناپذیر اسکرام می باشند. برگزاری جلسات بسیار مهم و ضروری است. از این رو باید برای آنها نیز برنامه ریزی شود. جلسه ای در اسکرام می تواند مفید باشد که صفت کارایی را یدک بکشد. یک جلسه کارا جلسه ای است که در زمان تعیین شده اهداف از پیش تعیین شده را ارضا کند.
به عنوان مثال در جلسه روزانه اسپرینت اگر همه اعضا گزارش خود را جمعا در 15 دقیقه ارائه کنند و جلسه بیش از این به طول نینجامد، این جلسه می تواند یک جلسه کارا تلقی شود. جلسات به شرط کارا بودن مفید می باشند. جلساتی که کارا نباشند نه تنها مفید نخواهند بود بلکه موجب تلف شدن زمان توسعه نیز می شود. حضور اسکرام مستر در تمامی جلسات الزامی است. چرا که او باید به اجرای جلسات نظارت داشته باشد و کارایی آنها را در سطح بالایی نگه دارد.
اسکرام مستر ابتدا باید برای هر جلسه زمان مناسبی انتخاب نماید. زمان جلسه نه آنچنان باید زیاد باشد که موجب کسالت اعضا شود و نه آنچنان کم که اهداف جلسه ارضا نشوند. اسکرام مستر اگز تشخیص دهد جلسه بیش از حد معمول به طول خواهد انجامید، می تواند جلسه را به چند جلسه با زمان های مناسب تر تقسیم کند.
9. کوچک نگه داشتن تیم
تعداد افرادی که در تیم اسکرام کار می کنند بسیار مهم است. تعداد افراد نباید آنچنان کم باشد که عملیات توسعه ناقص انجام شود. باید برای هر نقش در توسعه (برنامه نویسی، تست و…) حداقل یک نفر وجود داشته باشد. معمولا مالک محصول عضو تیم توسعه به حساب نمی آید اما اسکرام مستر عضوی از تیم توسعه می باشد.
حداقل تعداد افراد برای یک تیم نوعی معمولا 8 نفر است. این تعداد نباید از 12 نفر تجاوز کند. از آنجایی که تیم های اسکرام تیم هایی خودسازمانده می باشند تعداد زیاد افراد باعث ایجاد هرج و مرج خواهد شد. در گروه شلوغ اغلب یکپارچگی از دست می رود و اعضای تیم نمی توانند خود را به خوبی متحد کنند. همچنین تعداد افراد زیاد، افزایش زمان جلسات و کاهش کارایی آن ها را در بر خواهد داشت.
در اینگونه تیم ها معمولا در بین اعضا چند دستگی بوجود می آید در صورتی که همبستگی یکی از ارکان مهم موفقیت هر تیم به حساب می آید. تداخل وظایف یکی دیگر از مضرات ازدیاد افراد تیم می باشد به این دلیل که به ازای یک نقش در توسعه ( یادآوری می شود که نقش های توسعه مانند برنامه نویس و تست با نقش های اسکرام تفاوت دارند) افراد زیادی وجود دارد که باعث می شود برخی اوقات در وظایفشان تداخل ایجاد شود. به طور کلی اسکرام مستر باید تعداد افراد را در حد مناسبی نگه دارد و با احتیاط اقدام به تغییر آن نماید.
10. همخوان کردن افراد با مشاغل
در تیم توسعه هر فرد کاری را انجام می دهد. هر فرد به برخی از شغل ها تمایل بیشتری دارد و برخی شغل ها را نمی پسندد.به دلیل اینکه هر کدام از افراد در توسعه چند مهارت مختلف را دارا هستند، ممکن است در قسمت های مختلفی نیز به کار گرفته شود. عدم رضایت فرد از شغلش باعث می شود او نتواند به خوبی روی کار خود متمرکز شود و در نتیجه بهره وری پایینی داشته باشد. علاوه بر این احتمالا کاری بی کیفیت را در نهایت ارائه خواهد داد.
اسکرام مستر پیرو وظایفی که برای افزایش بهره وری در توسعه به او محول شده باید تضمین کند که افراد روی شغل هایی مناسب گماشته شده اند. گاهی در تیم های کوچک به علت کمبود نیروی انسانی این عمل کمتر اتفاق می افتد. در این حالت باید سعی شود تا افراد مذکور وظایفشان را مطابق میلشان انجام دهند به نحوی که هم از آن رضایت کافی داشته باشند و هم به درستی و همنوا با توسعه انجام شود.
11. تضمین می کند که هر توسعه دهنده ای مشغول کار روی آیتمی است
به دلیل خودسازمانده بودن تیم های اسکرام اغلب هر فرد خود کاری که انجام می دهد را برمی گزیند و از شخص دیگری دستور مستقیم نمی گیرد. در تیم های هماهنگ معمولا مشکل تداخلی با این شیوه پیش نمی آید. اما در برخی تیم ها به خصوص آنهایی که افراد تازه کاری در آن ها کار می کنند، ممکن است برخی افراد در گزینش یک کار مستعصل شوند و کاری را نتوانند انجام دهند و یا اینکه فردی سهوا عملی را انجام می دهد که اصطلاحا دارای ارزش تجاری نمی باشد و کاذب است.
وظیفه اسکرام مستر این است که این گونه حالات را سریعا تشخیص دهد. تشخیص سریع به این دلیل است که به خاطر کوچک بودن تیم های اسکرام عدم حضور موثر یکی از اعضا به شدت محسوس خواهد بود که با نارضایتی دیگر اعضا و از دست رفتن زمان توسعه همراه است. پس از تشخیص چنین حالتی اسکرام مستر باید همخوان با مهارت شخص منفعل، کار موثری را به وی پیشنهاد کند و همچنین از با ارزش بودن اقدامان او اطمینان حاصل کند. در صورت عرم وجود وظیفه ای مناسب برای شخص مذکور، او می تواند با تکنیک هایی چون برنامه نویسی جفتی به دیگر اعضا در توسعه کمک کند.
12. پیش گیری از موانع و رفع آنها هنگام وقوع
موانع به هر مشکلی گفته می شود که نمی توان آن را به راحتی حل نمود و روند توسعه را کند و یا در بدترین حالت متوقف می سازد. موانع کابوس همه توسعه دهندگان هستند. مواجهه با آنها می تواند به قیمت از دست دادن کل زمان اسپرینت تمام شود. عدم دسترسی به یک تکنولوژی عدم وجود نرم افزار یا سخت افزار و حتی از دست دادن یکی از اعضای ایم توسعه می تواند نمونه هایی از یک مانع باشند. یکی از از ویژگی های مهم یکی اسکرام مستر آینده نگری است. او باید وقوع چنین موانعی را پیش بینی کند و برای جلوگیری از آن تدبیری بیاندیشد.
13. تضمین امکانات مناسب
اعضای یک تیم هرچقدر هم که با مهارت و با تجربه باشند بدون امکانات مناسب کاری از پیش نخواهند برد. برای اینکه کارایی یک تیم بالا باشد و کاری با کیفیت تحویل دهد باید امکانات تهیه شده و در دسترس تیم قرار گیرد. این امکانات از هر نوعی می توانند باشند اعم از سخت افزار، نرم افزار، و محیط اداری. با وجود اینکه تهیه این امکانات از وظایف اسکرام مستر نمی باشد، اما او باید با بررسی مرتب آنها صحت کارایی آنها را تضمین کند.
نتیجه گیری
همانطور که مشاهده کردید نقش اسکرام مستر نقشی دشوار و پر وظیفه است. اما اسکرام مستر همواره در حال انجام چنین وظایفی نیست. اصولا اسکرام مستر در وهله اول یک توسعه دهنده می باشد و در کنار توسعه به هدایت تیم اسکرام می پردازد. بنابراین دقیقا مانند هر توسعه دهنده ای مهارت هایی دارد. توسعه دهنده بودن همراه با وظایف اسکرام مستر زمان و کار زیادی می طلبد. از این رو معمولا اسکرام مسترها به نسبت دیگر توسعه دهندگان کار توسعه کمتری انجام می دهند.