سکانس دوم: فلسفه و اصول چابک، یِجوری که نشنیدین!

انتخاب بین Lean، Agile، Kanban یا Scrum، بالاخره کدوم؟ درک متدولوژی های مختلف Agile (چابک) و همه عباراتی که با اون همراهه از جمله Lean، DevOps، Kanban و Scrum و شناخت تفاوت های اونها بعضاً کار دشواریه. در ادامه سکانس اول که مختصری بر اسکرام، Trello و Slack رو از زبان من شنیدید، میخوایم برگردیم عقب، کمی عمیق تر وارد این عبارت های مرسوم بخصوص توی دنیای امروزی استارتاپ ها و شرکت های نوپا بشیم و مثال های ملموس تر و تصاویر قابل درکی رو برای توصیف بهتر معنی و مفهوم هر کدوم ارائه بدیم. برای شروع به نظر باید این سؤال رو جواب بدیم،"توسعه چابک نرم افزار دقیقاً چی هست و از کجا سر و کلش پیدا شده؟ اصول چابک چی هستن و مزیت بکارگیری این اصول چیه؟ "طبق تعریفی که توی Agile Alliance بهش اشاره شده: چابک در واقع قابلیت ایجاد تغییر و واکنش به اون هست. به عبارت دیگه و خیـــــلی خودمونی، یه روش برای دست و پنجه نرم کردن با یک محیط با عدم قطعیت بالا و تلاطمِ بسیار که در نهایت منجر به این میشه که به قول کشتی گیرها، زیر دو خمش رو بگیری و قهرمان بشی!در عین حال، توسعه چابک نرم افزار یه مفهوم خیلی کلی هست که مجموعه ای از چارچوب ها و دستورالعمل هایی رو شامل میشه که پایه و اساس اون، ارزش ها و اصول اولیه ارائه شده توی بیانیه چابک و 12 اصل مرتبط با اون هست! به تعریف مدرسه محصول، "چابک فلسفه ای است به این معنی که پروژه ها رو به اهداف کوچیکتر بشکونیم و در عین حال که اهداف جدیدی رو بصورت مداوم اضافه میکنیم، یکی یکی برای دستیابی به اون اهداف تلاش کنیم و بریم تو دلشون. اینجوری بگم بهتره، ختم کلام اینه که فرآیند توسعه نرم افزار بتونه به تغییر واکنش صحیح و به موقعی انجام بده و دچار خلل نشه. شاید بخاطر همین هم هست که استارتاپ ها و شرکت های نوپا به این متدولوژی خیلی علاقه دارن. یه تصوی ساده از فعالیت به شکل چابکعزیزِ جانِ اینجانب، آقای Eric Ries توی کتابش خیلی خوب و قشنگ به این فضای متلاطم، تغییرات مداوم و نیاز به تطبیق پذیری بالا توی این شرایط اشاره میکنه که اگه نخوندین، میتونین اینجا بگیرین و بخونین و لذت ببرین. مختصری بر تاریخچه چابکبصورت رسمی، چابک در سال 2001 و در قالب بیانیه چابک برای بهبود بهره وری، بخصوص در فضای توسعه نرم افزار متولد شد ولی میدونیم که الان این مفهوم در زمینه های دیگه ای مثل بازاریابی، فروش، تحقیق و توسعه ... مورد استفاده قرار میگیره! عملاً هر پروژه ای که از 12 اصل چابک پیروی کنه میتونه به عنوان چابک تلقی بشه. 12 اصل چابک (برای خوانایی بهتر ذخیره کنید)بسیاری از متخصصین معقتدن که مفاهیم چابک دارن یجورایی حیف میشن طفلکی ها! یجورایی همچین شکوفا نشدن و خیلی جا برای پیشرفت دارن. منظورشون اینه که نباید به دنیای نرم افزار محدود بشن و حتی این قابلیت رو دارن که بتونن سازمان رو ببرن به سمت چابکی! پیش بینی ها حاکی از این هست که قدم بعدی برای چابکی، "چابکی سازمانی" هست چرا که صرفاً به توسعه محصول محدود نشده و به کل فرآیند توسعه و سازماندهی میپردازه.مزایای چابک شامل چه مواردی می شه؟یکی از مزیت های اصلی این رویکرد قابلیت تطبیق پذیری و تغییر اون در هر مرحله ای از دریافت بازخورد و یا تغییرات بازار، مواجهه کسب و کار با موانع جدید و موارد مشابه هست. از طرفی همین ویژگی باعث میشه که در هر وهله زمانی بسته به شرایط، فقط محصولات مرتبط و مورد نیاز برای بازار تأمین بشه. یعنی اگه بازار یه محصولی رو با ابعاد و ویژگی ها و مشخصه های فعلیش نمی طلبه، خب تغییرش میدیم و مطابق با میل بازار محصول رو بازتعریف میکنیم. طیف این تغییرات ممکنه محدود یا بعضاً گسترده باشه. به همین دلیل هست که شرکتی که از مفاهیم چابک پیروی کرده و شکل گرفته، معمولاً انعطاف پذیره، به تغییرات به سرعت واکنش نشون میده و تطبیق پیدا میکنه و این امکان رو فراهم میکنه که با تسریع فرآیند توسعه و کاهش دوباره کاری از فرصت های جدید حداکثر استفاده رو داشته باشه. در واقع به بیان دیگه چابک زمینه های ایجاد فرآیند تصمیم گیری سریع رو از طریق یک ساختار سازمانی منعطف و ارتباطات ساده فراهم میکنه. در توسعه چابک، ارزش مشتری به مرور و در مقیاس های کوچکتری بهش تحویل میشه، از مشتری بازخورد دریافت میشه، تغییرات اعمال میشه و برای اطلاع و تعریف قدم های بعدی فرآیندی و ارزش های آتی مورد انتظار مشتری، از اون ها استفاده میشه. به گفته ویکتور اوسِتسکی:در توسعه چابک بعد از هر مرحله توسعه، مشتری میتونه نتایج رو ببینه و متوجه بشه که این نتایج رضایت بخش هستن یا نه. این یکی از مزیت های مدل چرخه حیات توسعه چابک نرم افزار هست ولی از اون سمت یکی از معایت این روش هم دشوار بودن تخمین منابع و هزینه توسعه به جهت مشخص نبودن دقیق نیازمندی های نرم افزاری هست. نیازمندی هایی که مدام ممکنه تغییر کنن. علاوه بر افزایش تعامل با مشتری و رضایت بیشتر مشتری ناشی از درک بهتر نیازمندی ها و توسعه محصولات متناسب با اون نیازمندی ها، از جمله مزیت های دیگه مدل چابک پیاده سازی سریع تر تغییرات و انعطاف بیشتر برای ایجاد اون تغییرات هست. بطور کلی فلسفه چابک بدنبال اینه که:کارها رو سریع تر انجام بده و راحت تر با تغییر منطق بشه، فرآیند توسعه رو منعطف کنه و پیشرفت رو با وضوح بالاتری نشون بده (تعریف Done).متدولوژی های چابک شامل چه مواردی میشن؟خیلی بده آخر همه نوشتارها مثل این فیلم های سینمایی دنیای Marvel به یه سری موارد اشاره میکنم و میگم بعداً توضیح میدم؟ واقعیت چاره ای نیست. بیشتر از این هم طولانی بشه خب نمیخونین. میخونین؟خیلی صریح و روشن یه چیزی رو بگم و بریم برای نوشتار بعدی.اصول چابک و ناب در واقع مفاهیمی هستن که میتونن برای متدولوژی های مختلفی مثل Scrum و Kanban (که بعداً بیشتر راجع بهشون صحبت میکنیم) استفاده بشن. پس بهتره از همینجا سنگامون رو با هم وا بکنیم که این دو اصل در واقع یه "فلسفه" یا "طرز تفکر" هستند و نه متدولوژی. اگه از نوشتار من خوشتون اومد لایک کنین، منتشر کنین و نظر بدین. اگر هم خوشتون نیومد نظرات خودتون رو صریح و روشن بنویسین تا به مرور برطرف کنم و اینجوری شما هم بتونین در آینده از نوشتار من استفاده کنین. منبع:1- miro