اسکرام چیست؟
اسکرام یک چارچوب مدیریتی است که تیمها از آن برای خودسازماندهی و کار به سوی یک هدف مشترک استفاده میکنند. این چارچوب مجموعهای از جلسات، ابزارها و نقشها را برای تحویل کارآمد پروژه توصیف میکند. درست مانند یک تیم ورزشی که برای یک مسابقه بزرگ تمرین میکند، تمرینات اسکرام به تیمها اجازه میدهد خودمدیریتی کنند، از تجربه بیاموزند و با تغییرات سازگار شوند. تیمهای نرمافزاری از اسکرام برای حل مسائل پیچیده به صورت مقرون به صرفه و پایدار استفاده میکنند.
متدولوژی اسکرام چیست؟
اصول و ارزشهای خاصی متدولوژی اسکرام را مشخص میکنند:
اصول اسکرام برای موفقیت پروژه
- شفافیت: تیمها در محیطی کار میکنند که همه از چالشهایی که دیگران ممکن است تجربه کنند آگاه هستند. گفتگوهای منظم چهره به چهره بین اعضای تیم چندوظیفهای و صاحبان پروژه از سوءتفاهم و گلوگاههای اطلاعاتی جلوگیری میکند.
- بازتاب: نقاط بازتاب مکرر در چارچوب تعبیه شدهاند تا به اعضای تیم اجازه دهند پیشرفت خود را بررسی کنند. مدیران پروژه از بینشهای حاصل از این جلسات بررسی برای تخمین و برنامهریزی آینده استفاده میکنند. در نتیجه، پروژهها میتوانند به طور کارآمدتر، در چارچوب بودجه و طبق برنامه اجرا شوند.
- انطباقپذیری: اعضای تیم میتوانند وظایف را بر اساس تغییر الزامات مشتری اولویتبندی مجدد کنند. آنها تصمیم میگیرند کدام وظایف را ابتدا تکمیل کنند و کدام را در آینده مجدداً بررسی کنند.
ارزشهای اسکرام برای تیمهای پروژه
تیمهای اسکرام از پنج ارزش اصلی پیروی میکنند.
- تعهد: اعضای تیم اسکرام به وظایف و اهداف مبتنی بر زمان متعهد هستند و به بهبود مستمر برای یافتن بهترین راه حل اختصاص دارند.
- شجاعت: تیمهای اسکرام با پرسیدن سوالات باز و چالشبرانگیز شجاعت نشان میدهند. آنها بحثهای صادقانه و شفافی برای رسیدن به بهترین راه حل دارند.
- تمرکز: در هر دوره معین، اعضای تیم از یک فهرست عقبمانده محصول (Product Backlog) از وظایف کار خواهند کرد. آنها برای ارائه تحویلها در یک بازه زمانی محدود بر وظایف انتخاب شده تمرکز خواهند کرد.
- گشودگی: اعضای تیم اسکرام پذیرای ایدهها و فرصتهای جدیدی هستند که از یادگیری فردی و کیفیت کلی پروژه پشتیبانی میکنند.
- احترام: اعضای تیم به مدیران پروژه، یکدیگر و فرآیند اسکرام احترام میگذارند. این فرهنگ احترام، روحیه همکاری و تعاون متقابل را در تیم ایجاد میکند.
اسکرام چگونه کار میکند؟
اسکرام چارچوبی است که یادگیری آن آسان است اما تبدیل شدن به یک متخصص در آن دشوار است. بنیانگذاران اسکرام، جف ساترلند و کن شوابر، مفاهیم اساسی را در “راهنمای اسکرام” توضیح دادهاند. این راهنما یک نمای کلی دقیق از فرآیندهای اسکرام و نحوه اجرای مؤثر آنها ارائه میدهد.
ماهیت اسکرام یک تیم خودسازماندهی است که ارزش مشتری را در یک دوره زمانی محدود به نام “اسپرینت” ارائه میدهد. اسکرام مصنوعات، نقشها و رویدادهای مرتبط با هر اسپرینت را تعریف میکند. بیایید هر یک از این موارد را با جزئیات بررسی کنیم.
مصنوعات اسکرام چه هستند؟
تیمهای اسکرام از ابزارهایی به نام مصنوعات اسکرام برای حل مسائل و مدیریت پروژهها استفاده میکنند. مصنوعات اسکرام اطلاعات برنامهریزی و وظیفه مهمی را به اعضای تیم و ذینفعان ارائه میدهند. سه مصنوع اصلی وجود دارد:
- فهرست عقبمانده محصول (Product Backlog): فهرست عقبمانده محصول یک لیست پویا از ویژگیها، الزامات، بهبودها و رفعهایی است که باید برای موفقیت پروژه تکمیل شوند. این اساساً لیست کارهای تیم است که به طور مداوم مورد بازبینی و اولویتبندی مجدد قرار میگیرد تا با تغییرات بازار سازگار شود. مالک محصول لیست را حفظ و بهروزرسانی میکند، موارد نامربوط را حذف میکند یا درخواستهای جدید مشتریان را اضافه میکند.
- فهرست عقبمانده اسپرینت (Sprint Backlog): فهرست عقبمانده اسپرینت لیستی از مواردی است که باید توسط تیم توسعه در چرخه اسپرینت فعلی تکمیل شوند. قبل از هر اسپرینت، تیم انتخاب میکند که روی کدام موارد از فهرست عقبمانده محصول کار کند. فهرست عقبمانده اسپرینت انعطافپذیر است و میتواند در طول یک اسپرینت تکامل یابد.
- افزایش (Increment): افزایش یک گام به سوی یک هدف یا چشمانداز است. این محصول نهایی قابل استفاده از یک اسپرینت است. تیمها میتوانند روشهای مختلفی را برای تعریف و نمایش اهداف اسپرینت خود اتخاذ کنند. علیرغم انعطافپذیری، هدف اسپرینت اساسی – آنچه تیم میخواهد از اسپرینت فعلی به دست آورد – قابل مصالحه نیست.
به عنوان مثال، برخی از تیمها انتخاب میکنند که در پایان اسپرینت چیزی را به مشتریان خود منتشر کنند، بنابراین هدف اسپرینت آنها پس از انتشار تغییر نرمافزار تکمیل میشود. تیمهای دیگر ممکن است روی تکمیل مجموعهای از ویژگیها که با هم منتشر میشوند کار کنند. در این حالت، هدف اسپرینت زمانی تکمیل میشود که یک ویژگی با موفقیت آزمایش شود.
نقشهای اسکرام چه هستند؟
یک تیم اسکرام به سه نقش خاص نیاز دارد: مالک محصول، رهبر اسکرام و تیم توسعه.
- مالک محصول (Product Owner): مالک محصول بر اطمینان از اینکه تیم توسعه بیشترین ارزش را به کسبوکار ارائه میدهد، تمرکز میکند. آنها نیازهای متغیر کاربران نهایی و مشتریان را درک و اولویتبندی میکنند. مالکان محصول مؤثر موارد زیر را انجام میدهند:
- به تیم راهنماییهای واضحی در مورد اینکه کدام ویژگیها را بعداً ارائه دهد، ارائه میدهند.
- شکاف بین آنچه کسبوکار میخواهد و آنچه تیم درک میکند را پر میکنند.
- تصمیم میگیرند که انتشارها چه زمانی و با چه فرکانسی باید اتفاق بیفتند.
- رهبر اسکرام (Scrum Leader): رهبران اسکرام قهرمانان اسکرام در تیمهای خود هستند. آنها مسئول اثربخشی تیم اسکرام هستند. آنها به تیمها، مالکان محصول و کسبوکار مربیگری میکنند تا فرآیندهای اسکرام خود را بهبود بخشند و تحویل را بهینه کنند. رهبران اسکرام همچنین مسئول انجام موارد زیر هستند:
- منابع مورد نیاز برای هر اسپرینت را برنامهریزی میکنند.
- سایر رویدادهای اسپرینت و جلسات تیم را تسهیل میکنند.
- تحول دیجیتال را در تیم رهبری میکنند.
- در هنگام اتخاذ فناوریهای جدید، آموزش تیم را تسهیل میکنند.
- برای حل هر چالشی که ممکن است تیم به طور کلی با آن مواجه شود، با گروههای خارجی ارتباط برقرار میکنند.
- تیم توسعه اسکرام (Scrum Development Team): تیم اسکرام از آزمایشکنندگان، طراحان، متخصصان UX، مهندسان عملیات و توسعهدهندگان تشکیل شده است. اعضای تیم مهارتهای مختلفی دارند و به یکدیگر آموزش متقابل میدهند، بنابراین هیچ فردی گلوگاه تحویل کار نمیشود.
جف بزوس، بنیانگذار آمازون، قانون دو پیتزا را هنگام تصمیمگیری در مورد اندازه تیم توصیه میکند: یک تیم باید به اندازه کافی کوچک باشد که دو پیتزا را به اشتراک بگذارد.
تیمهای توسعه اسکرام موارد زیر را انجام میدهند:
* به طور مشترک برای اطمینان از تکمیل موفقیتآمیز اسپرینت کار میکنند.
* از شیوههای توسعه پایدار حمایت میکنند.
* خودسازماندهی میکنند و با نگرش “ما” به پروژههای خود نزدیک میشوند.
* برنامهریزی و تخمین میزان کاری که میتوانند برای هر اسپرینت تکمیل کنند را هدایت میکنند.
رویدادهای اسکرام چه هستند؟
رویدادهای اسکرام یا مراسم اسکرام مجموعهای از جلسات متوالی هستند که تیمهای اسکرام به طور منظم انجام میدهند. برخی از رویدادهای اسکرام شامل موارد زیر است:
-
- برنامهریزی اسپرینت (Sprint Planning): در این رویداد، تیم کار مورد نیاز برای تکمیل در اسپرینت بعدی را تخمین میزند. اعضا اهداف اسپرینت را تعریف میکنند که مشخص، قابل اندازهگیری و قابل دستیابی هستند. در پایان جلسه برنامهریزی، هر عضو اسکرام میداند که چگونه هر افزایش میتواند در اسپرینت تحویل داده شود.
- اسپرینت (Sprint): اسپرینت دوره زمانی واقعی است که تیم اسکرام با هم کار میکند تا یک افزایش را به پایان برساند. دو هفته طول معمول برای یک اسپرینت است، اما بسته به نیازهای پروژه و تیم میتواند متفاوت باشد. هرچه کار پیچیدهتر و ناشناختهها بیشتر باشد، اسپرینت باید کوتاهتر باشد.
- اسکرام روزانه یا ایستاده (Daily Scrum or stand-up): اسکرام روزانه یک جلسه کوتاه است که در آن اعضای تیم بررسی میکنند و برای روز برنامهریزی میکنند. آنها در مورد کار تکمیل شده گزارش میدهند و هر چالشی را در دستیابی به اهداف اسپرینت بیان میکنند. به آن ایستاده میگویند زیرا هدف این است که جلسه را تا حد امکان کوتاه نگه دارند – مانند زمانی که همه ایستادهاند.
- بررسی اسپرینت (Sprint Review): در پایان اسپرینت، تیم برای یک جلسه غیررسمی گرد هم میآید تا کار تکمیل شده را بررسی کند و آن را به ذینفعان نشان دهد. مالک محصول همچنین ممکن است فهرست عقبمانده محصول را بر اساس اسپرینت فعلی بازسازی کند.
- بازنگری اسپرینت (Sprint Retrospective): تیم گرد هم میآید تا آنچه در طول اسپرینت کار کرده و آنچه کار نکرده است را مستند و بحث کند. از ایدههای تولید شده برای بهبود اسپرینتهای آینده استفاده میشود.
چرا اسکرام در توسعه نرمافزار مهم است؟
انواع تیمها، مانند منابع انسانی، بازاریابی و طراحی، به طور مؤثر از اسکرام استفاده میکنند. با این حال، اسکرام در تیمهای توسعه نرمافزار و مهندسی رایجتر است. این به تیمها اجازه میدهد تا بدون اینکه هزینهها و بودجهها از کنترل خارج شوند، سریعتر به الزامات متغیر پاسخ دهند. به دلایل زیر مهم است:
- توانایی حفظ کیفیت در شرایط چالشبرانگیز: بررسیهای تضمین کیفیت در چارچوب اسکرام تعبیه شدهاند. تیمها الزامات را در ابتدای هر اسپرینت تعریف میکنند. تیمها همچنین چرخه عمر نرمافزار یا محصول را به طور جامع در حین ایجاد یک چشمانداز تیمی از “انجام شده” ارزیابی میکنند. این بدان معناست که الزامات در یک بازه زمانی کوتاه مرتبط و قابل دستیابی باقی میمانند. بازخورد منظم مالک محصول و بررسیهای اسپرینت امکان بهبود مستمر تیم را در طول پروژه فراهم میکند.
- افزایش بازگشت سرمایه (ROI): تیمهای اسکرام الزامات را بر اساس ارزش مشتری و تحلیل ریسک اولویتبندی میکنند. تمرکز بر توسعه یک محصول کاری اولیه است که میتواند برای جمعآوری بازخورد اولیه مشتری به بازار عرضه شود. توسعه اسکرام با نقصهای پرهزینه کمتر، کارایی تیم و رویکرد “سریع شکست بخور” که در دراز مدت باعث صرفهجویی در هزینه میشود، مشخص میشود.
- تیمهای شادتر و سازندهتر: ساختارهای تیمی خودمدیریت و خودسازماندهی به اعضا اجازه میدهد خلاقتر و نوآورتر باشند. اعضا انعطافپذیری سازماندهی کار خود را مطابق با سبکهای کاری، شخصیتها و اهداف زندگی شخصی خود دارند. کار چندوظیفهای به اعضا اجازه میدهد مهارتهای جدیدی را بیاموزند و به یکدیگر مربیگری کنند. در نتیجه، اسکرام محیطی از حمایت و اعتماد ایجاد میکند و انگیزه و روحیه کلی افراد را افزایش میدهد.
- متریکهای مرتبط که تخمین را بهبود میبخشند: تیمهای اسکرام متریکهای خود را برای اندازهگیری عملکرد پروژه انتخاب میکنند. آنها جدول زمانی، بودجه و متریکهای کیفیت را بر اساس تجربه و قابلیتهای خود تخمین میزنند. مالک محصول کنترل دارد زیرا تخمینها نسبی هستند. تیمها در ابتدای پروژه حمایت بیشتری دریافت میکنند و به طور طبیعی با گذشت زمان سرعت میگیرند. ذینفعان پروژه محصولات کاری را بررسی میکنند و بازخورد منظم ارائه میدهند تا اطمینان حاصل شود که پروژه در مسیر خود باقی میماند.
اسکرام در مقابل اجایل (Agile) – تفاوت چیست؟
اجایل به یک طرز فکر یا روش تفکر در توسعه نرمافزار اشاره دارد. این یک فلسفه است که در سطح سازمانی اتخاذ میشود تا هر عضو تیم را بر بهبود مستمر و ارائه ارزش به مشتریان متمرکز کند. اسکرام چارچوبی برای انجام کار در چارچوب اجایل است. اسکرام از تمام اصول اصلی اجایل برای تعریف روشهایی برای تسهیل یک پروژه استفاده میکند. با این حال، توجه به این نکته مهم است که اجایل همیشه به معنای اسکرام نیست. روشهای مختلف زیادی رویکرد اجایل را برای مدیریت پروژه اتخاذ میکنند.
تیمهای توسعه اسکرام چگونه میتوانند DevOps را اتخاذ کنند؟
DevOps فلسفههای فرهنگی، شیوهها و ابزارهایی را ترکیب میکند که توانایی یک سازمان را برای ارائه برنامهها و خدمات با سرعت بالا افزایش میدهد. DevOps سیلو بین تیمهای توسعه و عملیات را حذف میکند. مهندسان در کل چرخه عمر برنامه، از توسعه تا آزمایش، استقرار و عملیات، کار میکنند. این به توسعه طیف وسیعی از مهارتها که محدود به یک عملکرد واحد نیست، کمک میکند.
تیمهای اسکرام در موقعیت خوبی برای اتخاذ DevOps قرار دارند. آنها از قبل چندوظیفهای و تکراری هستند. برخی از ایدهها برای ادغام DevOps شامل موارد زیر است:
- خودکارسازی تست نرمافزار و نوشتن تستهای جدید برای هر توسعه ویژگی
- استفاده از یک پشته فناوری و ابزارهایی که از استقرار مداوم پشتیبانی میکنند
- انتشار تغییرات در تولید در پایان هر اسپرینت