مقدمه ای کوتاه درمورد اصول و روشهای توسعه چابک
این نوشته برگردان فارسی من از مقاله خانم راسمن درمورد توسعه چابک هست
خلاصه :
در اینجا خانم راسمن خلاصهای از اینکه چابک دقیقا چیست به شما ارائه میکند.بخاطر بسپارید، چابک صرفا یک روش نیست،این یک سیستم و تغییر فرهنگی در سازمان شماست. چابک در پروژهها میدان دید و همچنین شفافیت زیادی ایجاد میکند که به عمق سازمان نفوذ میکند.
چابک چیست؟
چابک یعنی وقتی یک تیم کوچک از پنج تا هفت نفر باهم روی یک انباشته(دسته) کارهایی که اولویت دهی شدهاند تا یک محصول قابل ارائه خروجی دهند.

در این تصویر شما میتوانید شرکتی چابک را مشاهدهکنید که ایدههایی درمورد اینکه چه چیزی میخواهند تولید کنند دارد.آن ایدهها به سمت کسی که مسئول هست سرازیر میشود. آن شخص میتواند مشتری یا صاحب محصول باشد.آن شخص مسئول یک سری انباشتههای کاری رتبهبندی شده برای تیم چندکارکردی ایجاد میکند.
تیم مورد نظر که تمامی نقشهای مورد نیاز را دارد (چندکارکردی بودن قبلا اشاره شده) ، روی انباشتهها کار میکند و خصوصیات را خلق میکند، محصول را براساس اصول بصورت قابل ارائه تولید میکند.
چه افرادی در تیم هستند؟
تیم باید تعدادی توسعهدهنده داشته باشد. همچنین هر تخصصی را که تیم نیاز دارد را نیز باید شامل شود. این کمی گیجکننده است درسته؟من تیمی را دوست دارم که حداقل یک آزمونکننده در آن وجود دارد، اما من یقینا تیمهایی دیدهام که آزمونکنندهای نداشتند.
تیم باید همهی نقشهایی که یک تیم نیاز دارد را داشتهباشد.
اگر توسعهدهندهها هرکدام مایل باشند که آزمونکننده هم باشند، دیگر نیازی به آزمونکننده نیست. من و شما میدانیم تست کردن کدی که خودمان نوشتهایم سخت است. وقتی من در حس و حال توسعهدهندهگی هستم، نمیتوانم کد خودم را تست کنم. از کنار نقصها رد میشوم. همچنین وقتی در حس و حال توسعهدهندهگی بودم طوری کارها رو مدیریت میکردم که از کنار تعداد زیادی از نقصهای همکارانم رد شوم.
من رو در حس و حال تست کردن بزارین، تمام طول روز را در حال عیبیابی هستم. بنابراین تیم با آزمونکنندههای رسمی میتواند مدیریت شود و این سخت است.
آیا تیم شما به یک تحلیلگر کسبوکار نیاز دارد؟ آیا به مدیر دیتابیس نیاز دارید؟ نویسنده؟ همه ی اینها به محصول شما و اینکه الان چگونه کار میکنید دارد بستگی دارد.
اگر در حال استفاده از اسکرام هستید، شما به یک استاد اسکرام در تیم خود نیاز دارید. اگر شما در چابک تازهکار هستید، ممکن است شما به یک مربی چابک برای رسیدن به وضعیت راضیکننده در تیم چابک نیاز داشتهباشید.
چگونه تیم یک محصول قابل ارائه تولید میکند؟
گفتم که تیم غالبا یک محصول قابل ارائه تولید میکند. اما آنها چطور آن کار را انجام میدهند؟
اگر شما با رویکرد آبشاری خوکرده باشید، جایی که هفتهها برای به دست آوردن نیازمندی زمان سپری میکنید و هفتههای بیشتری برای معماری و طراحی وقت میگذارید، ممکن است شگفتزده شوید که چطور یک تیم در دنیا اغلب محصولی قابلی ارائه تولید میکنند و نه همیشه!
وقتی در اینجا صحبت از اغلب میکنیم منظورمان در حد روز است، یک روز، دو روز. بله من داستانهای یک روزه و حداکثر دو روزه را دوست دارم. بعضی مردم فکر میکنند من دیوانه هستم. من یک داستان یکهفتهای را بسیار بزرگ میدانم. آنها برای من در کسبوکار من بسیار بزرگ هستند. همچنین آنها برای تعداد زیادی از مشتریان من بلند و طولانی است، بنابراین من آنها را توصیه نمیکنم.چطور از کاری که داستانش ۶ الی ۸ هفته یک بار رخ میدهد به مدل کاری داستان یک روزه منتقل شویم؟
شما میتوانید این کار را با پرسیدن این جمله انجام دهید:
اولین کاری که شما باید انجام دهید چه چیزی است؟
بعد به این فکر کنید که چطور میتوانید مشخصههای مورد نیاز مشتری را اجرا کنید.
بخاطر بسپارید که مشتریان شما ساختار و طراحی شما را نخریدهاند، بلکه آنها خصوصیات را خریدهاند. در چابک ما تفکر متفاوتی درمورد تعریف نیازمندی داریم، که آن را داستانِ مصرفکننده مینامیم. در اینجا یک راه برای تعریف داستان مصرفکننده آوردهایم:
“بعنوان یک <مصرفکننده/نقش> خاص من <تعدادی مشخصه> لازم دارم که <تعدادی ارزش/منفعت> هستند.” شما همچنین یک معیار پذیرش برای این داستان تعریف میکنید.
حالا ممکناست شما فکر کنید که : “براساس این قالب داستان جزئیات به قدر کافی برای اینکه من کدنویسی و تست انجامدهم وجودندارد”.شما درست میگویید. یک داستان دارای اطلاعات کافی است، بنابراین شما با مالک محصول مکالمه دارید.
شما میخواهید همه چیز را در یک کارت ۳ تا ۵ اینچی جا دهید.(منظور از کارت درواقع کاغذهای در قطع کوچک برای تعریف فعالیت ها، استیکی نوت یا چیزی شبیه اندازه برگههای ترللو) اگر در کاغذهای به آن اندازه جا نمیگیرد در اینصورت یک تراژدی است! شما مایل هستید داستان را تا جایی تقسیم کنید که در کارتهایی با این اندازه جا بگیرد.
سپس شما خواهان اجرای مشخصه ها هستید همانطور که در تصویر آمدهاست.
همچنین میتوانید بعنوان مجری کار به طراحی هم فکر کنید. شما تا زمانی که اطلاعات کافی درمورد مشخصهها نداشته باشید نمیتوانید درمورد طراحی هم فکر کنید.
شما فقط مواردی را اجرا میکنید که شما نیاز دارید الان آنها را اجرا کنید. آیا این کار گاهی ناامید کننده و خسته کننده است؟ بله هست.البته همیشه یه این فکر میکنم که تا زمانی من اینجا هستم که بتوانم کار را بخوبی انجام دهم.اما اگر فعالیتی در انبار کارهای قابل انجام نباشد، من آنها را انجام نمیدهم چون باید کارهایی که مهم هستند و دارای بیشترین اولویت هستند انجام شوند.
چطور تیم متوجه انجام کار شود؟
زمانی که فعالیتهای اعضای تیم در یک چرخه تمام شدند ، تیم یک دمو خواهد داشت. مدل “نمایش و ارائه” بهترین روش برای ارائه دمو به مشتری یا مالک محصول برای راهاندازی یک نرم افزار می باشد. کمی ترسناک بنظر میرسد ولی اگر شخصی نیازمندی را تعریف کرد باید بتواند نرم افزار را اجرا کند. این کار آن شخص را درگیر دمو در هر تکرار میکند.
بعد از دمو تیم درمورد چگونگی کارهایی که بعد از اخرین دفعهای که تکرار داشتهاند فکر و تمرکز میکنند.آنها از کار کردن با یکدیگر چه چیزی یاد گرفتند؟چه کارهایی راضی کننده بود؟ کجا لغزش داشتند؟ چه کاری را نیاز دارند ادامهدهند؟ کجا نیاز دارند تا پیشرفت کنند؟
دوباره این کار را انجام دهید
سپس تیم دوباره این کارها را انجام دهد. این بخش های تکرارشونده هستند.
کدام سبک چابک را استفاده کنیم؟
چابک یک واژه و مفهوم درحیطه کارهایی هست که تکرار شونده و افزایشی در تولید محصول هستند- تکراری بخاطر اینکه تیم محصول را بازبینی میکنند و افزایشی بخاطر اینکه تیم مشخصههای مورد نیاز را تا جایی انجام میدهند تا تکمیل شود و زمان تکمیل یک مشخصه ممکن است افزایش پیدا کند.
بعضی مثال های این سبک
Extreme Programming (XP)
Scrum
Crystal
dynamic systems development method (DSDM)
Kanban
feature-driven development (FDD)
اما چابک صرفا یک روش یا رویکرد نیست. این یک سیستم و یک تغییر فرهنگ در سازمان شماست. چابک در پروژهها میدان دید و همچنین شفافیت زیادی ایجاد میکند که به عمق سازمان نفوذ میکند.تیم چابک با هم کار میکنند تا محصولاتی تولید کنند.
این قانون هر موضوعی را در سازمان شما دچار چالش میکند،مثل سلسله مراتب، عنوان ها و سیستم های پاداش و دستمزد.
امیدوارم این مقاله برای شما مفید بوده باشه شما همچنین در صورت علاقه مندی در زمینه چابک میتونید به نوشته دیگر وبسایتم درمورد مدیریت چابک مراجعه کنید.