در سال ۲۰۰۱، ۱۷ توسعهدهندهٔ نرمافزار با هم جلساتی برگزار کردند تا بیانیه توسعهٔ چابک نرمافزار را بنویسند و منتشر کنند. آنها باور داشتند که باید روش کاراتری برای توسعه و تحویل نرمافزارها وجود داشته که آزادی و قدرت بیشتری به توسعهدهندههای نرمافزار بدهد.
روش اجایل با توجه به این نیاز و در پاسخ به ناکارآمدیهایی که در روشهای سنتی توسعهٔ نرمافزار وجود داشت ایجاد شد. اما استفاده از تکنیکهای چابک در برخی از پروژهها ممکن است ما را با مشکلاتی همراه کند. هیچ قانون کلیای وجود ندارد که به ما بگوید کدام تکنیکها را میتوان برای چه نوع پروژههایی استفاده کرد. در این مقاله چند مورد از تکنیکهایی را که ممکن است استفاده از آنها برایتان سادهتر باشد توضیح میدهم.
دست نگه دارید!
اگر شما یکی از طرفداران وفادار به روش چابک یا به شدت پایبند به روشهای سنتی هستید ممکن است موضعگیریهای سفت و سختی علیه من داشته باشید. اما از شما خواهش میکنم ابتدا حرفهایم را بشنوید. گاهی وقتها درخشش و هیجان یک چیز تازه چنان ما را گور میکند که فراموش میکنیم تکنیکهای سنتی در مدیریت پروژه چقدر میتوانند سودمند باشند.
مدیریت چابک پروژه در برابر رویکرد آبشاری
مدیریت پروژه به روش اجایل روی چرخههای تکراری که در آنها برنامهریزی، طراحی، پیادهسازی و آزمایش کردن نرمافزار در مدت زمان کوتاهی اتفاق میافتد تمرکز کردهاند. روشهای چابک به ما اجازه میدهند که برنامهریزی همزمان با پیشرفت پروژه اتفاق بیافتد به این ترتیب میتوان تصمیمگیری را با توجه به نیازهای موجود انجام داد. در توسعهٔ نرمافزار میتوان باگها را در مراحل ابتدایی کار پیدا و پیش از اینکه تبدیل به مشکلات بزرگی شوند آنها را برطرف کرد. مزیت این رویکرد این است که میتوان تغییرات ضروری را در زمان توسعهٔ نرمافزار اعمال کرد.
به راحتی میتوان تفاوت فرایندها در این دو روش را مشاهده کرد.
در شکل زیر روند فرایندها در روش آبشاری نشان داده شده است:
در شکل زیر روند فرایند در رویکرد چابک نشان داده شده است:
توضیح: رها کردن ترجمه کلمه ریلیز است که در اینجا به معنی انتشار یک بخش از خروجی پروژه است.
اولین باری که دربارهٔ روش اجایل یاد گرفتم بسیار مشتاق بودم که از این روش استفاده کنم. البته من خوششانس هم بودم که با شخصی همکاری میکردم که در این روش به اندازهٔ کافی مهارت داشت. اصول اولیه را خیلی سریع پیادهسازی کردم اما متوجه شدم که نمیتوان از رویکرد چابک خالص در بسیاری از پروژهها استفاده کرد و به این نتیجه رسیدم که همچنان نمودارهای گانت در موارد زیادی، مانند برنامهریزی برای منابع، مایلستونها و نکات تیمی بسیار سودمند هستند.
معایب رایج در مدیریت پروژه به روش اجایل
برخی از معایبی که من در استفاده از روش اجایل تجربه کردم بسیار رایج هستند و ممکن است شما نیز هنگام استفاده از روش چابک با آنها مواجه شوید:
۱. الزامات غیرقطعی باعث سردرگمی ذینفعان میشود. در روش چابک الزامات پروژه از ابتدای کار و زمانی که برنامهریزی اولیه انجام میشود مشخص نیستند. این الزامات معمولا با پیشرفتن کار و گرفتن بازخورد از تلاشهای قبلی تغییر میکنند. معنای این حرف این است که محصول نهایی پروژه با چیزی که ذینفعان و تیم پروژه از ابتدا در نظر داشتهاند بسیار متفاوت است.
۲. پروژه هرگز تمام نمیشود. اگرچه این موضوع برای کار بسیار خوب است اما میتواند باعث کلافگی افراد نیز بشود. اگر دامنهٔ کار از ابتدا به صورت دقیق مشخص نباشد، ذینفعان ممکن است به این نکته که گویی پروژه هرگز تکمیل نمیشود معترض شوند. معمولا این افراد همان کسانی هستند که مدام میخواهند ویژگیهای تازه به پروژه اضافه شود.
۳. روش چابک میتواند فشار زیادی به تیمتان وارد کند. در روش اجایل انجام پروژه در پایان تکرارها، ویژگیها باید ۱۰۰٪ عالی باشند. برخی از اعضای تیم که از این نکته باخبر هستند ممکن است فشار زیادی متحمل شوند. بسیاری از همکاران من از طولانی شدن کار استقبال میکنند چرا که زمان به آنها اجازه میدهد فشار زیاد کار را متعادل کنند. وجود یک تاریخ نهایی قطعی برای تحویل پروژه میتواند فهرست کارهایی که باید انجام شوند را مشخص کند و به افراد کمک میکند تا برای خود برنامهریزی کنند.
۴. تخمینهایی که میزنید دقیق نیستند. زمان در پروژههای اجایل شناور است و به این دلیل نمیتوان ذینفعان را به خوبی در جریان وضعیت زمانی پروژه قرار داد. اگر زمان مشخصی برای تحویل پروژه مشخص شده باشد، در مقایسه با زمانی که تاریخ اتمام پروژه مشخص نیست، راحتتر میتوانید با ذینفعان تعامل کنید. افراد عاشق پیشبینیهای زمانی و مشخص کردن تاریخ تحویل هستند. اما استفاده از روش چابک تخمینها را با خطای زیادی مواجه میکند و باعث بالا رفتن استرس تیم انجام پروژه میشود.
۵. مستندسازی در روش چابک یک چیز داخلی است. نمودارهای گانت استفاده شدهاند و امتحان خود را به خوبی پس دادهاند. شما نیز سعی کنید یک نمودار کار باقی مانده برای ذینفعانتان ایجاد کنید. پرسشهایی که ذینفعان در بیشتر موارد از من میپرسند را میتوان با استفاده از یک نمودار گانت پاسخ داد. من همیشه سعی میکنم نمودار گانت و نمودار کار باقی مانده را با هم داشته باشم اما این کاری بسیار دشوار است.
۶. توجه داشته باشید که همهٔ افراد بازیگران فعالی هستند. برای اینکه مواردی که در بالا ذکر شد تبدیل به مشکل نشوند، باید همهٔ افراد را در جریان کارها قرار دهید. اگرچه در جریان قرار دادن اعضای تیم مشکلی ایجاد نمیکند اما این کار برای ذینفعان بیرونی چندان مناسب نیست. آنها معمولا تحربهٔ کافی را ندارند و فقط میخواهند نتیجهٔ نهایی را ببینند. استفاده از نمودارهای گانت برای آنها مناسبتر است.
رویکرد ترکیبی من برای استفاده از روشهای چابک و آبشاری
کار ما به عنوان مدیران پروژه این است که پروژه را از ایده به محصول نهایی برسانیم. ما هر روز تصمیماتی میگیریم که روی محصول نهایی تاثیر میگذارند. انتخاب رویکرد مناسب برای انجام پروژه نیز از این قاعده مستثنا نیست. فکر نکنید حتما باید بین دو رویکرد مختلف برای انجام پروژه یکی را انتخاب کنید و تا انتها به آن پایبند باشید. هنگامی که متوجه این موضوع شدم توانستم پروژهها را خیلی روانتر و بهتر پیش ببرم.
من دیگر دو پروژه متفاوت را با یک رویکرد انجام نمیدادم. همهٔ اطلاعات موجود دربارهٔ هر پروژه را میگرفتم و مطالعه میکردم. سپس با توجه به این اطلاعات مشخص میکردم که کدام بخشهای دو رویکرد مختلف برای پروژه مناسبتر است. این تصمیم با توجه به ویژگیهای ذینفعان، تاریخهای مهمی که باید در نظر گرفته میشد، پیچیدگیهای فنی و ترکیب تیم انجام پروژه گرفته میشد.
بزرگترن چالشی که همیشه پیش روی من قرار داشته است تمرکز ذینفعان روی زمانبندی است. حتی اگر پروژه با بهترین تکنیکهای اجایل هم پیش برود، نبود بازه زمانی مشخص باعث نگرانی کارفرما میشود. به این دلیل تصمیم گرفتن با استفاده از نمودارهای گانت، ضعفهای رویکرد چابک را اصلاح کنم.
میدانم که قرار نبوده است که این دو روش با هم ترکیب شوند، اما من این کار را انجام دادهام و این روش به خوبی به من کمک کرده است.
چگونه میتوان یک چارچوب اجایل را با نمودار گانت ترکیب کرد
ابتدا مشخص میکنیم که از چه تکنیکهایی در یک چارچوب اجایل میخواهیم استفاده کنیم. پس از این کار گامهای لازم برای درست کردن نمودار گانت به شرح زیر برداشته میشود.
۱. مشخص کردن کارهای لازم برای رسیدن به هر ویژگی
زیر هر کدام از چرخههای تکرار پیشبینی شده کار مربوط به هر ویژگی را مشخص میکنم. تفاوت اصلی این نمودار گانت با نمودارهایی که در روشهای آبشاری استفاده میشوند این است که این نمودار به وابستگیها بسیار حساس است. همهٔ موارد در هر تکرار از ابتدا تا انتها وابسته به زمان آزمایش کردن تکرار هستند. وابستگی ابتدا تا انتها بین کارها تنها زمانی ایجاد میشود که از نظر فنی میان آنها وابستگی وجود داشته باشد.
در تمام زمان چرخه، جلسات برنامهریزی و بررسی به صورت مستمر برگزار میشود. در این جلسات میتوان مشخص کرد که کدام ویژگیها باید به چرخه بعدی انتقال داده شوند. هنگامی که این موارد در نمودار گانت جابهجا شوند زمان تحویل پروژه نیز به صورت خودکار جابهجا میشود.
۲. انتقال دادن و مرتبسازی مجدد وابستگیها
میتوانید کارهای را جابهجا کنید و وابستگیها را به شکل دیگری مرتبسازی کنید. برای مثال ممکن است به این نتیجه برسم که دو منبع میتوانند به صورت همزمان به یک کار اختصاص داده شوند، اما برخی از کارهای دیگر با توجه به این شرایط جدید باید جای دیگری پیدا کنند. داشتن یک نمودار گانت انعطافپذیر که به راحتی بتوان درآن تغیر ایجاد کرد بسیار مهم است.
بزرگترن چالشی که همیشه پیش روی من قرار داشته است تمرکز ذینفعان روی زمانبندی است. حتی اگر پروژه با بهترین تکنیکهای اجایل هم پیش برود، نبود بازه زمانی مشخص باعث نگرانی کارفرما میشود. به این دلیل تصمیم گرفتن با استفاده از نمودارهای گانت، ضعفهای رویکرد چابک را اصلاح کنم.
چرا اصرار دارم روش اجایل را با نمودار گانت ترکیب کنم
۱. مزایا برای مشتریها و ذینفعان
واقعا لازم است که مشتریها و ذینفعان از برنامهٔ شما برای انجام پروژه مطلع باشند. در ادامه برخی از مزایای استفاده از این رویکرد را برای مشتریها بیان میکنم:
- از آنجا که در روش چابک نمیتوان از جدولهای زمانبندی دقیق استفاده کرد، این رویکرد ما را قادر میسازد نمودارهای درست کنیم که مشتریها با استفاده از آنها درک درستی از زمان و تلاشی که برای هر ویژگی لازم است بهدست آورند.
- میتوانم این نمودارها را با اعضای تیم، ذینفعان داخلی و مشتریها به اشتراک بگذارم. این نمودار گانت به شکلی مستقیم مسئولیتها، مراحل حیاتی و محصول مورد انتظار را نشان میدهد و اگر به صورت روزانه بهروزرسانی شود، میزان پیشرفت پروژه را از ابتدا نیز نشان میدهد.
- مشتریها میدانند چه زمانی باید منتظر به پایان رسیدن پروژه باشند و همچنین میفهمند چه زمانی باید محصولشان را آزمایش کنند. به بیان دیگر مسیری پیش روی ما قرار میگیرد که نشان میدهد چگونه به محصول نهایی دست پیدا میکنیم.
مزایا برای تیم
اعضای تیم انجام پروژه نیز میتوانند از این رویکرد ترکیبی سود ببرند. برخی از این مزایا عبارتند از:
- آنها نه تنها میفهمند که در چرخه تکرار بعدی چه کاری باید انجام دهند بلکه کلیت چرخه بعد را نیز متوجه میشوند. برخی از کارها و ویژگیها ممکن است به چرخه بعدی منتقل شوند. همچنین نمودار گانت وابستگیها را نیز تا حدی مشخص میکند.
- آنها میتوانند برای خودشان برنامهریزی کنند و به من بگویند چگونه میتوانند در فرایند پیادهسازی همکاری داشته باشند. افرادی که محصول را آزمایش میکنند میدانند چه زمانی به آنها احتیاج خواهد بود و با خیالی آسوده استراحت میکنند. آنها با توجه به نمودار میفهمند چه چیزی را باید آزمایش کنند و اشکالات چه چیزی را باید استخراج کنند.
- هیچ دو پروژهای شبیه به هم نیستند و این رویکرد ترکیبی به من اجازه میدهد هر پروژه را با توجه به ویژگیهای خاص آن مدیریت کنم. میتوانم از تکنیکهای کارآمدی استفاده کنم که با توجه به اولویتها و نیازهای مشتری عملکرد تیم را متعادل کنند.
- از این نمودار گانت برای صحبت کردن با ذینفعان استفاده میکنم تا به آنها نشان دهم چگونه تغییر در نیازهاشان میتواند روی زمان کلی تکمیل پروژه تاثیر بگذارد. همچنین ابزاری در اختیار خواهم داشت که به مشتریهای بیتحربه دربارهٔ طراحی و انجام فرایندها توضیح دهم.
من به عنوان مدیر پروژه به خودم افتخار میکنم چرا که خود را مقید به استفاده از یک روش نکردهام. البته مدتی طول کشید تا بتوانم رویکرد مناسب را پیدا کنم و آن را جا بیاندازم. اما از آن زمان به بعد در کار مدیریت پروژه به موفقیتهای بزرگتری دست پیدا کردهام.