توسعه نرم افزار به روش اسکرام (قسمت اول)

توسعه یک نرم‌افزار تنها نوشتن کدهای برنامه نیست بلکه چرخه‌ای از تمامی فرآیندها جهت ساخت نرم‌افزارها است که این مراحل شامل جمع آوری نیازهای کاربران، طراحی، نوشتن کد و در آخر تست و کنترل کیفیت نرم‌افزار است. با انتخاب یک متدولوژی‌ مناسب، می‌توان روالی مناسب به منظور تولید نرم‌افزارهای کوچک و بزرگ به‌وجود آورد.
کد خبر: ۷۵۸۲۷۲
توسعه نرم افزار به روش اسکرام (قسمت اول)

به گزارش جام جم کلیک: توسعه یک نرم‌افزار تنها نوشتن کدهای برنامه نیست بلکه چرخه‌ای از تمامی فرآیندها جهت ساخت نرم‌افزارها است که این مراحل شامل جمع آوری نیازهای کاربران، طراحی، نوشتن کد و در آخر تست و کنترل کیفیت نرم‌افزار است. با انتخاب یک متدولوژی‌ مناسب، می‌توان روالی مناسب به منظور تولید نرم‌افزارهای کوچک و بزرگ به‌وجود آورد.

در این مطلب به بررسی یکی از این متدلوژی ها به نام اسکرام پرداخته شده است. از آن جایی که هر پروژه نرم‌افزاری با دیگر پروژه‌ها متفاوت است، می‌توان گفت که فرایند تولید آن پروژه نیز با دیگر پروژه‌ها تفاوت دارد. در نتیجه انتخاب این روش‌ها رابطه مستقیمی با اندازه گروه در پروژه دارد و توسعه نرم‌افزارهای مختلف نیاز به رویه‌های تولید متفاوت دارند. اسکرام یکی از متدولوژی های توسعه ی چابک است که در این متدولوژی خواسته‌های مشتری از محصول، اولویت بندی شده و تاکید آن بر روی انجام درخواست‌‌‌های مشتری با اولویت بالاتر است. در شماره اول این مقاله، ابتدا تاریخچه پیدایش متدولوژی اسکرام به طور کامل معرفی می شود. سپس در شماره های بعد نقش افراد و تیم توسعه در این متدولوژی تشریح، جلسه های مختلف آن بررسی وابزارهایی که در آن به کار می روند معرفی می‌گردند.

تاریخچه اسکرام

سال‌ها قبل از اینکه اسکرام به عنوان یکی از محبوب‌ترین اعضای خانواده توسعه نرم‌افزارهای چابک مطرح باشد، توسط پرفسور Hirotaka Takeuchi تدوین شده بود. آقای تاکچی، که علاوه بر تدریس در مدرسه کسب و کار هاروارد (HBS) یکی از 10 پروفوسور برتر در حوزه‌ی کسب و کار به انتخاب BusinessWeek است، از اسکرام به عنوان "یک استراتژی منعطف و جامع برای توسعه محصول که در آن تمامی تیم‌های توسعه به عنوان یک واحد برای رسیدن به هدف مشترک عمل می‌کنند" نام برده بود. این اولین تعریف از مفهوم اسکرام در سال 1986 در حوزه‌ی توسعه محصول است.

در اوایل دهه 90، آقای کن شوئیبر اقدام به پیاده سازی و توسعه آنچه بعدها به نام فرآیند اسکرام شناخته شد، در شرکت خود کرد. Ken Schwaber چند سال بعد، به همراه آقای جف سادرلند برای اولین بار فرآیند توسعه نرم‌افزار اسکرام را در کنفرانس OOPSLA سال 1995 معرفی کردند. کن شوئیبر در سال 2001 یکی از اعضای موثر ایجاد بیانیه چابکی (The Agile Manifesto) بود. جف سادرلند بخش‌های مهمی از این بیانیه را نوشت.

عرصه جدید توسعه محصولات جدید 1986

