در این نوشته سعی کرده ام بر اساس کتاب ها و مقالاتی که خوانده ام، یک نقشه راه برای مطالعه مفاهیم Agile یا به قول خودمان چابک ارائه دهم. یک مسیر پیشنهادی که به افراد علاقمند کمک می کند به ترتیب و گام به گام با مفاهیم چابک آشنا شوند.
البته که کتاب ها و منابع ارزشمند و قابل استفاده در زمینه مفاهیم چابک زیاد است و من هم بسیاری از آنها را نخوانده ام. بنابراین این صرفا یکی از صدها مسیر است. با این حال امیدوارم بتواند مفید باشد.
آغاز راه: چابک یعنی چه و فلسفه وجودی و دلیل پیدایش آن چیست؟
اگرچه کتاب و مقاله در توضیح مفاهیم چابک بسیار است اما به نظر من نمی توان هیچ جایی را پیدا کرد که بهتر و مختصر و مفیدتر از مقاله The New Methodology از مارتین فاولر فلسفه وجودی و مفهوم چابکی توضیح داده شده باشد.
حالا وقت خواندن Agile Manifesto است. شامل 4 بند و 12 اصل که پایه و اساس نگرش و ارزش های چابک را تشکیل می دهد و به بسیاری زبانها از جمله فارسی ترجمه شده است. از این پس زیاد قرار است به این بیانیه مراجعه کنید.
و اما اسکرام…
مفاهیم چابک در دوره ها و کلاس ها اغلب همراه با اسکرام تدریس می شوند. اسکرام محبوب ترین روش چابک است که توسط Ken Schwaber و Jeff Sutherland ایجاد شده . برای یاد گرفتن آن منبعی بهتر از راهنمای اسکرام نمی توان سراغ گرفت. به همت دوستان انجمن چابک ایران به فارسی ترجمه هم شده است.
راهنمای اسکرام بسیار کوتاه است (کمتر از 20 صفحه)، اما باید با دقت خوانده شود. روی هر کلمه باید ایستاد و در مورد آن تعمق کرد. همچنین بسته به دانش و تجربه افراد با هربار خواندن می توان نکات جدیدی از آن آموخت. بنابراین باید بطور متناوب سراغ آن رفت و مطالعه اش کرد.
برای عمق بخشیدن به دانش خود در اسکرام چه چیزی بهتر از کتابهایی که خالقان اسکرام نوشته اند.
در ادامه برای آشنایی بیشتر با Practice های عملی و مخلفات اسکرام خواندن این دو کتاب را پیشنهاد میکنم. یکی نوشته Henrik Kniberg و دیگری از Mike Cohn. البته باید بدانید که همه موارد مطرح شده در این کتابها از راهنمای اسکرام نیامده اند و بسیاری اش Best Practice ها و تجربیات و توصیه های نویسنده هستند.
اگر خواندن کتاب فارسی را ترجیح می دهید بهترین مرجع، کتاب “مدیریت محصول چابک با اسکرام، خلق محصولی که مشتری عاشقش می شود” رومن پیچلر با ترجمه استاد عزیزم، اسد صفری و آرش خرمشاهی است.
منظور از Lean چیست و چه ارتباطی با Agile دارد؟
حتما تا به حال در مورد Lean در کتابهای بالا چیزهایی خوانده اید. وقتش است که جدی تر در مورد آن مطالعه کنید و در مورد ارتباط آن با مفاهیم چابک بیشتر بدانید. بهترین و مهمترین منبع در این مورد کتابی است که Mary Poppendieck و Tom Poppendieck نوشته اند.
وقتی اسم Lean می آید همیشه روش Kanban هم در کنار آن است. برای آشنایی با این روش کتابهای زیر باز هم از Henrik Kniberg می تواند مفید باشد.
مهارت های اسکرام مستری و Agile Coaching
اگر می خواهید بعنوان اسکرام مستر یا Agile Coach مشغول به کار شوید، خواندن این دو کتاب از اهم واجبات است. ناگفته نماند که کتاب دوم ترجمه فارسی هم دارد با عنوان پنج دشمن کار تیمی.
در کنار آنها بد نیست نگاهی هم به این یکی اندازید.
توصیه ها و Practice های فنی
چابکی فقط در مورد فرایند نیست. برای اینکه اصول چابکی محقق شود توجه به مسائل فنی و کیفیت محصول نیز اهمیت زیادی است.
از بین روش های چابک روش eXtreme Programming (XP) تاکید اصلی اش بر همین مسائل است. بنابراین اولین کار آشنایی با این روش است
به اضافه مطالعه کتاب Kent Beck ، مبدع این روش
می رسیم به بحث شیرین Continuous Delivery . خواندن این کتاب فوق العاده و بی نظیر را نه فقط به چابک کاران که به هرکسی که دستی در تولید نرم افزار دارد شدیدا توصیه میکنم.
ایجاد Continuous Delivery بدون Unit Test های کافی و قابل اطمینان، سرابی بیش نیست. به همین دلیل مدتی مشغول این موضوع شدم و منابع مختلفی را بررسی کردم. شخصا منبعی بهتر از این کتاب پیدا نکردم. با اینکه مثال ها و کدهای آن سی شارپ است اما همچنان قابل استفاده و قابل تعمیم به زبان های دیگر از جمله جاوا است. برای یاد گرفتن مفاهیم و روشهای تولید Unit Test این کتاب عالی است.
در خصوص Test یکی از روش ها و توصیه ها استفاده از Test Driven Development است. کتاب Kent Beck در این خصوص مرجع است.
و در نهایت اینکه در روش های چابک با توجه به Iterative و Incremental بودن، توجه مداوم به کد به منظور حفظ کیفیت نرم افزار و امکان پاسخ به تغییرات ضروری است.
چابک در مقیاس سازمانی
برای استقرار چابک در سازمان ها، چارچوب ها و روش هایی معرفی شده است. اگرچه که در مورد اصل استفاده از آنها موافقان و مخالفانی وجود دارد. به هرحال دانستن آنها و داشتن آشنایی با آنها بد نیست. روش های معمول در این حوزه عبارتند از:
سایر
مهارت های حوزه چابک طیف گوناگونی را در بر می گیرند. علاوه بر مباحثی که مستقیما با Agile ارتباط دارد، با توجه به اینکه چابک کاران معمولا در فرایند تغییر سازمانی در صف اول هستند، همچنین از آنجایی که سروکار آنها با افراد و اشخاص و کارکنان است، نیاز است در این موارد نیز دانش داشته باشند. بنابراین مطالعه در حوزه های گوناگون باید یکی از فعالیت های همیشگی آنها باشد. در ادامه چند کتاب دیگر نیز در موضوعات مختلف و پراکنده پیشنهاد می کنم.
خاتمه
در خاتمه چند نکته لازم است ذکر شود:
1-ناگفته پیداست که این همه ی کتابها نیست و کتابها و منابع ارزشمند در این حوزه بسیار بسیار بیشتر از اینها است. سعی من این بوده که کتابهای اصلی و مهم تر هر حوزه را با توجه به شناخت خودم معرفی کنم . با این حال قطعا دوستان ممکن است جای کتابهایی را اینجا خالی ببیند. سپاسگزار خواهم شد که آنها را هم به من معرفی کنند.
2- علاوه بر کتاب، جاهای بسیار دیگری هست که در رابطه با موضوعات چابک مطلب و مقاله منتشر می کنند و پیگیری و مطالعه آنها برای کسب دانش در مورد تجربیات و توصیه های دیگران مفید است. امیدوارم در آینده بتوانم لیستی از افراد و صاحبنظران، وب سایت های مرجع و مقالات مهم این حوزه را نیز معرفی کنم.
3- اگرچه مطالعه شرط لازم است اما کافی نیست. اصول و مهارت های چابک، همچنین چالش ها، دشواری های پیش رو و ریزه کاری ها تنها با عمل کردن و کسب تجربه است که درک می شوند. مثل خود روشهای چابک که بر تجربه گرایی تاکید دارند، خبره شدن در چابکی و مفاهیم و پیاده سازی آن نیز با تجربه کردن و سعی و خطا و کوشش بدست می آید.
4- لطفا نظرات و پیشنهادات خود را با من در میان بگذارید.