الف – تعامل و همکاری با مشتری مهم است
اعلامیه Agile رضایت مشتری را بر مذاکره در مورد قرارداد را ارجح تر میداند. این ارزش چابک بیان می کند که تنها راه جلب رضایت واقعی مشتری درگیر کردن مداوم او در فرآیند توسعه آزمون محور است.تیم پروژه باید یه طور مداوم به مشتری مراجعه کند تا تجربه عملی او را در مورد استفاده از محصول بدست آورد. پس از آن تیم توسعه دهنده، نرم افزار را بر اساس نیازهای مشتری توسعه خواهد داد.
این روند همکاری مداوم تنها راه برای ایجاد یک محصول نهایی است که نیازهای محصول مشتری را برآورده می کند.مطمئناً می توانید ذهن مشتری را خوانده و با تصور خودتان محصول را توسعه دهید، ولی به موفقیت آن خیلی امیدوار نباشید.
ب – تغییرات را با آغوش باز بپذیرید
بیشتر متدولوژی های مدیریت پروژه دیگر، تغییر را جهشی غیرضروری در هزینه پروژه میدانند ولی در روش مدیریت پروژه Agile اینگونه نیست.مانیفست چابک میگوید که تغییر، تنها راه از بین بردن ویژگی های ناکارآمد و دستیابی به بهبود مستمر است.
این بدان دلیل است که فرضیه های اولیه در مورد یک پروژه اغلب دارای اشکال است و در این صورت، تلاش برای تطبیق الزامات پروژه با آن مفروضات معیوب منجر به تولید محصولات ناکارآمدی میشود که هیچ کس واقعاً خواهان آن نیست! به همین دلیل هر اسپرینت به تیم شما فرصت کافی می دهد تا هر مرحله توسعه پروژه را بررسی کنید و تغییرات را آسان پذیرفته و آنها را اجرایی کنید که این انعطاف پذیری بیشتری به شما می دهد.
ج – تعامل مهمتر از فرایند هاست
یکی از مهمترین مزایای مانیفست چابک این است که اولویت افراد و تعاملات را نسبت به محصولات و فرآیندهای نرم افزاری در نظر می گیرد.
چرا؟
زیرا، هر چقدر ابزار ها و نیاز های مشتریان پیچیده تر باشد، در نهایت این یک فرد است که آن فرایند ها را اجرا میکند و برای درک بهتر فرایند ها باید بتوانید با آن آفراد تعامل بیشتر و بهتری داشته باشید.
د – تحویل نرمافزار کارآمد مهمتر از مستندات است
Agile تحویل یک نمونه اولیه ای که کار می کند را در اولویت قرار می دهد تا اینکه زمان خود را صرف تهیه مستندات کامل و جامع کنید.به عنوان مثال، وقتی محدودیت زمانی دارید، روشهای Agile بر تحویل ارزش تأکید دارند، یعنی تحویل یک محصول کارآمد مهم تر از تهیه مستندات با جزئیات است.
چرا؟
همیشه می توانید زمان دیگری مستندات را تهیه کنید، اما اگر تحویل محصول نهایی را در اولویت قرار ندهید، مهلت خود را از دست می دهید! البته این بدان معنا نیست که این روش مدیریت پروژه، اسناد را بی فایده می داند.
ساختار یک تیم چابک چگونه است؟
یک تیم چابک معمولاً یک گروه کوچک 5 تا 7 نفره است که مالک محصول نیز در آن حضور دارد و به تیم کمک می کند تا نیاز مشتریان را درک کند. اسکرام مستر نیز به نوبه خود وظیفه دارد اعضای تیم توسعه وظایف خود را به درستی انجام دهند.
با این حال، بهترین چیز در مورد Agile این است که با کل کار شما سازگار است. به همین دلیل است که به ندرت دو شرکت را پیدا میکنید که اجایل را دقیقا به مانند هم اجرا کرده باشند.
الف – مالک محصول کیست؟
مالک محصول مسئول برقراری ارتباط با مشتریان و درک نیازهای آنها است. مالک محصول نظرات مشتری را جمع آوری و تحلیل می کند و در نهایت با تیم پروژه برای کمک به آنها در ایجاد تغییرات لازم ارتباط برقرار می کند.
ب – در Agile مدیر پروژه چه نامیده می شود؟
برای مدیر پروژه Agile اصطلاح خاصی وجود ندارد ولی میتوان بخشی از مسئولیت ها آن را در نقش اسکرام مستر دید که تیم های توسعه محصول را هدایت می کنند. آنها پس از دریافت اطلاعات از مالک محصول، تیم های توسعه دهنده نرم افزار را از طریق اسپرینت های مختلف راهنمایی می کنند.
ج – اعضای تیم توسعه چه کسانی هستند؟
اعضای تیم توسعه افرادی هستند که به طور فعال روی پروژه کار می کنند. اینها می توانند طراحان، برنامه نویسان، مهندسان یا هر فرد دیگری باشند که به طور فعال در پروژه فعالیت می کند که وظیفه آنها شرکت در اسپرینت ها و پیشبرد پروژه است.
د – ذینفعان پروژه چه افرادی هستند؟
هر فردی که با پروژه در ارتباط است ذینفع پروژه است، حتی اگر جز نقش های چابک نباشد و در پروژه فعالیتی نداشته باشد. اینها می تواند شامل مدیران ارشد پروژه، بازاریابان و فروشندگان یا اعضای تیم پشتیبانی باشد که اطلاعات آنها به هدایت پروژه در مسیر درست کمک خواهد کرد.
روش های مختلف مدیریت پروژه چابک کدامند ؟
در روش مدیریت پروژه Agile تنوع زیادی وجود دارد.
با این حال، چهار مورد از محبوب ترین ها:
- Scrum
- Kanban
- Lean
- Extreme Programming
در این بخش شرح مختصری از هر کدام داده شده است:
1. اسکرام
مدیریت پروژه اسکرام یک روش محبوب Agile است .
- شامل یک استاد اسکرام (مدیر پروژه) و یک تیم خود سازمانده.
- شکستن کل چرخه عمر یک محصول در بسته های زمانی جداگانه به نام اسپرینت.
- یک تیم اسکرام که در اسپرینت کار می کند که از یک تا چهار هفته طول می کشد.
- گروه های چند منظوره با تخصص های متفاوت که بتوانند همدیگر را پوشش دهند.
- بهترین برای: پروژه های طولانی تر که دائماً متحول می شوند و تغییر می کنند.
2. کانبان
کانبان یک تکنیک برای مدیریت یک پروسه توسعه نرم افزاری توسط روشی با اثربخشی بالاست.
- کانبان یک مدل شناور و در حال گسترش است. هیچ دوره ی فاز مشخصی وجود ندارد و اولویت ها به محض ورود اطلاعات جدید دوباره ارزیابی میشوند.
- روش کانبان حول کاهش اتلاف در پروژه تمرکز دارد، تا این اطمینان حاصل شود که تیم کار غیر ضروری یا کار اشتباه انجام نمیدهد.
- ذات روش کانبان و شمای تصویری این روش فهم پروژه را به میزان قابل توجهی ساده می سازد. تیم نیازی به آموزش یک متد کاملا متفاوت ندارد و کانبان میتواند به سادگی بر روی سایر سیستم های مدیریتی پیاده سازی شود.
- بهترین حالت: مدیریت پروژه هایی که اولویت ها مرتباً تغییر می کنند و ممکن است کارهای در حال انجام رها شوند.
3. Lean
توسعه ناب یکی دیگر از روش های مدیریت پروژه Agile است که گاهی مورد استفاده قرار می گیرد. همانطور که ممکن است از نام آن حدس بزنید، همه چیز در خصوص حذف موارد اضافی بی مورد از پروژه های شما است.
در اینجا نگاهی گذرا به برخی از اصول ناب است :
- به حداقل رساندن فعالیتهای بیهوده و غیرضروری در تمام مراحل پروژه.
- تمرکز بر ارزش ارائه شده به مشتری نهایی و بهینه سازی کل به جای قطعات کوچک.
- ساده سازی و کوتاه کردن چرخه عمر توسعه نرم افزار.
- توانمند سازی اعضای تیم برای کار در فعالیت های پروژه.
- بهترین حالت: ساده سازی فرآیندهای فعلی و فقط ارائه موارد با ارزش است (نه همه چیز ممکن). به عنوان مثال، هنگامی که زمان توسعه شما بسیار زیاد است و کاربران از ویژگی های جدید استفاده نمی کنند، برای حل این مسئله از اصول ناب استفاده کنید.
4. (XP (Extreme Programming
Extreme Programming شکل توسعه نرم افزار با مشخصه:
- تمرکز بر جنبه های فنی توسعه نرم افزار به طور خاص.
- برگزاری جلسات رو در رو با تیم های متفاوت با تخصص های متفاوت.
- بهترین برای : پیچیده ترین پروژه های توسعه نرم افزار.
مدیریت پروژه چابک چگونه کار می کند؟
روش مدیریت پروژه چابک: به ۲ بخش برنامه ریزی و اجرای اسپرینت ها تقسیم میشود
در اینجا یک راهنمای گام به گام برای هر دو آورده شده است
1. برنامه ریزی پروژه
مانند هر روش دیگر، روند چابک با جلسات برنامه ریزی پروژه آغاز می شود.
برخلاف رویکرد آبشاری ، روش چابک بر چابکی و حداقل ضایعات تأکید دارد.
به همین دلیل مرحله برنامه ریزی چابک باید دقیق شرح داده شود. فقط این سه مرحله ساده را دنبال کنید:
الف – بیانیه چشم انداز پروژه
این یک توصیف سریع از دامنه پروژه شما، نقاط عطف پروژه و محصولات قابل تحویل است. در این بخش چشم انداز محصول، مشخصات محصول و چگونگی تأمین نیازهای مشتری را مشخص می کند.
ب – نقشه راه محصول
نقشه راه محصول شما تمام ویژگی هایی را که قصد دارید به مشخصات محصول اضافه کنید مشخص می کند. همچنین ذکر خواهد شد که چگونه هر یک از این ویژگی ها سودمند است و چگونه به مشتری کمک می کند.
در بیشتر نقشه های راه نیز جدول زمانی تقریبی از زمان انتظار برای انتشار هر ویژگی وجود دارد.
ج – بک لاگ محصول
این شامل تمام ویژگی های موجود در نقشه راه محصول شماست. با این حال، این لیست نهایی ویژگی ها نیست و در ادامه حتما تغییر خواهند کرد و فراموش نکنید که این یک اصل در اجایل است.
توجه: برخلاف روش Waterfall ، اجایل تغییرات را در اولویت قرار می دهد.
به همین دلیل است که شما هرگز نباید بک لاگ محصول خود را غیرقابل تغییر تصور کنید. در عوض، به آن به عنوان یک طرح کلی نگاه کنید که با ادامه کار در حال ویرایش آن هستید.
در اینجا دو مفهوم اصلی دیگر وجود دارد که باید بخاطر بسپارید:
الف – Release Plan
هر پروژه در مراحل تدریجی چندین طرح انتشار خواهد داشت. هر یک از این برنامه ها شامل مجموعه ای از ویژگی ها خواهد بود که طی یک چرخه توسعه خاص منتشر می شود این مانند یک نقشه راه برای مشتریان شماست تا بدانند چه ویژگی هایی به زودی ارائه خواهد شد.
ب- تحویل
این همان تحویل در پایان اسپرینت است، مانند یک ویژگی جدید که ساخته شده است.
2. Sprint
اسپرینت ستون فقرات هر فرآیند چابکی است و دوره های کوتاهی در توسعه هستند كه می توانند از چند روز تا حتی چند هفته متغیر باشند.
- در اسپرینت ها پروژه شما را به قطعات کوچکتر و قابل کنترل تر تقسیم می شود. تیم شما به جای اینکه به یک هدف بلند مدت بپردازید، پروژه را به مراحل کوچکتر تقسیم می کند که امکان موفق بودن به آن بیشتر است. این به نوبه خود منجر به تحویل مداوم ویژگی ها و افزایش احساس موفقیت و انگیزه می شود!
- اسپرینت به تیم شما این فرصت را می دهد تا در هر مرحله از توسعه، دائماً پروژه را ارزیابی کند و راحت تر می توانید نظرات مشتری را جلب کنید و شرایط را تغییر دهید.
همچنین چهار جلسه اصلی در ارتباط با اسپرینت برگزار می شود. در اینجا خلاصه مختصری از این جلسات آورده شده است:
الف – برنامه ریزی اسپرینت
جلسات برنامه ریزی اسپرینت با توافق تیم پروژه درباره اهداف پروژه و محصولات قابل تحویل مرتبط با آن آغاز می شود. در مرحله برنامه ریزی اسپرینت ،بک لاگ اسپرینت ایجاد می شود.
بک لاگ اسپرینت چیست ؟
بک لاگ اسپرینت یک لیست از تمام وظایف و ویژگی های خواهد بود که در اسپرینت باید توسعه داده شوند.
ب – جلسات روزانه اسکرام
جلسات استندآپ روزانه اسکرام بخشی اصلی از چارچوب اسکرام است.
این جلسه معمولا 15 دقیقه زمان لازم دارد و یک جلسه رو در رو است و تیم توسعه نرم افزار از وضعیت جاری اسپرینت با خبر می شوند. این جلسه را تیم توسعه دهنده نرم افزار شما به طور روزانه برگزار می کند تا درباره پیشرفت های روز گذشته بحث و برنامه ریزی کنید. آنها از موانع موجود در کار حرف میزنند و چیزهایی که یاد گرفته اند را مرور خواهند کرد.
ج – بازنگری اسپرینت
در این جلسه تیم توسعه موارد و ویژگی های توسعه داده شده را به ذینفعان پروژه تحویل داده و بازخورد های آنها را دریافت می کند، مالک محصول در اینجا نقش فعالی دارد و بازخورد ذینفعان و مشتریان را جمع آوری می کند و بک لاگ محصول را بر این اساس به روز می کند.
د – Sprint Retrospective
پس از اتمام جلسه بازنگری اسپرینت اعضای تیم (بدون ذینفعان) با نگاهی رو به عقب بررسی میکنند که در اسپرینت گذشته چگونه کار کرده اند (از نظر روش کار و فرایندهای درون تیمی) و چه مواردی دارای ایراد است که باید بهبود یابد و یا اینکه کدام روش ها مفید است و باید حفظ شود و تصمیمات درون جلسه را در اسپرینت بعدی اجرا میکنند.
3. داستان های کاربر
یکی دیگر از عناصر مهم Agile، ایجاد داستان های کاربر در مورد ویژگی ها یا محصولاتی است که روی آنها کار می کنید. این توسعه دهندگان و مدیران محصول را وادار می کند که همکاری مشترکی داشته باشند تا در مورد نحوه پاسخ کاربر هنگام استفاده از این ویژگی فکر کنند.
به طور معمول، داستان های کاربر عباراتی کوتاه و توصیفی هستند. این را می توان در توضیح وظیفه شما با ویژگی مورد نظر ذخیره کرد.
در اینجا یک مثال اساسی از داستان کاربر وجود دارد:
من به عنوان <کاربر> می خواهم << این کار را بکنم >> تا << به این برسم >> .
با استفاده از داستان های کاربر، جلسه از نوشتن نیازهای دقیق به بحث در مورد چگونگی استفاده از ویژگی و کارهایی که می تواند انجام دهد تغییر می کند. هنگام نوشتن داستان های کاربر، بپرسید ، “کاربر چه کاری انجام می دهد و این ویژگی چه کمکی به آن می کند؟”
موانع مدیریت پروژه چابک
در حالی که روش مدیریت پروژه Agile یکی از مفیدترین روشهای مدیریت است، اما محیط Agile مناسب هر تیم یا ساختار سازمانی نیست.
در اینجا دو مورد از موانع جاری سازی چابک را عنوان می کنیم:
- اگر تیم اجرایی و مدیران پروژه شما کم تجربه و عادت به مقابله با تغییرات ناگهانی دارند.
- اگر تیم مدیریتی شرکت شما از نظر فرهنگی با فرآیندهای سخت و استاندارد ها بهتر کار می کند.
با این حال، این بدان معنا نیست که سازمانهای سنتی هرگز قادر به انطباق با یک محیط چابک نخواهند بود.
در اینجا دو کاری وجود دارد که می توانید برای آماده سازی خود برای یک محیط چابک انجام دهید:
- برخی از آموزشهای چابک را دنبال کنید :
سازمان آموزشی معتبری در ایران وجود دارند مانند شرکت پیشرو مدیران پیران که شما را در یادگیری و جاری سازی اجایل یاری خواهند کرد.
- از ابزار مدیریت پروژه Agile مناسب استفاده کنید :
ابزارهایی مانند نرم افزار مدیریت پروژه دایتیک که برای چارچوب مدیریت پروژه Agile نیز توسعه داده شده است و شما را به راحتی در استقرار فرهنگ اجایل کمک خواهد کرد.
با سلام و احترام
سپاس فراوان از شما جناب رضا تشت بلند عزیز
خیلی کامل توضیح داده بودید ، شخصا به بیشتر سوالات درون ذهنم راجع به مدیریت رسیدم
توفیق روز افزون شما را از خداوند خواهانم
سپاس از شما جناب سرایی، خوشحالم که مطلب برای شما هم مفید بوده