در مقاله‌ای که در ژانویه سال 1986 در مجله Harvard Business Review تحت عنوان The New New Product Development Game منتشر شد، Hirotaka Takeuchi و Ikujiro Nonakaاولین قدم‌های معرفی بنیان اسکرام نهاده شد. در این مقاله، شش ویژگی روش توسعه محصول جدید که در آمریکا و ژاپن در حال استفاده بود، ارایه شده است که عبارتند از:

  1. بی ثباتی درونی - built-in instability
  2. تیم‌های پروژه خود سازمانده - self-organizing project teams
  3. فازهای توسعه هم پوشان - overlapping development phases
  4. یادگیری متداوم - multilearning
  5. کنترل نامحسوس - subtle control
  6. انتقال دانش سازمانی

این شش ویژگی، مانند اجزای یک پازل در کنار یکدیگر می‌توانند موجب ایجاد فرآیندهای توسعه محصول جدید منعطف و سریعی شوند که عامل تغییر در آن نه تنها بازدارنده نیست، بلکه در صورت استفاده درست می‌تواند تبدیل به ماشین خلاقیت و ایجاد ایده‌هایی مبتنی بر نیاز بازار شود.

تدوین چارچوب فرآیند اسکرام

پس از معرفی رسمی اسکرام از سوی سادرلند و شوئیبر در کارگاره Business Object Design and Implementation که بخشی از رویداد OOPSLA '95 در شهر آستین بود، این دو نفر تلاش کردند تا این فرآیند را به عنوان روشی که امروزه به نام اسکرام می‌شناسیم به صنعت نرم‌افزار معرفی کنند. در سال 2001، شوئیبر به همراه مایک بِدل، در کتاب Agile Software Development with Scrum اسکرام را به صورت مکتوب به عنوان یکی از روش‌های توسعه چابک معرفی کردند.

هر چند اسکرام مخفف کلمه‌ی خاصی نیست، و بیشتر به خاطر اشاره شوئیبر به بازی راگبی است که افراد برای به دست آوردن توپ نهایت تلاش خود را کرده و پس از رسیدن به آن تا مقصد با تکنیک ها و مهارت هایی که تا کنون کسب کرده اند. توپ (هدف) را به شکل درست تا رسیدن به مقصد هدایت می کنند. برخی شرکت‌ها هنگام نوشتن این کلمه از حروف بزرگ (SCRUM) استفاده می‌کنند.

در سال‌های بعد، Scrum Alliance متولی توسعه اسکرام و همچنین برنامه‌های آموزشی و اعتبار سنجی مانند Certified Scrum Master بود. در سال 2009، Ken به عنوان یکی از اعضای اصلی Scrum Alliance این گروه را ترک کرد و با راه‌اندازی scrum.org تلاش کرد تا اصالت روش اسکرام را حفظ کند و آن‌را توسعه دهد.

نقش اعضای تیم در پروژه چابک اسکرام

روش‌های مدیریت پروژه سنتی شامل نقش‌های بسیاری از جمله مدیر محصول، راهنمای تیم وغیره است که تمامی این نقش‌ها الزامی نبوده و از تیم‌های اسکرام حذف شده و به 3 دسته کلیدی تقسیم شده است که نقش هر یک از آنها و همچنین انجمن هایشان به طور مشخص و به تفکیک آورده شده است. در ادامه به بررسی 3 عضو سهامدار کلیدی و سپس چگونگی ارتباط آنها با یکدیگر پرداخته شده است.

صاحب محصول

صاحب محصول شخصی است که چشم انداز پروژه (یا محصولی که باید تولید شود) را ارائه می‌کند. قسمت‌های مورد ساخت را اولویت بندی کرده و از طرف تیم برای پروژه تصمیم گیری‌های کلیدی را انجام می‌دهد. در حالی که در حین اجرای پروژه، صاحب محصول مسئول انجام کارهای ناتمام، ایجاد ارتباط بین سهامدران و توسعه دهندگان، مدیریت انتظارات کاربر نهایی (یا مشتری) و مدیریت بودجه (ROI) است، همچنین کسی است که مسئول پاسخگویی درباره کیفیت محصول و یا انجام دادن هرگونه ارتقا مورد نیاز است. صاحب محصول بودن، به معنی بودن کسی است که مسئول نهایی شکست و یا پیروزی محصول است.

