تو این چند سال اخیر وقتی توی شرکتی تحت عنوان مدیر پروژه یا مدیر آی تی و یا حتی مدیر فنی CTO شروع به کار کردم همیشه چندین چالش بزرگ داشتم ، یکی از آنها برنامه ریزی بر اساس متدولوژی های رایج بود و نمیدانستم که در کدام پروژه باید از کدام متد و یا نرم افزار و یا …. استفاده کنم. بعدها که با همکاران خود صحبت کردم و این موضوع را مطرح کردم متوجه شدم که این مشکل رایج است و تقریبا تمامی دوستان با آن درگیر هستند. در مقاله ای مجزا به بررسی هر متدولوژی میپردازم اما در این نوشتار قصد دارم تا دو متدلوژی مهم و پرکاربرد و پرطرفدار را مورد بررسی قرار دهم.
Agile چیست؟
روش شناسی چابک عملی است که تکرار مداوم توسعه و آزمایش را در طول چرخه عمر SDLC ترویج می کند. چابک جایگزین آبشار یا توسعه متوالی سنتی است. این فرآیند ایده آل برای کسانی است که می خواهند با بازخورد مداوم کار کنند. این فرآیندی است که در آن نیازها تکامل می یابند و تغییر می کنند. هدف اصلی هر تکرار این است که با یک محصول کارآمد همراه شود.
در رویکرد چابک ، رهبری، کار گروهی و ارتباط مستقیم را تشویق می کند. در اینجا، ذینفعان و توسعه دهندگان باید به طور همزمان کار کنند تا محصول را برای مطابقت با نیاز مشتری و اهداف سازمان هماهنگ کنند.
کانبان چیست؟
فرآیند کانبان چیزی نیست جز یک هیئت! البته از دید من 🙂 ما در فرهنگ ایرانی-اسلامی در هیئت ها چگونه فعالیت می کنیم؟! البته لغت اصلی آن Kanban Board است اما خواستم با مفهوم به صورت ملموس آشنا شوید. این برد نقش حیاتی در نمایش گردش کار ایفا می کند. این به بهینه سازی جریان کار بین تیم های مختلف کمک می کند. روشی برای تعریف، مدیریت و بهبود خدمات برای ارائه کار دانش است.
در این روش موارد کار به صورت تصویری و ویژوال منتشر می شوند. این به اعضای تیم اجازه می دهد تا وضعیت هر قطعه کار را در هر مرحله توسعه ببینند. علاوه بر این، یک عضو تیم مرور کلی میکند که چه کسی چه کاری انجام میدهد و میتواند حوزههای مشکل را در فرآیند شناسایی و حذف کند.
روش شناسی کانبان امکان اولویت بندی مجدد کار بر اساس نیاز ذینفعان را فراهم می کند. همانطور که کار از یک حالت به حالت دیگر حرکت می کند، مقداری کار اضافی نیز تا زمانی که جریان ثابت شود اضافه می شود. تیم برای بهبود جریان کار در طول پروژه با یکدیگر همکاری می کند. کانبان در فرآیند چابک هرگز محدود به تنظیم فرآیند و بک لاگ اسپرینت تعریف شده نیست. بنابراین، انعطاف پذیری را برای توسعه دهندگان ارائه می دهد.
در ادامه، تفاوت های کلیدی Agile و Kanban را یاد خواهیم گرفت.
تفاوت کلیدی اجایل و کانبان
- چابک ( اجایل ) روشی سودمند برای پروژههایی است که در آن هدف نهایی تعیین نشده است در حالی که Kanban برای کاهش ضایعات و حذف فعالیتهایی که هرگز به تیم ارزش اضافه نمیکنند سودمند است.
- فرآیند چابک بر ارتباطات ثابت تمرکز می کند در حالی که فرآیند کانبان دارای طول سرعت کوتاه تری است که مجبور می شود موارد را برای قرار دادن در محدوده های سرعت تقسیم کند.
- فرآیند چابک اجازه توسعه تکراری را می دهد در حالی که فرآیند کانبان اجازه توسعه تکراری را نمی دهد.
- Agile از بررسی بصری کار در حال انجام پشتیبانی نمی کند در حالی که Kanban امکان بررسی بصری کار در حال انجام را فراهم می کند.
- هدف رویکرد Agile یکپارچه سازی، توسعه و آزمایش مداوم است در حالی که هدف رویکرد Kanban بهبود فرآیند تیم است.
- فرآیند چابک به تابلوهای داستانی بستگی دارد در حالی که فرآیند کانبان به تابلوهای کانبان بستگی دارد.
اصول چابک Agile
- هدف این است که با ارائه بهبود مستمر نرم افزار، رضایت مشتری را جلب کند.
- همیشه حتی در مراحل بعدی از تغییرات استقبال می کند.
- تحویل سیستم کاری از 15 روز تا یک ماه، با هدف محدود کردن بازه زمانی.
- ذینفعان تجاری و تیم توسعه هر روز تا پایان پروژه کار خواهند کرد.
- نرم افزار کار در Agile Process ابتدایی است
- رویکرد توسعه نرم افزار چابک توسعه پایدار را ترویج می کند.
- توجه کامل به تخصص فنی
اصول کانبان Kanban
- فرآیند کانبان گردش کار را تجسم می کند که به راحتی قابل درک است.
- اقدامات رهبری را در همه سطوح تشویق کنید
- این به اندازه گیری و بهبود همکاری کمک می کند
- به روند فعلی، نقش ها و مسئولیت ها احترام بگذارید
- به تیم کمک می کند تا فرآیند را آسان و واضح کند
تفاوت Agile و Kanban
در زیر تفاوت اصلی بین Kanban و Agile آورده شده است:
پارامتر | اجایل Agile | کانبان Kanban |
کاربرد | چابک روشی سودمند برای پروژه هایی است که در آن هدف نهایی تعیین نشده است. با پیشرفت پروژه، توسعه می تواند مطابق با نیازهای صاحب محصول تطبیق یابد. | کاهش ضایعات و حذف فعالیتهایی که هرگز به تیم ارزش اضافه نمیکنند. |
نقاط قدرت | تقسیم کل پروژه به بخش های کوچکتر به تیم کمک می کند تا روی توسعه، آزمایش و همکاری با کیفیت بالا تمرکز کند. انجام آزمایش بعد از هر تکرار به تیم کمک می کند تا باگ را به سرعت پیدا و برطرف کند. | زمانهای چرخه کوتاهتر میتواند ویژگیها را سریعتر ارائه دهد. |
تمرکز | فرآیند چابک بر ارتباط مداوم تمرکز دارد. | طولهای سرعت کوتاهتر باعث میشود آیتمها بهگونهای که در محدودههای اسپرینت قرار گیرند، تجزیه شوند. |
مشارکت QA | QA در ابتدای دوی سرعت کاری برای انجام دادن ندارد اما در پایان کار بیش از حد انجام می شود. (Quality Assurance تضمین کیفیت) | QA در هر مرحله برای آزمایش منظم سیستم در حال توسعه درگیر است. |
تکرار در توسعه | فرآیند چابک امکان توسعه تکراری را می دهد. | فرآیند Kanban اجازه توسعه تکراری را نمی دهد. |
وابستگی | فرآیند بستگی به Storyboards دارد. | فرآیند به تابلوهای کانبان بستگی دارد. |
ویژگی بصری | عدم پشتیبانی برای بررسی بصری کار در حال انجام. | کار در حال انجام را به صورت بصری بررسی کنید. |
هدف | هدف رویکرد Agile یکپارچه سازی، توسعه و آزمایش مداوم است. | هدف رویکرد کانبان بهبود روند تیم است |
برنامه ریزی | برنامه ریزی اسپرینت می تواند برای یک روز کامل زمان تیم اسکرام را مصرف کند. | برای شروع به تغییرات بسیار کمتری در تنظیم سازمان نیاز دارید |
مزیت | با چرخه های برنامه ریزی کوتاه تر، سازگاری با تغییرات در هر زمانی در طول مدیریت پروژه آسان است. | حلقههای بازخورد سریع ممکن است به اعضای تیم با انگیزه، توانمندتر و فعالتر منجر شود. |
نتیجه
- فرآیند کانبان چیزی نیست جز یک هیئت که به آن “هیئت کانبان” می گویند.
- روش شناسی چابک عملی است که تکرار مداوم توسعه و آزمایش را در طول چرخه عمر SDLC ترویج می کند.
- فرآیند کانبان گردش کار را تجسم می کند که یادگیری و درک آن آسان است.
- هدف روش چابک جلب رضایت مشتری با ارائه تحویل مستمر نرم افزار است.
- در روش کانبان، زمانهای چرخه کوتاهتر میتواند ویژگیها را سریعتر ارائه دهد.
- در روش چابک، تقسیم کل پروژه به بخش های کوچکتر به تیم اسکرام کمک می کند تا روی توسعه، آزمایش و همکاری با کیفیت بالا تمرکز کند.
- Kanban scrum برای شروع به تغییرات بسیار کمتری در تنظیم سازمان نیاز دارد.
- در روش های چابک، برنامه ریزی اسپرینت می تواند تیم را برای یک روز کامل مصرف کند.