مدیریت پروژه توسط متدولوژی Agile (چابک) چند سالی است که بسیار پرکاربرد شده و معمولا تیم های موفق توسعه برنامه های موبایل، از این متدولوژی استفاده می کنند. علت آن سرعت بسیار بالا، قابلیت انطباق پذیری و ارتباط موثر با مشتریان می باشد. یکی از زیر مجموعه های Agile متدولوژی Scrum است.
به علت کاربرد و فایده زیاد متدولوژی Scrum و تجربه ای که خودم بصورت عملی دارم، تصمیم گرفتم که مقاله ای بنویسم و به کاربرد آن در محیط توسعه و نحوه مدیریت آن بصورت عملی بپردازم که انشاءالله در مقاله های بعد تحت عنوان راهبرد پروژه در متدلوژی scrum توسط Gitlab به آن اشاره خواهم کرد تا بطورکامل به نحوه کار آن آشنا شوید. امیدوارم براتون سودمند باشه. اگر دوستانی هستند که احتمالاً تجربه بهتری دارند آن را بامن به اشتراک بگذارند تا من هم از تجربیاتشون استفاده کنم. در این مقاله سعی می کنم بدون پرداختن به تاریخچه و مقدمه و مسائل کسل کننده برم سر اصل مطلب و این متدولژی رو به زبان ساده و خودمانی را باهم برسی کنیم.
برای این امر از ایجاد تا انجام و نهایی شدن یک پروژه را باهم مرور می کنیم:
قدم اول:
ایده ای به ذهن شما و یا صاحب محصول (product owner) می رسد، بعد از تجزیه و تحلیل مشخص می شود که ایده شما برنامه ای است متشکل از تعدادی امکان یا Feature . این امکانات و Feature ها همانطور که در شکل می بینید در Product Backlog قرار می گیرند. شما اولیت های کار خود را مشخص کرده اید و مشخص است که کدام Feature اولویت بالاتری دارد و مهم تر است. مثلا ایده یک برنامه خبر خوان هست که خبرها را از روی سایت های مختلف بر اساس اولویت کاربر نمایش می دهد. امکانات این برنامه با اولویت عبارتند از: ۱- نمایش خبر ۲-امکان دسته بندی خبر و نمایش بر اساس دسته بندی ۳- امکان مشخص کردن علاقه مندی های کاربر به دسته بندی خاص ۴- امکان انتخاب اندازه و رنگ فونت خبرها
قدم دوم:
بعد از اولیت بندی امکانات این لیست به تیم اجرایی تحویل داده می شود و تیم بر اساس کارایی ها و تخصص های خود این Feature ها را به تعدادی Task (وظیفه) تقسیم می کنند که به مجموعه آن ها Sprint Backlog گفته می شود. این Task ها جنبه فنی دارند و در حقیقت نیازهای صاحب محصول به تعدادی وظایف قابل پیاده سازی تبدیل می شود. با توجه به مثال یادشده ما Task ها به شرح زیر است:
- نوشتن سرویس RSS reader
- سرویس جمع آوری کننده RSS
- سرویس ذخیره سازی RSS و caching
- رابط کاربری (ظاهر برنامه)
- سیستم انتخاب مجموعه ای دلخواه توسط کاربر
- سیستم انتخاب اندازه قلم
- سیستم انتخاب رنگ قلم
Sprint چیست؟ در Scrum به هر دوره کاری یک Sprint می گویند که تکرار شونده هستند و زمان آنها بین ۲ الی ۴ هفته است. در طی هر Sprint تعدادی Task انجام می شود و در طول اجرای Sprint ها محصول کامل و کاملتر می شود.
قدم سوم: (Sprint)
در این مرحله تیم به همراه مدیر تیم که آن را Scrum Master می نامیم بعد از هماهنگی لازم با اعضای تیم درمورد Task های موجود در Sprint Backlog زمان تقریبی هرکدام را مشخص می کنند و در کل زمان Sprint مشخص می شود. ( فرض کنید جمع زمان ۷ وظیفه بالا باتوجه به تعداد افراد و تخصصشان کلا شد ۳ هفته ). در طی این ۳ هفته Scrum master جلسات روزانه ای را با نام Daily scrum برگزار می کند که معمولا بسیار کوتاه و حتی سرپایی هستند که هدف آن ارتباط موثر بین اعضا بوده و دراین جلسات سه مساله مطرح می شود.
- هر شخص از جلسه قبل تا کنون چه کار ی انجام داده است؟
- هرشخص قرار است چه کاری انجام دهد؟
- بیان مشکلات موجود ( در صورت وجود)
قدم چهارم: (Sprint review meeting)
جلسه برسی اسپرینت : بعد از اتمام Sprint جلسه ای برگزار می شود که تیم محصول را به شما و یا صاحب محصول ارائه می دهد. محصول برسی می شود که تا چه حد نیاز های درخواستی را برآورده کرده و با لیست اولیه Feature ها هماهنگی دارد. در صورت کامل بودن محصول نهایی می شود و در صورت بروز مشکل نیز و یا باقی ماندن Feature ها، مرحله قبل(۳) را با Backlog جدید شامل مشکلات تکرار می شود و آنقدر این اسپرینت ها تکرار می شود تا محصول نهایی تولید گردد. البته حتماً قبل از شروع مجدد اسپرینت باید وارد قدم پنجم شویم.
قدم پنجم: (Sprint retrospective meeting)
در این جلسه که جزو حتمی Scrum هست، Scrum Master به همراه اعضای دیگر تیم کنار هم جمع می شوند و عوامل موفقیت و یا شکست در این Sprint را باهم بررسی می کنند. حضور product owner هم بسیار مفید است. اگر تمامی Task ها به موقع انجام نشده دلیلش چه بوده و یا حتی اگر همه چیز سرموقع انجام شده، چه کنیم که Sprint بعدی بهتر پیش رود. اصولا سه سوال مطرح می شود:
- چه کارهایی خوب پیشرفت؟
- چه کارهایی خوب پیش نرفت؟
- چه کنیم؟
این جلسه بسیار حائز اهمیت است زیرا با استفاده از آموزش تیمی باعث بهبود کارای تیم می گردد. باید توجه داشت که ارتباط مستمر افراد و همچنین آموزش از عوامل مهم در Scrum هستند.
تصویر زیر مراحل یادشده را با جزئیات بیشتری به نمایش گذاشته است.
همانطور که گفتم این مقاله مقدمه ای بود برای پیاده سازی Scrum در محیط واقعی را در فرصتی دیگر می نویسم. نظرات خودتون را با من درمیان بگذارید.
سلام
مقاله خیلی خوبی بود.
منتظر بخش عملی با استفاده از گیت لب هستیم.
ممنون
سلام.
مقاله خوب و کاربردی بود.
با تشکر از تلاش و زحمت شما.
با تشکر از دوستان، حتماً در یک فرصتی نزدیک مقاله بخش عملی را خواهم نوشت.
سلام:
ممنون بابت مطلبتون
ممنون میشیم، قسمت عملی رو هم توضیح بدید.
با تشکر
مرسی از مطالب .لطفا ادامه این پست را هم بزارید
سلام رفیق. مطالب و سایتت خیلی عالیه.