Burndown Chart vs. Cumulative Flow Diagram (CFD)
اگر تابهحال عضوی از یک تیم اسکرام بودهاید یا در پروژهای مبتنی بر اصول و عملیات سیستم چابک (agile) شرکت داشتهاید، حتما با نمودارهای کار باقیمانده هم آشنایی دارید. این نمودارها معمولا اینچنین هستند: نمودارهایی ستونی که تاریخها در محور ایکسها نمایش داده میشود و روی محور ایگرگها هم شاهد اعدادی هستیم. در واقع با تصویری مانند شکل زیر در نمودارهای کار باقیمانده روبهرو هستیم:
این نمودار مصداق نمودار کار باقیمانده است و همانطور که میبینید روی محور ایکسهایش تاریخها و روی محور ایگرگها هم شاهد اعداد هستیم. تاریخها متعلق به هر پیشنمایش اسپرینت هستند. تاریخ پیشنمایشی که تیم اسکرام از برنامه اسپرینت آماده میکند در محور افقی قرار میگیرد. این تاریخها میتوانند روندهای متنوعی داشته باشند. مثلا یکبار در هر هفته، تاریخی برای ارائه پیشنمایش برنامه اسپرینت ارائه شود. ستونها هم نشان میدهند که چقدر محصول دیگر باقی مانده که در تاریخهای معینشده باید تکمیل شوند.
بعضی از تیمها از محور ایگرگها برای نمایش تعداد آیتمهای باقیمانده در بکلاگ استفاده میکنند و به این آیتمها، داستان کاربران (user story) میگویند. یعنی تعداد آیتمهای باقیمانده از بکلاگ در هر تاریخ را در این نمودارها به معرض نمایش میگذارند. برای تولید نمودار کار باقیمانده باید به بکلاگ هر تیم باتوجه به تاریخ و زمان انجام هر کار دقت کرد. باید به آیتمهای بکلاگ به شکل هفتگی، ماهیانه و… نگاهی داشت و اقدام به کشیدن نمودار کرد.
مثلا 1/15/2016:
1/22/2016:
1/29/2016:
نمودارهای کار باقیمانده نمودارهای ایدهآلی برای پیگیری روند رشد کارهای یک پروژه هستند. به کمک آنها میتوان شاخصهایی برای ارزیابی تولید کرد و با قراردادن اطلاعات مناسب درباره هر پروژه به این نتیجه رسید که مسیر انجام کارها به چه ترتیبی طی میشود. روند کار به کمک این نمودار معلوم میگردد و فاصله تا اهداف هم مشخص میشود. حتی میتوان نمودار کار باقیمانده را نمودار «در مسیر تکمیل محصول» هم نام گذاشت. البته محدودیتهایی هم در استفاده از این نمودارها وجود دارد. یعنی با وجود مزایای زیادی که به همراه دارند، محدودیتهایی هم در آنها وجود دارد.
مثلا به نمودار کار باقیمانده بالا نگاهی داشته باشید. اگر دقت کنید، اینطور به نظر میرسد که تیم هیچکاری را از پیش نمیبرد. اما حقیقت چیز دیگری است. در واقع، امکان دارد که چنین تیمی از نظر روند تولید در مسیر بسیار مناسبی هم قرار داشته باشد. مشکل اینجاست که عواملی مانع از اضافهشدن آیتمها به بکلاگ میشوند و نمودار هم چنین ظاهری پیدا میکند. بنابراین، مقدار تولیدات همان مقداری باقی میماند که در دفعات قبلی اندازهگیری کردهاید.
1/15/2016:
1/22/2016:
1/29/2016:
با توجه به محدودیتهایی که نمودار کار باقیمانده دارد، بعضی از تیمها ترجیح میدهند که از نمودار برنآپ (burnup) استفاده کنند. این نمودارها به شکل دیگری اطلاعات مرتبط با هر پروژه را به نمایش میگذارند. آنها به جای اینکه بگویند چه مقدار از کار باقیمانده به این میپردازند که چه مقدار از کارها انجام شدهاند. یعنی میتوان به آنها نمودار کارهای انجامشده هم گفت.
“نمودار کار باقیمانده در مقابل نمودار کار انجامشده”
برای تولید نمودارهای برنآپ یا کار انجامشده باید به آیتمهایی که در پروژه انجامشده دقت کرد. اما ماجرا از این قرار است که در نمودارهای اینچنینی هم نمیتوان میزان فاصله از اهداف مشخصشده برای هر پروژه را به درستی مشخص نمود و دریافت که هر بخش از کار چقدر تا هدف نهایی فاصله دارد. یکی از راهکارها برای رفع این مشکل، اضافهکردن خط «انجامشدهها» به نمودار است. مادامی که آیتمی تازه به بکلاگ اضافه میشود و هر بخش از کار تکمیل میشود، شاهد بالارفتن خط انجامشدهها (done) خواهیم بود.
راهکار دیگری برای نمایشدادن روند رشد بکلاگ در نمودارها از جانب مایک کوهن (Mike Cohn) در کتابش به نام «برآورد و برنامهریزی چابک» ارائه شده است. در این روش، ابتدا نمودار کار باقیمانده را رسم میکنیم اما ستونها زیر محور ایکسها توسعه پیدا میکنند تا آیتمهای تازه اضافهشده هم به نمایش درآیند. بنابراین با شکل زیر مواجه میشوید:
هرچند که این روش تازه باعث حل مساله تاحدی میشود اما هنوز کار دارد. در واقع، این روش تاحدی قوانین بصری نمایش دادهها را نقض میکند و روند کار تاحدی نامحسوس است و اگر کسی بیخبر از روند کاری که انجامشده به نمودار نگاه کند، متوجه نمیشود که با نمودار کار باقیمانده روبهروست یا کار انجامشده. در واقع، این نمودار اخیر برای درکشدن نیاز به توضیحات بیشتری دارد.
نمودار جریان تجمعی (CFD) تمام این مشکلات را حل میکند و با تلاشی اندک باعث میشود تا اطلاعات بهتری از نمودار، نصیب مشاهدهکنندگان شود. دادههای مرتبط با نمودارهای جریان تجمعی با دادههای مورداستفاده نمودارهای کار باقیمانده و کار انجامشده مشابه هستند. اما دادههای آنها کمی کاملتر و شکل شرح آنها هم دقیقتر است. نمودارهای جریان تجمعی باعث میشوند تا تصمیمگیری براساس دادههای در دسترس درباره هر پروژه سادهتر و بهتر شود. برای رسیدن به این نمودار باید در درجه نخست، نمودارهای کار انجامشده و کار باقیمانده را با هم ترکیب کنیم:
همانطور که میبینید نمودار جریان تجمعی میتواند تمام ابعاد یک پروژه را به نمایش بگذارد. به کمک این نمودار از کارهای انجامشده، کارهای باقیمانده و روند پیشرفت پروژه باخبر خواهید شد.
حال اجازه بدهید که نمودار جریان تجمعی را به جای نمودار ستونی به شکل نمودار سطحی نمایش بدهیم:
نمودار فوق نمودار جریان تجمعی است. در هر بازه زمانی از این نمودار سطحی، تعدادی از آیتمهای هر مرحله از فرایند تکمیل پروژه به نمایش گذاشته میشود. با پیشرفتن در نمودار از لحاظ زمانی میتوان شاهد روند پیشرفت پروژه بود. از این لحاظ به نمودار فوق تجمعی گفته میشود که در آن در حال اندازهگیری روند صعودی کار از یک بازه به بازه دیگر نیستیم بلکه همیشه هر آیتم در هر مرحله فارغ از اینکه در بار قبلی شمارش آیتمها هم شمرده شده یا خیر، باز هم به حساب میآید.
همانطور که میبینید این نمودار میتواند مشکل اساسی نمودار کار باقیمانده و نمودار کار انجامشده را حل کند. از نظر بصری هم نمودار جریان تجمعی راحتتر درک میشود. در این نمودار جریان اطلاعاتی مهم زیادی به نمایش گذاشته میشود. برای مثال، مقدار پیشرفت کار در هر بازه اندازهگیری میشود. میزان پیشرفت صورتگرفته در هر پروژه مفهوم مهمی در تفکر و شیوه عملیات چابک (agile) و ناب (lean) است. تمرکزکردن بر روند پیشرفت پروژهها توانایی تیم در بهرهوری تولید را افزایش میدهد. ارتفاع عمودی هر باند در نمودار نمایشگر میزان پیشرفت کار است.
نمودار CFD یا همان جریان تجمعی نشانگر متوسط چرخه زمان هم هست. منظور از چرخه زمان متوسط، میانگین زمانی است که هر آیتم برای رفتن از مرحلهای به مرحله دیگر نیاز دارد. چرخه زمان معیار مهمی در روند تولید است. چون معمولا مشتریان و ذینفعان تولید میخواهند بدانند که از زمان ارائه درخواستشان تا زمان محققشدن و به نتیجهرسیدن آن چقدر طول میکشد. به تصویرکشیدن این اطلاعات باعث سادهترشدن درکشان میشود و کار تصمیمگیری در پروژهها را به شدت ساده میکند. هرکس با نگاهکردن به پهنای باند نمودار جریان تجمعی میتواند متوجه متوسط چرخه زمان شود.
تعداد باندهای نمودار جریان تجمعی میتواند به اندازه مراحل مختلفی باشد که تیم از سر میگذراند. مثال زیر را ببینید:
نمودار CFD برای این جدول مطابق زیر خواهد بود:
هر چند که نمودار جریان تجمعی میتواند مشکلات زیادی را حل کند اما اشکالاتی هم در آن وجود دارد. برای مثال اگر آیتمی در بکلاگ بلاک یا مسدود شده باشد، این موضوع در نمودار به نمایش گذاشته نمیشود. به عبارت دیگر، مدت زمانی که یک آیتم مخصوص در مرحله تکمیل باقی میماند هم در این نمودار منعکس نمیشود. در هر حال، هر نمودار و روشی دارای مزایای و البته نقایصی است.