مدیریت پروژه چابک (Agile)
در حالی که چابکی یا اجایل در مدیریت پروژه یک طرز فکر گستردهتر و وسیعتر از تنها یک چارچوب توسعه محصول است، رویکردهای چابک را میتوان جزء رویکردهای توسعه انطباقی در نظر گرفت (برای آشنایی با رویکردهای توسعه محصول به مطالب گذشته رجوع شود). چابکی، توانایی ایجاد تغییر و پاسخ به تغییر است. مدیریت پروژه چابک یا مدیریت پروژه اجایل یا Agile Project Management (APM) یک رویکرد با استفاده از تکرار و تکامل برای فرآیند مدیریت پروژه و ارائه تحویل شدنی های پروژه است. در این رویکرد مراحل مختلف کار به بخشهای کوچکتری تقسیم شده و بین تمام اعضای تیم تقسیم می گردد.
کار پروژه (Project work) از کارهای قابل تعریف تا کارهای دارای عدم قطعیت بالا متغیر است. پروژه های دارای کار قابل تعریف دارای رویه های شفاف و مشخص هستند که در پروژه های گذشته موفق بوده اند. برخی از پروژه ها دارای عدم قطعیت قابل توجهی در مورد الزامات پروژه و نحوه برآورده ساختن این الزامات با استفاده از دانش و فناوری فعلی هستند. این عدم قطعیت ها می توانند منجر به نرخ بالای تغییر و پیچیدگی و ریسک بالای پروژه شوند.
رویکرد چابک در ابتدا برای توسعه نرمافزار ایجاد شده بود، اما امروزه برای مدیریت بسیاری از پروژه های دارای عدم قطعیت بالا که الزامات پروژه به صورت کامل و شفاف در ابتدای پروژه مشخص نیست و تغییرات در طی پروژه زیاد است و نیازمند انعطاف پذیری و سازگاری زیاد و تصمیمگیری سریع و چابک می باشد، استفاده می شود. چابکی راهی برای مقابله و در نهایت موفقیت در یک محیط نامطمئن و غیرقطعی است.
در چنین رویکردی، کارهای منحصر به فرد، قابل توجه، پر ریسک یا بدیع را میتوان اولویتبندی کرد تا عدم قطعیت مرتبط با محدوده پروژه را در شروع پروژه و پیش از سرمایهگذاری قابل توجه، کاهش داد. این رویکرد با صرف نکردن زمان در توسعه برنامه برای کارهایی که ممکن است تغییر کنند یا نیازی به آنها نباشد، اتلاف را کاهش میدهد.
گذار از رویکردهای توسعه قابل پیشبینی به رویکردهای انطباقی و سپس به استفاده از روشهای اجایل در مدیریت پروژه، فراتر از آن است که بگوییم اکنون سازمان چابک خواهد بود. این امر، مستلزم تغییر دیدگاه با شروع از سطح اجرایی در سراسر سازمان است. سیاستهای سازمانی، ساختار سازمانی، روشهای کار، ساختار گزارشدهی و نگرش باید به منظور بهکارگیری موفقیتآمیز روشهای انطباقی، همسو باشند. به عنوان مثال، رویکردهای انطباقی، بهویژه روشهای چابک، اغلب با تیمهای پروژه با تعداد 2±7 بهتر کار میکنند. همچنین رویکردهای انطباقی برای تیمهای پروژهای که در یک فضای فیزیکی یکسان واقع شدهاند، مفید است.
همان طور که در مطالب گذشته گفته شد، ACP یا Agile Certified Practitioner گواهی نامه “مدیریت پروژه های چابک” است که توسط موسسه PMI آمریکا ارائه می شود و علاقهمندان این حوزه می توانند با شرکت در آزمونی که توسط این موسسه برگزار می شود نسبت به اخذ مدرک مدیریت پروژه های چابک اقدام کنند.
*** اجایل در مدیریت پروژه تأکید می کند که کل تیم باید یک واحد یکپارچه باشد و کل تیم مسئول شکست یا موفقیت پروژه هستند، برخلاف مدیریت پروژه سنتی که در آن تنها مدیر پروژه مسئول همه ی ابعاد پروژه است.
*** اجایل در مدیریت پروژه به افزایش ارتباطات تاکید دارد که یکی از عوامل کلیدی ایجاد این یکپارچگی است و از طریق جلسات روزانه امکان پذیر است.
*** در مدیریت پروژه چابک یا اجایل بر خلاف روش های سنتی، حجم زیاد مستندات وجود ندارد.
بیانیه یا مانیفست اجایل
رهبران فکری در صنعت نرم افزار در سال 2001 با انتشار بیانیه توسعه نرم افزار چابک، جنبش چابک را رسمیت بخشیدند. چهار اصل/ ارزش در این بیانیه اجایل (Agile Manifesto) عبارتند از:
- ارزش قائل شدن بر افراد و تعاملات به جای فرآیندها و ابزار
- ارزش قائل شدن بر نرم افزار مدیریت کار (Working software) به جای مستندات جامع
- ارزش قائل شدن بر همکاری مشتری به جای مذاکره قرارداد
- ارزش قائل شدن بر پاسخ به تغییر به جای پیروی از یک برنامه
12 اصل نشات گرفته از این ارزش ها که به اصول مدیریت پروژه چابک معروف هستند عبارتند از:
- بالاترین اولویت ما جلب رضایت مشتری از طریق تحویل زودهنگام و مستمر نرم افزارهای ارزشمند است.
- از الزامات تغییر استقبال کنید، حتی در اواخر توسعه محصول. فرآیندهای چابک از تغییر برای مزیت رقابتی مشتری بهره می برند.
- نرم افزار مدیریت کار را به طور مکرر، از چند هفته تا چند ماه، با اولویت مقیاس زمانی کوتاه تر، تحویل دهید.
- افراد و توسعه دهندگان تجاری باید در طول پروژه به صورت روزانه با یکدیگر همکاری کنند.
- پروژه ها را حول افراد با انگیزه بسازید. به آن ها محیط و حمایت لازم را بدهید و به آن ها برای انجام کار اعتماد کنید.
- کارآمدترین و مؤثرترین روش انتقال اطلاعات به تیم توسعه و انتقال اطلاعات در درون آن تیم، گفتگوی چهره به چهره است.
- نرم افزار مدیریت کار، معیار اولیه پیشرفت است.
- فرآیندهای چابک توسعه پایدار را ترویج می کنند. حامیان، توسعه دهندگان و کاربران باید بتوانند به طور نامحدود یک سرعت ثابت را حفظ کنند.
- توجه مداوم به برتری فنی و طراحی خوب، چابکی را افزایش میدهد.
- سادگی – هنر به حداکثر رساندن مقدار کار انجام نشده – ضروری است.
- بهترین معماریها، الزامات و طرحیها از تیمهای خودسازماندهنده (self-organizing teams) پدید میآیند.
- تیم در فواصل زمانی منظم در مورد چگونگی موثرتر شدن فکر می کند، سپس رفتار خود را بر اساس آن تنظیم میکند.
چارچوب های رویکرد اجایل در مدیریت پروژه
تکنیک ها و چارچوب های پیاده سازی رویکرد چابک در مدیریت پروژه عبارتند از:
- اسکرام (Scrum)
- کانبان (Kanban)
- ناب (Lean)
- برنامه ریزی XP یا (Extreme Programming)
- مدل توسعه سیستم پویا (DSDM)
- کریستال (Crystal)
- توسعه نرم افزار تطبیقی (ASD)
- فرآیند یکپارچه اجایل (AUP)
- روش های Crystal Clear
- تحویل اجایل منظم (Disciplined agile delivery)
- توسعه ویژگی محور (FDD)
- اسکرامبان (Scrumban)
- توسعه سریع اپلیکیشن (RAD)
فریم ورک های اسکرام Scrum و کانبان Kanban معروف ترین چارچوب ها برای پیاده سازی رویکرد اجایل در مدیریت پروژه میباشند. اسکرام چارچوبی است که بر پروژه هایی با تکرارهای با طول ثابت تمرکز دارد درحالیکه کانبان بر انتشار مستمر تمرکز دارد و می تواند در هر زمانی صورت گیرد. به عبارتی اسکرام در قالب زمانبندی دقیق اجرا می گردد، در صورتی که کانبان نسبت به زمانبندی منعطف عمل می نماید. همچنین رویکردهای Lean و Extreme Programming هم از رویکردهای محبوب اجایل می باشند.
چارچوب اسکرام در مدیریت پروژه
اسکرام یک فرآیند، تکنیک یا روش قطعی نیست. بلکه چارچوبی است که در آن می توانید فرآیندها و تکنیک های مختلفی را به کار بگیرید. اسکرام چارچوبی است که به افراد، تیم ها و سازمان ها کمک می کند تا از طریق راه حل های تطبیقی برای مشکلات پیچیده، ارزش تولید کنند. در ادامه این مطالب با اصطلاحات پر کاربرد اسکرام آشنا می شوید. چارچوب اسکرام به همراه مفاهیم آن و جلسات این رویکرد و به طور کلی هر آنچه لازم است از اسکرام بدانید در ادامه این مطلب آورده شده است.
پروژههایی که از رویکردهای چابک استفاده میکنند، میتوانند دارای حماسهها یا اپیک ها (Epics) یا موضوعات سطح بالا باشند. اپیکها محتویات منطقی برای یک داستان کاربر یا یوزر استوری (User Story) بزرگ هستند که برای تکمیل در یک تکرار بیش از حد بزرگ است. اپیکها ممکن است به ویژگیهایی (Features) تجزیه شوند، ویژگیها خود به یوزر استوری ها و کارهای ناتمام یا بکلاگ (Backlog) تجزیه میشوند. ویژگیها مجموعهای از الزامات مرتبط هستند که معمولاً به عنوان یک عملکرد یا عبارت کوتاه توصیف میشوند و نشاندهنده رفتارهای خاص یک محصول هستند. هر ویژگی دارای چندین داستان کاربر خواهد بود. یوزر استوری به هر ویژگی گفته میشود که میخواهید محصولتان آن را داشته باشد. بکلاگ فهرستی از کارهایی است که باید انجام شوند. یک اسپرینت یا تکرارشونده (Sprint) به دوره زمانی گفته میشود که در آن تعداد مشخصی از یوزر استوریها باید تکمیل شوند. رویکردهای چابک اغلب از جعبه زمانی یا تایم باکس (Timebox) استفاده میکنند. کار در هر جعبه زمانی، بر اساس بکلاگ اولویتبندی می شود. تیم پروژه میزان کاری که میتواند در هر جعبه زمانی انجام دهد را تعیین کرده، کار را برآورد کرده و خود را برای انجام کار مدیریت میکند. تیم پروژه در پایان جعبه زمانی، کار انجام شده را نشان میدهد. در آن مرحله، ممکن است کارهای ناتمام و برآورد کارهای موجود برای انجام، برای جعبه زمانی بعدی بهروزرسانی یا اولویتبندی مجدد شوند. هر تکرار توسط تیم متشکل از ذینفعان پروژه (شامل مشتری) در جلسه ای بررسی و نقد میشود. در پایان هر اسپرینت، مشتری یک تحویلشدنی وظیفهای (Functional deliverable) را بازبینی میکند. در بازبینی، ذینفعان کلیدی بازخورد میدهند و تیم پروژه مجموعه ویژگیها و عملکردهای بکلاگ پروژه را به منظور اولویتبندی برای تکرار بعدی بهروزرسانی میکند. بنابراین مدیریت پروژه چابک نیاز به حضور یا مشارکت یک مدیر پروژه ندارد و نقش مدیر پروژه در بین اعضای تیم پروژه تقسیم میشود. نتایج حاصل از نقدها در تعیین هرچه بهتر قدم بعدی پروژه استفاده میشوند. به همین دلیل شعار اصلی مدیریت پروژه چابک، “بهبود و رشد مستمر” است.
چارچوب اسکرام در انجام رویکرد چابک یا چرخه اسکرام را در شکل زیر مشاهده می کنید:
اسکرام یک چارچوب فرآیند تک تیمی است که برای مدیریت توسعه محصول استفاده می شود. این چارچوب از نقشها، رویدادها، مصنوعات و قوانین اسکرام تشکیل شده و از یک رویکرد تکراری برای ارائه محصول کاری استفاده میکند.
*** تیم اسکرام (Scrum team) متشکل از مالک محصول، تیم توسعه و اسکرام مستر است که مهم ترین نقش ها در چارچوب اسکرام (roles) هستند:
- مالک محصول (Product Owner): مسئول به حداکثر رساندن ارزش محصول است. مالک محصول تنها فرد مسئول در خصوص مدیریت بکلالگ محصول است.
- تیم توسعه (Development Team): یک تیم فرا وظیفه ای یا دارای عملکرد متقابل (cross-functional) و خودسازمان دهنده (self-organizing) میباشد که متشکل از اعضایی است که هر آنچه که برای ارائه محصول کارآمد در تیم نیاز دارند را بدون وابستگی به افراد خارج از تیم دارا هستند. آنها خود بهترین روش انجام کار را انتخاب میکنند.
- اسکرام مستر (Scrum Master): مسئول اطمینان از حفظ فرآیند اسکرام است و اطمینان حاصل میکند که تیم اسکرام به شیوهها و قوانین پایبند هستند و همچنین تیم را در رفع موانع راهنمایی میکند. اسکرام مستر یک رهبر خدمتگزار (Servant-Leader) برای تیم اسکرام محسوب میشود. رهبری خدمتگزار، یک سبک رهبری است که بر درک و رسیدگی به نیازها و توسعه اعضای تیم پروژه متمرکز است تا بتواند بالاترین عملکرد تیم پروژه را امکانپذیر کند. اسکرام مستر به افراد خارج از تیم کمک میکند تا متوجه شوند کدامیک از رفتارهایشان به تیم اسکرام، کمک کننده بوده و کدامیک نبوده است. اسکرام مستر به منظور حداکثر ساختن ارزش آفرینی تیم اسکرام، به همه کمک میکند این رفتارها را تغییر دهند.
*** رویدادهای مهم در اسکرام (Events) به شرح زیر هستند:
- اسپرینت (Sprint): یک پروژه چابک به دوره های کوچک مشخص تقسیم می شود و در این فواصل زمانی، اجزایی از پروژه را که قابل تحویل دادن باشند، تولید میکند. رویکردهای چابک، نمایشی از دستاوردها را در پایان هر تکرار ارائه میدهند. این دوره های کوچک یا تکرارها، تکرارشوندهها یا اسپرینت (Sprint) نامیده میشوند. اسپرینتها معمولا یک چرخه تحویل یک تا چهار هفته که چرخه ای کوتاه مدت هستند. اسپرینت جدید بلافاصله پس از اتمام اسپرینت قبلی شروع میشود. اسپرینتها شامل اسکرام روزانه، جلسات برنامه ریزی، بازبینی و گذشتهنگری اسپرینت و کارهای مربوط به توسعه محصول هستند.
- برنامه ریزی اسپرینت (Sprint planning): یک رویداد مشترک در اسکرام است که در آن تیم اسکرام کاری که باید در طول یک اسپرینت انجام شود را برنامه ریزی میکنند. این جلسه برای شفاف کردن جزئیات بکلاگ، معیارهای پذیرش و تلاش کاری لازم برای تحقق تعهد تکرار آتی استفاده میشود. از این جلسه میتوان به عنوان یک جلسه برنامهریزی تکرار یا Iteration planning نیز نام برد.
- اسکرام روزانه (Daily scrum): یک جلسه همکاری مختصر است که در طول آن، تیم پروژه پیشرفت خود را نسبت به روز گذشته بررسی کرده، اهداف روز جاری را اعلام کرده و هر گونه مانعی که با آن مواجه یا پیشبینی شده را برجسته میکند. از این جلسه میتوان به عنوان جلسات سرپایی (استندآپ) روزانه یا daily standup نیز نام برد.
- بازبینی اسپرینت (Sprint review): یک جلسه بازبینی اسپرینت، در پایان یک تکرار به منظور نشان دادن کار انجام شده در طول آن تکرار، برگزار میشود. از این جلسه میتوان به عنوان بازبینی تکرار یا Iteration review نیز نام برد. نتیجه بازبینی اسپرینت، بکلاگ محصول اصلاح شده است که اقلامی که احتماالا در اسپرینت بعدی انجام میشوند، در آن تعریف شده است.
- گذشته نگری اسپرینت (Sprint retrospective): گذشته نگری اسپرینت پس از بازبینی اسپرینت و قبل از برنامهریزی اسپرینت بعدی انجام میشود. این جلسه کارگاهی است که بهطور منظم برگزار میشود و در آن شرکتکنندگان، در مورد اینکه چه چیزهایی خوب بوده و چه چیزهایی قابل ارتقا و بهبود برای اسپرینت بعدی است، به گفتگو میپردازند و کار و نتایج خود را به منظور بهبود فرآیند و محصول بررسی میکنند. گذشتهنگریها شکلی از جلسات درسآموختهها هستند و ماهیت مدیریت دانشی دارند.
*** مصنوعات اسکرام (Artifacts) شامل موارد زیر است:
- کارهای ناتمام یا بکلاگ محصول (Product backlog): بکلاگ یا کارهای ناتمام فهرستی از کارهایی است که باید انجام شوند. پروژهها ممکن است دارای بکلاگ مربوط به محصول، الزامات، موانع و غیره باشند. اقلام موجود در لیست بکلاگ اولویتبندی و رتبهبندی میشوند. سپس کار اولویتبندی شده برای تکرارهای بعدی زمانبندی میشود. بکلاگ محصول یک لیست سفارشی از الزامات کاربر محور است که شامل هر آن چیزی است که نیاز است در محصول گنجانده شود. همان طور که گفته شد مالک محصول، مسئول بکلاگ محصول است.
- بک لاگ اسپرینت (Sprint backlog): لیستی از آیتمهای کاری شناسایی شده توسط تیم اسکرام است که باید در طول اسپرینت اسکرام تکمیل شوند. بکلاگ اسپرینت مجموعهای از اقلام انتخاب شده از بکلاگ محصول است.
2 دیدگاه. ارسال دیدگاه جدید
سلام و عرض ادب مهندس
من یکی از دنبال کننده های همیشگی سایتتون هستم و همواره از مطالب مفیدتون بهره مند می شوم.
مطالب بسیار ارزشمندی در حوزه کنترل پروژه نشر داده اید. ممنونم ازتون.
سلام وقتتون بخیر،
از همراهی و لطف شما بسیار سپاسگزارم.
موفق و مانا باشید.