نقش متدولوژی اجایل در مدیریت پروژههای چابک
متدولوژی اجایل جای خودش را در مدیریت پروژههای نرم افزار باز کرده و شرکتهای نرمافزاری و برنامهنویسی برای توسعهی نرمافزار از آن بهره میبرند. در نوشتهی دیگری از بلاگ «پیشگامان لوتوس» دربارهی روشهای چابک میخوانید.
متدولوژی توسعه نرمافزار چابک یکی از سادهترین و موثرترین فرایندهاست که شامل برنامهریزی مستمر، یادگیری، پیشرفت، همکاری تیمی، توسعه و تحویل زودهنگام میشود. اجایل بهویژه در میان شرکتهای نرمافزاری بسیار محبوب است. در این مطلب تعریف کوتاهی از اجایل میخوانید و بعد با ۵ چارچوب برای پیاده کردن روش چابک، یعنی کانبان، اسکرام، XP، ناب و کریستال و مزایا و معایب هر کدام آشنا میشوید.
اجایل چیست؟
شرکت توسعه نرمافزار نیاز دارد تا در هر مرحله از توسعه نرمافزار، پروژه را کنترل کند. افراد تیم با بهکار گرفتن مجموعهای از تکنیکها موفق میشوند اجرای پروژه و برنامهریزی برای آن را بهشکل مرحلهای پیش ببرند و در هر مرحله نتیجه را دراختیار مشتری قرار دهند. آنها براساس بازخورد و نظر مشتری، برای مرحلهی بعد برنامهریزی میکنند.
متدولوژی اجایل روشیست که در آن توسعه و آزمایش از راه چرخه توسعه پروژهی نرمافزاری، بهطور مستمر تکرار میشود. بهعبارت سادهتر، با بهکار گرفتن مدل اجایل در آزمایش نرمافزار، توسعه و آزمایش همزمان انجام میشوند، درحالیکه در مدلهای آبشاری و سنتی چنین روالی وجود ندارد.
متدولوژی اجایل چیست و چه مفهومی دارد؟
متدولوژی اجایل یا روشهای چابک یکی از سادهترین مسیرها برای تبدیل ایده و نیاز به راهحلهای نرمافزاریست. از آنجا که فرایند چابک به مدلهای جداگانهای تقسیم میشود و افراد مختلفی روی هر بخش کار میکنند، میزان انعطافپذیری نسبت به تغییرات بالا میرود.
در پروژههای چابک مشتریست که کاربرد محصول نهایی را تعریف میکند. توسعه و تولید نرمافزار براساس مشکلاتی که مشتری پیشبینی میکند و بازخوردی که به تیم چابک میدهد، ادامه پیدا میکند.
انواع روشهای چابک کدامند؟
انواع مختلفی متدولوژی اجایل تعریف شده تا افراد تیم باتوجه به نوع پروژه از آنها بهره ببرند. باوجود تفاوت در این روشها، همگی براساس بیانیهی اجایل شکل گرفتهاند.
۱- کانبان (Kanban)
واژهی کانبان از زبان ژاپنی وارد فرهنگ چابک شده. در این روش ستونهایی تعریف میشود که هر کدام بخشی از تولید نرمافزار را نشان میدهند. در روند توسعهی محصول، مواردی که در جدول نوشته شدهاند، تغییر میکنند. برای هر تسک جدید، کارت جدیدی ساخته میشود. در روش کانبان افراد تیم با یکدیگر ارتباط مستمر دارند و هر عضو تیم میداند دقیقا در کدام مرحله از توسعه محصول قرار دارند و وضعیت پروژه دقیقا چگونه است.
مزایای کانبان کدامند؟
- امکان دیدن همهی تسکهای پروژه، شامل کارهایی که به پایان رسیدهاند یا در حال انجام یا آزمایش هستند.
- امکان محدود کردن تسکهای درحال انجام وجود دارد.
- بر طول چرخه تمرکز میشود؛ چه مدت زمانی لازم است تا یک تسک به مرحلهی پایانی برسد.
- بهطور مداوم کاری برای تحویل دادن وجود دارد.
چه ایرادهایی میتوان به کانبان گرفت؟
- احتمال سوبرداشت از اطلاعات نوشته شده بر کارتهای کانبان وجود دارد.
- از آنجا که در این روش بازهی زمانی تعریف نمیشود، مشکلاتی مانند تاخیر در تحویل پروژه دور از انتظار نیست.
۲- اسکرام (Scurm)
اسکرام یکی از معروفترین چارچوبها برای بهکارگیری روشهای چابک بهحساب میآید. در روش اسکرام هم مانند کانبان، پروژه به مرحلههای مختلف و ساده تقسیم میشود. با یک مثال چارچوب اسکرام بهخوبی روشن میشود.
تصور کنید آرمان با مشتری ملاقات میکند تا نیازهای شرکت او را بشناسد. این نیازها و مشخصهها بک لاگ محصول (Product backlog) یا پروداکت بکلاگ هستند. آرمان مهمترین تسکها را انتخاب میکند تا در طی دو هفتهی بعد به آنها بپردازد. افراد تیم آرمان چارچوب یا اسکرام روزانه دارند. آرمان در پایان هر اسپرینت (Sprint) یا دورهی زمانی، کار انجام شده را بررسی میکند، بک لاگ محصول را دوره میکند و هدفهای اسپرینت بعدی را مشخص خواهد کرد. این چرخه تا زمان تکمیل نرمافزار تکرار خواهد شد.
اسکرام روزانه به جلسههای کوتاه ۱۵ دقیقهای هر روز گفته میشود که در جهت هماهنگی و یافتن بهترین راه برنامهریزی در آن روز، برگزار میشوند.
مزایای اسکرام کدامند؟
- باوجود زمانبندی برای پیشبرد هر اسپرینت، انگیزهی بالایی میان افراد تیم موج میزند.
- شفاف بودن پروژه باعث میشود همهی افراد تیم و حتی همهی افراد سازمان بتوانند آن را دنبال کنند.
- در تمام مدت تمرکز روی کیفیت است، بنابراین تعداد خطا پایین میآید.
- پویایی چارچوب اسکرام به توسعهدهندگان امکان میدهد تا در صورت نیاز اولویتها را تغییر دهند.
چه ایرادهایی به اسکرام وارد میشود؟
- گاهی بخشبندی پروژه و توجه به چابک بودن پروژه باعث میشود افراد تیم تنها بر یک بخش تمرکز کنند و کلیت پروژه را نادیده بگیرند.
- ممکن است نقش هر توسعهدهنده بهخوبی تعریف نشود و باعث سردرگمی بعضی از افراد تیم شود.
تفاوت اسکرام و اجایل چیست؟
بعضیها تصور میکنند مفهوم اسکرام و اجایل یکسان است و میتوانند هممعنی فرض شوند. درحالی که فرق اسکرام و اجایل روشن است.
رابطهی اسکرام و اجایل به این ترتیب است که چارچوب و متد اسکرام راهیست برای پیادهسازی روش چابک. بنابراین، اسکرام یکی از روشها در متدولوژی چابک بهشمار میرود.
۳- برنامهنویسی سریع یا XP (Extreme Programming)
گزینهی بعدی در متدولوژی اجایل برنامهنویسی سریع است که به XP معروف شده. با کمک متدولوژی XP در مدیریت چابک به سادهترین راهکارها برای توسعهی نرمافزار دست پیدا میکنیم. این روش بر ارزشهایی مانند ارتباط، سادگی، بازخورد، تشویق و احترام تاکید دارد و رضایت مشتری را در صدر اولویتها قرار میدهد.
در متدولوژی XP کار تیمی اهمیت فراوانی پیدا میکند. هر جا مشکلی وجود داشته باشد، همهی تیم شامل مدیران و توسعهدهندگان و البته مشتری برای حل آن اقدام میکنند.
مزایای روش XP در مدیریت چابک کدامند؟
- سادگی کدها مزیت بهحساب میآید. در هر زمان میتوان کدها را بهبود بخشید.
- کل فرایند و کل چرخهی توسعهی XP قابلمشاهده است. از اینرو، خلق هدف برای توسعههندگان و دیدن نتیجه بهسرعت انجام میشود.
- در روش XP توسعه نرمافزار چابکتر تلقی میشود تا در روشهای دیگر؛ بهویژه بهدلیل آزمایش مداوم.
- این روش به تقویت استعداد افراد تیم کمک میکند.
ایرادهای روش XP کدامند؟
- تمرکز کامل بر کدها ممکن است از توجه به طراحی بکاهد.
- اگر همهی افراد تیم از لحاظ جغرافیایی کنار هم کار نکنند، در کیفیت این روش اثر منفی خواهد گذاشت.
- نبود کنترل دقیق و ثبت نکردن خطاها ممکن است در آینده به ایجاد باگ منتهی شود.
۴- متد توسعه نرمافزار ناب (Lean software development)
روش ناب یا Lean مستقیم از کارخانهی تویوتا به دست ما رسیده. تویوتا میخواست فرایندی را که به کیفیت نهایی محصول چیزی اضافه نمیکند، کنار بگذارد. این روش امروز توسعه پیدا کرده و در میان روشهای چابک جایگاهی برای خود بههم زده. ببینیم ۷ اصل روش ناب کدامند.
- حذف کن: هر چه را اهمیتی ندارد و ارزشی به پروژه اضافه نمیکند، حذف کنید.
- در توسعهی کیفیت، نظم و کنترل باقیماندهها مهم است.
- خلق دانش: افراد تیم همه چیز را مستند میکنند.
- افراد تیم بدون اولویت بندی و درک کامل نیازهای کسبوکار، برنامهریزی نمیکنند.
- با تحویل بهموقع و سریع پروژه، نزد مشتری خلق ارزش میشود.
- ارتباط و مدیریت برخوردها در تیم دو اصل ضروری هستند.
- کل پروژه با حذف خطاها بهینه میشود.
مزایای روش ناب را ببینیم
- با حذف فعالیتهای اضافی، در زمان و بودجه صرفهجویی میشود.
- از آنجا که روند تصمیمگیری برای تیم توسعه ساده شده، زمان مورد نیاز برای ارائهی عملکرد کاهش پیدا میکند.
- این متدولوژی مقیاسپذیر است و بهسادگی با پروژههای مختلف سازگار میشود.
چه ایرادی به متدولوژی ناب وارد است؟
- موفقیت این روش به توانایی تیم توسعه و دنبال کردن اصول روش ناب بستگی دارد.
- از آنجا که تسکهای مختلفی بین افراد تقسیم میشود، احتمال کم شدن تمرکز وجود دارد.
- روش ناب به مستندهایی بهویژه دربارهی مشخصههای کسبوکار نیاز دارد. درصورت نبود این مستندها، باید ریسک نادرست پیش رفتن توسعه و وجود خطا را پذیرفت.
۵- متدولوژی کریستال (Crystal)
چارچوب کریستال بر اصولی مانند افراد، تعامل، ارتباط، مهارت، استعداد و ارتباط متقابل تمرکز دارد. هدف آن برقراری بهترین فرایند توسعه نرمافزار است. هستهی اصلی کریستال، ارتباط متقابل بین افراد مسوول پروژه و فرایندهاست.
طراح این چارچوب، آلیستر کاکبرن (Alistair Cockburn) در شرکت آی بی ام (IBM)، باور دارد کریستال خانوادهی روششناسی توسعه نرمافزار است که با سرمایهگذاری روی افراد تیم کار میکند. کاکبرن میگوید استعداد افراد و روش ارتباط متقابل افراد تیم، برای کل پروژه سودآور است.
کریستال شفاف دربرگیرندهی تا ۸ نفر، کریستال زرد شامل ۱۰ تا ۲۰ نفر، کریستال نارنجی برای ۲۰ تا ۵۰ نفر و کریستال قرمز برای تیمهای بزرگ ۵۰ تا هزار نفر است.
مزایای کریستال را بشناسیم
- تحویل دورهای برای شناسایی مشکلات در هر مرحله است.
- همواره فضایی برای بهبود مشخصهها وجود دارد، زمانی برای بحث دربارهی فرایندهای بدون نقص.
- امکان ارتباط نزدیکتر فراهم است. ارتباط متقابل و به اشتراک گذاشتن دانش بین افراد تیم اهمیت دارد.
- نیازمند محیط فنی با انجام تستهای خودکار، مدیریت پیکربندی و ادغام مستمر است.
نقطه ضعفهای کریستال کدامند؟
- اصول چارچوب کریستال با تغییر سایز تیم و تعداد افراد درون آن، و نیز سایز پروژه تغییر میکنند.
- این روش ممکن است برای تیمی که افراد آن در مکانهای مختلف کاری میکنند، مناسب نباشد. چراکه نیازمند ارتباط مداوم افراد است.
- برنامهریزی و توسعه به نیازمندها متکی نیست.
سخن پایانی
متدولوژی اجایل یا چابک بر رضایت مشتری استوار شده. در این روش در بازههای زمانی مختلف محصول به مشتری ارائه میشود و پروژه براساس بازخورد و نظر مشتری، ادامه پیدا میکند. در پروژه چابک ارتباط بین اعضای تیم اهمیت فراوانی دارد. در این نوشته با ۵ چارچوب مختلف برای مدیریت پروژههای چابک، برتریها و نقطه ضعفهای هر کدام آشنا شدید.