مدیر اسکرام

مدیر اسکرام مسئول حل هرگونه مشکلی است که تیم در حال ساخت محصول، با آن مواجه می‌شود. نیازی نیست که مدیر اسکرام تمامی الزامات را درک کند بلکه او فقط باید قادر به پیدا کردن راه حل در شرایط مختلف باشد. او باید بهترین شرایط کاری ممکن را برای اعضای گروه ایجاد و حفظ کند به طوری که اعضاء به طور موثر به اهداف هر اسپرینت دست پیدا کنند. او همچنین مسئول هدایت تیم، ساخت یک محیط قابل اعتماد در تیم، تسهیل بحث، مذاکره و ارتباطات و از بین بردن موانع و مشکلات است.

تیم توسعه اسکرام

تیم اسکرام یک تیم عملکرد متقابل است که مسئول توسعه محصول است. اسکرام تیم کوچکی متشکل از توسعه دهندگان، تحلیل گران کسب و کار، تست کنندگان و غیره است. تیم اسکرام به صورت ایده آل از )2+/-7 (فرد تشکیل شده است. اعضای تیم با هم و پشت سرهم برای ساخت یک برنامه کار می‌کنند. فعالیت‌های هر یک از اعضای تیم طوری چیده شده که اهداف مرتبط به یک اسپرینت خاص بدست آید. اعضای تیم همچنین مسئول شناسایی پیچیدگی وظایف (تخصیص داده شده به آنها) وتخصیص میزان تلاش (به ساعات/روز) به آنها است. آنها مسئولند که وضعیت پروژه روزانه خود ومسائلی که با آنها مواجه می‌شوند را به مدیر اسکرام گزارش داده و یک نسخه نمایشی از فعالیت‌هایی که توسط آنها در طول بررسی اسپرینت به پایان رسیده به صاحب محصول ارائه دهند. در واقع آنها هستند که وظایفی که به صاحبان محصول و مدیران اسکرام مرتبط است را در دست دارند.

روابط متقابل بین سهام داران

3 سهام دار در قالب زیر به هم مرتبط هستند:

  • صاحب محصول بین تیم اسکرام و دارنده سهام پلی ایجاد می‌کند.
  • صاحب محصول هم چنین به صاحب کسب و کار مرتبط است و ارتباط اهداف مالک با تیم اسکرام را نگاه می‌دارد.
  • مدیر اسکرام با هر دو، صاحب کسب و کار و تیم اسکرام در ارتباط است.
  • مدیر اسکرام در حل مسائلی که تیم اسکرام با آن مواجه می‌شود کمک می‌کند.
  • اعضای تیم اسکرام در میان خود همکاری گسترده و یک مدل همکاری توسعه محصول رادنبال می‌کنند.
  • صاحب محصول الزامات کسب و کار را به مدیر اسکرام و تیم اسکرام مربوط می‌سازد.

در شماره بعد به توضیح درباره چگونگی پیاده سازی اسکرام و همچنین تجربه پروژه‌هایی که از اسکرام استفاده کرده‌اند پرداخته می‌شود.

محمد وادوا
امن پرداز

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۲۰
آزاده
Iran, Islamic Republic of
۱۹:۱۶ - ۱۳۹۳/۱۰/۲۱
۰
۰
با سلام
ممنون .. استفاده كردیم.
میلاد
Iran, Islamic Republic of
۲۰:۲۱ - ۱۳۹۳/۱۰/۲۱
۰
۰
خیلی عالی بود ممنون مهندس وادوا
رجایی
Iran, Islamic Republic of
۱۱:۳۰ - ۱۳۹۳/۱۰/۲۲
۰
۰
ممنون مطلب ساده و مفیدی بود ... به شخصه منتظر بخش دوم و خوندن تجربه پروژه ها اسكرام محور هستم.
ممنون میشم از وضع ایران تو این حوزه هم مطلب ارائه كنید
گوبلین كبیر
Netherlands
۱۵:۴۲ - ۱۳۹۳/۱۰/۲۲
۰
۰
با تشكر . بسیار مفید بود
موسوی
Iran, Islamic Republic of
۱۶:۵۲ - ۱۳۹۳/۱۰/۲۲
۰
۰
با تشكر از مطلب جامع و خوبتون
راد
Iran, Islamic Republic of
۱۶:۵۷ - ۱۳۹۳/۱۰/۲۲
۰
۰
جالب بود. ای كاش یك مثال از پروژه هایی كه با این متودولوژی انجام می شوند ذكر می كردید.
احسان
Iran, Islamic Republic of
۱۸:۰۴ - ۱۳۹۳/۱۰/۲۲
۰
۰
چه قدر خوب و آموزنده بود
شریفیان
Iran, Islamic Republic of
۱۸:۰۵ - ۱۳۹۳/۱۰/۲۲
۰
۰
ممنون
بسیار مطلب مفیدی بود
مریم
Iran, Islamic Republic of
۱۹:۲۰ - ۱۳۹۳/۱۰/۲۲
۰
۰
اقای وادوا متشكرم از موضوع مهم و به روزی كه مطرح كردید
باز هم اگر امكانش هست در این موضوعات مطلب بگذارید
با سپاس
حمید
Iran, Islamic Republic of
۱۹:۵۱ - ۱۳۹۳/۱۰/۲۲
۰
۰
خیلی هم خوب, منتظر قسمت بعدی مقاله هستیم. لطفا راجع به مزیتهای این روش به روشهای مشابه هم اشاره كنید.
پویان شاد
Iran, Islamic Republic of
۱۹:۵۶ - ۱۳۹۳/۱۰/۲۲
۰
۰
ممنون، مطلب جامع و اموزنده ای بود.
بخش دوم رو كی میتونیم داشته باشیم؟
جابر
Iran, Islamic Republic of
۲۰:۰۹ - ۱۳۹۳/۱۰/۲۲
۰
۰
خیلی مطلب مفیدی بود مرسی
ﺻﻔﺎ
United States
۲۱:۳۱ - ۱۳۹۳/۱۰/۲۲
۰
۰
بسیار ﺁﻣﻮﺯﻧﺪﻩ ﺑﻮﺩ ﻣﻤﻨﻮﻥ
شروین رشید تبریزی
Iran, Islamic Republic of
۰۹:۲۱ - ۱۳۹۳/۱۰/۲۳
۰
۰
بسیار مفید و آموزنده بود، لطفا در مورد فریم ورك اسكرام بیشتر توضیح بدین؟
خیام
Iran, Islamic Republic of
۰۹:۳۳ - ۱۳۹۳/۱۰/۲۳
۰
۰
لطفا مدارك CSM , CSPO , CSD را هم معرفی كنید با سپاس.
آزاده
Iran, Islamic Republic of
۰۹:۵۵ - ۱۳۹۳/۱۰/۲۳
۰
۰
عالی و آموزنده، سپاسگزارم
بیات
Iran, Islamic Republic of
۱۰:۱۹ - ۱۳۹۳/۱۰/۲۳
۰
۰
ممنون از مطلب بسیار ارزنده شما.
محمد
Iran, Islamic Republic of
۱۱:۱۷ - ۱۳۹۳/۱۰/۲۳
۰
۰
بسیار مفید بود
قاسم فرج پور
United States
۱۱:۳۱ - ۱۳۹۳/۱۰/۲۳
۰
۰
مطلب بسیار جالبی بود.منتظر قسمت دوم هستیم.
به شما افتخار میكنم آقای مهندس وادوا.

دكتر قاسم فرج پور
شاهین
Iran, Islamic Republic of
۰۹:۴۲ - ۱۳۹۳/۱۰/۲۴
۰
۰
ممنون از مقاله خوبتون. امیدوارم هر چه زودتر بستر استفاده از متودولوژی های توسعه نرم افزار در شركتهای داخلی بیش از پیش فراهم شود.

نیازمندی ها