نکات کلیدی
۱. چابکی هنری است که با تمرین آموخته میشود
برای تسلط بر توسعه چابک، باید بتوانید در هر لحظه گزینههای متعدد را ارزیابی کرده و بهطور شهودی بهترین مسیر را انتخاب کنید.
تسلط از طریق تمرین. توسعه چابک، مانند هر مهارت پیچیدهای، هنری است که نیازمند تجربه عملی برای تسلط است. مطالعه درباره آن تنها آغاز راه است؛ درک واقعی زمانی حاصل میشود که اصول و روشها را در موقعیتهای واقعی به کار ببرید. برنامهنویسی افراطی (XP) بهعنوان راهنمایی دقیق و تمرینی کاربردی، به تیمها کمک میکند مهارتها و شهود لازم را کسب کنند.
فراتر از قواعد. اگرچه XP مجموعهای جامع از روشها را ارائه میدهد، تسلط به معنای صرفاً پیروی از قواعد نیست. چابکی وابسته به زمینه است و هیچ رویکرد واحدی برای همه شرایط مناسب نیست. هدف درک اصول بنیادین است تا بتوانید روشها را متناسب با نیازهای خاص تیم و پروژه خود تطبیق دهید، حدسهای آگاهانه بزنید و نتایج را مشاهده کنید.
ذهنآگاهی کلید است. تمرین باید همراه با ذهنآگاهی باشد؛ یعنی توجه به اینکه چه چیزی کار میکند، چه چیزی نمیکند و چرا. تجربیات خود را بازتاب دهید، با تیم خود گفتگو کنید و از این بینشها برای بهبود رویکردتان بهره ببرید. این چرخه تکراری تمرین، بازتاب و تطبیق، راه رسیدن به چابکی واقعی است.
۲. تمرکز بر ارائه ارزش، نه صرفاً رعایت مهلتها
پروژهای میتواند موفق باشد حتی اگر هیچ درآمدی نداشته باشد. و میتواند با وجود کسب میلیونها دلار درآمد، با چالش مواجه شود.
فراتر از معیارهای سنتی. تعاریف سنتی موفقیت پروژه معمولاً محدود به تحویل به موقع، در چارچوب بودجه و مطابق مشخصات است. اما پروژهای ممکن است همه این معیارها را برآورده کند و در عین حال ارزش واقعی برای کسبوکار یا کاربران ایجاد نکند. برعکس، پروژههایی که از نظر معیارهای سنتی «چالشدار» محسوب میشوند، اگر ارزش غیرمنتظرهای ارائه دهند یا مورد علاقه مخاطبان هدف باشند، میتوانند بسیار موفق باشند.
سه نوع موفقیت. موفقیت واقعی شامل ابعاد سازمانی، فنی و شخصی است. موفقیت سازمانی یعنی ارائه ارزشی که بیش از هزینهها باشد، چه از طریق درآمد، صرفهجویی در هزینه یا مزیت استراتژیک. موفقیت فنی یعنی ساخت نرمافزاری با کیفیت بالا و قابل نگهداری. موفقیت شخصی یعنی اعضای تیم کار خود را لذتبخش و رضایتبخش بیابند.
ارزش سازمانی در اولویت است. در حالی که موفقیت شخصی و فنی برای روحیه و پایداری تیم مهم است، موفقیت سازمانی اغلب معیار نهایی برای ذینفعانی است که پروژه را تأمین مالی میکنند. روشهای چابک بر ارائه ارزش بهموقع و مکرر تأکید دارند تا مهمترین ویژگیها ابتدا ساخته شوند و ارزش پروژه به طور مستمر نشان داده و به حداکثر برسد.
۳. تیمی چندوظیفهای بسازید و کنار هم بنشینید
تیمهای چابک چندوظیفهای هستند؛ این کتاب نیز این واقعیت را منعکس میکند.
تنوع تخصص ضروری است. توسعه موفق نرمافزار نیازمند دانش و مهارتهای متنوعی از جمله برنامهنویسی، تست، تخصص حوزه، طراحی و مدیریت پروژه است. تیمهای چابک به گونهای ساخته میشوند که افراد با این مهارتهای متنوع را در یک واحد منسجم گرد هم آورند. این تضمین میکند که همه دیدگاههای لازم روزانه حضور داشته و یکپارچه شوند.
نشستن کنار هم برای ارتباط سریع. مؤثرترین راه برای تسهیل همکاری و جریان اطلاعات، نشستن کل تیم در یک فضای باز است. این امکان ارتباط سریع و با پهنای باند بالا را فراهم میکند تا اعضا بتوانند بلافاصله سؤال بپرسند و پاسخ دریافت کنند، تأخیرها و سوءتفاهمها کاهش یابد. همچنین ارتباط «اسموتیک» را تقویت میکند که در آن اعضا مکالمات مرتبط را به طور غیرمستقیم میشنوند.
نقشها، نه فقط عناوین. اگرچه عناوین سنتی وجود دارد، XP بر نقشهایی مانند مدیر محصول (تصمیمگیرنده درباره چه چیزی ساخته شود)، مشتریان در محل (تعریف نیازمندیها)، برنامهنویسان (کاهش هزینه، نوشتن کد)، تستکنندگان (تضمین کیفیت، کشف موارد غیرمنتظره) و مربیان (کمک به موفقیت تیم) تأکید دارد. این نقشها تضمین میکنند که همه وظایف لازم پوشش داده شده و همه در موفقیت تیم سهیم باشند، فارغ از عناوین رسمی شغلی.
۴. برنامهریزی تطبیقی، نه پیشبینی
XP تغییر احتمالی را فرصتی برای بهرهبرداری میداند؛ فرصتی برای یادگیری چیزی مهم.
پذیرش تغییر بهعنوان فرصت. به جای ترس از تغییر و تلاش برای برنامهریزی همه احتمالات از ابتدا، روشهای چابک تغییر را فرصتی برای یادگیری و افزایش ارزش میدانند. برنامه اولیه بهعنوان نقطه شروع دیده میشود، نه نقشهای سخت و غیرقابل تغییر، و انتظار میرود با کسب اطلاعات جدید از توسعه، بازخورد و بازار تکامل یابد.
برنامهریزی در آخرین لحظه مسئولانه. برنامهریزی دقیق تا «آخرین لحظه مسئولانه» به تعویق میافتد؛ زمانی که عدم تصمیمگیری باعث از دست رفتن گزینه مهمی میشود. این کار اطلاعات موجود هنگام تصمیمگیری را به حداکثر میرساند، دقت را افزایش داده و از صرف تلاش بیهوده برای برنامههایی که ممکن است منسوخ شوند جلوگیری میکند. افقهای برنامهریزی به صورت لایهای است، با جزئیات بیشتر برای کارهای نزدیک و کمتر برای آینده دور.
انتشارهای مکرر امکان تطبیق را فراهم میکند. گروهبندی ویژگیها در نسخههای کوچک و قابل عرضه به بازار و تحویل مکرر آنها به تیم اجازه میدهد بازخورد واقعی را زود و مکرر دریافت کند. این بازخورد برای تطبیق برنامه استفاده میشود، ویژگیهای با ارزشتر اولویت مییابند و آنهایی که کمتر ارزشمندند عقب میافتند. این کار بازگشت سرمایه را در طول عمر پروژه به حداکثر میرساند.
۵. نرمافزار کاری را بهطور مکرر تحویل دهید
با استفاده از فازهای همزمان، تیم XP هر هفته نرمافزار قابل استقرار تولید میکند.
نرمافزار کاری معیار پیشرفت است. معیار اصلی پیشرفت در توسعه چابک، نرمافزار کاری است که به ذینفعان تحویل داده میشود. تیمهای XP کار خود را در تکرارهای کوتاه و با طول ثابت (معمولاً یک هفته) سازماندهی میکنند که در آن تحلیل، طراحی، کدنویسی، تست و استقرار بخشی از ویژگیها انجام میشود. این اطمینان میدهد که پیشرفت ملموس به طور مداوم حاصل و نشان داده میشود.
«تمام شده تمام شده» یعنی آماده تولید. یک داستان زمانی کامل محسوب میشود که «تمام شده تمام شده» باشد؛ یعنی تمام معیارهای آمادهسازی برای تولید، از جمله کدنویسی، تست، یکپارچهسازی، ساخت و نصب را برآورده کند. این از انباشت کار پنهان که باعث تأخیر در انتشار میشود جلوگیری میکند و تضمین میکند نرمافزار همیشه در وضعیتی است که میتوان آن را عرضه کرد، حتی اگر هر هفته به کاربران نهایی تحویل داده نشود.
تحویل مکرر اعتماد میسازد. ارائه نسخه کاری به ذینفعان داخلی هر هفته (نمایش تکرار) و انتشار مکرر به مشتریان واقعی، اعتماد ایجاد کرده و بازخورد ارزشمندی فراهم میکند. این تیم را مجبور میکند سطح بالایی از آمادگی فنی را حفظ کند و فرآیند انتشار را به رویدادی روتین و کمتنش تبدیل میکند، نه به تجربهای پرتنش و پرخطر.
۶. به دنبال برتری فنی بیوقفه باشید
بهترین پروژههای چابک تنها چند باگ در ماه تولید میکنند.
کیفیت فدا نمیشود. روشهای چابک، بهویژه XP، بر برتری فنی بهعنوان پایهای برای چابکی و توسعه پایدار تأکید دارند. کیفیت بالای کد، نرخ پایین خطا و طراحی تمیز و قابل نگهداری، عوامل ضروری برای تحویل سریع و مکرر و توانایی تطبیق با تغییر هستند.
کاهش خطاها. به جای تکیه بر فازهای گسترده تست برای یافتن و حذف باگها، تیمهای چابک بر پیشگیری از ایجاد باگها تمرکز دارند. روشهایی مانند توسعه مبتنی بر تست (TDD)، برنامهنویسی جفتی و طراحی ساده به توسعهدهندگان کمک میکند از ابتدا کدی صحیح و با کیفیت بنویسند.
حذف بدهی فنی. بدهی فنی – تصمیمات طراحی و پیادهسازی کمتر از حد ایدهآل – باعث بروز باگ و کندی توسعه آینده میشود. تیمهای چابک با بازسازی مداوم و اختصاص زمان (فضای خالی) در هر تکرار برای بهبود کد موجود، مراقب کاهش بدهی فنی هستند. هدف این است که کد به مرور زمان آسانتر قابل تغییر شود.
۷. ارتباط مستقیم و اعتماد را بپذیرید
ما سریع و دقیق ارتباط برقرار میکنیم.
ارتباط حیاتی است. ارتباط مؤثر شریان حیاتی تیم چابک است. سوءتفاهمها و تأخیر در جریان اطلاعات منابع مهمی از هدررفت و ریسک هستند. روشهای چابک ارتباط مستقیم و رو در رو را بر مستندسازی رسمی و فرآیندهای بوروکراتیک ترجیح میدهند.
اعتماد همکاری را ممکن میسازد. ایجاد روابط قوی مبتنی بر اعتماد برای همکاری مؤثر ضروری است. اعضای تیم باید به یکدیگر اعتماد کنند که بهترین تلاش خود را انجام دهند، درخواست کمک کنند و بازخورد صادقانه بدهند. سازمان باید به تیم اعتماد کند که خود را مدیریت کرده و نتایج را تحویل دهد. اعتماد به تیم اجازه میدهد بدون نظارت و مستندسازی بیش از حد کار کند.
روشهایی که ارتباط و اعتماد را تقویت میکنند:
- نشستن کنار هم: ارتباط سریع و اسموتیک را ممکن میسازد.
- برنامهنویسی جفتی: گفتگوی مداوم و اشتراک دانش را تقویت میکند.
- جلسات ایستاده: هماهنگی روزانه سریع همه را مطلع نگه میدارد.
- زبان مشترک: درک مشترک مفاهیم حوزه را تضمین میکند.
- نمایش تکرار: اشتراک شفاف پیشرفت اعتماد ذینفعان را میسازد.
- بازنگریها: فضای امن برای بازخورد صادقانه و بهبود فرآیند فراهم میکند.
۸. هدررفت را حذف کنید و سریع شکست بخورید
سادگی هنر به حداکثر رساندن کار انجام نشده است.
اصول ناب به کار گرفته شده. روشهای چابک به شدت از اصول تولید ناب بهره میبرند و بر شناسایی و حذف هدررفت در فرآیند توسعه نرمافزار تمرکز دارند. هدررفت شامل هر چیزی است که منابع را مصرف میکند بدون اینکه ارزش افزوده ایجاد کند، مانند مستندسازی غیرضروری، زمان انتظار، تغییر وظایف و کار نیمهتمام.
سریع شکست بخورید تا ضرر کم شود. اگر پروژه یا رویکرد خاصی احتمالاً شکست میخورد، بهتر است این موضوع هرچه سریعتر کشف شود. روشهای چابک برای آشکارسازی زودهنگام مشکلات و ریسکها طراحی شدهاند تا تیم بتواند مسیر خود را تغییر دهد، برنامه را تنظیم کند یا حتی پروژه را قبل از هدررفت منابع قابل توجه لغو کند. آزمایشها و گامهای کوچک به کشف سریع مسائل کمک میکنند.
کار انجام نشده را به حداکثر برسانید. مؤثرترین راه حذف هدررفت، اجتناب از انجام کار غیرضروری است. این یعنی هر ویژگی، هر مرحله فرآیند و هر قطعه کد را زیر سؤال ببرید. اگر مستقیماً به ارائه ارزش اکنون کمک نمیکند، احتمالاً هدررفت است. طراحی ساده و اصل «شما به آن نیاز نخواهید داشت» (YAGNI) در این زمینه کلیدی هستند.
۹. فرآیند خود را بهطور مستمر بهبود دهید
هیچ فرآیندی کامل نیست.
تطبیقپذیری کلید چابکی است. توانایی پاسخ مؤثر به تغییر نیازمند آن است که خود فرآیند تیم نیز قابل تطبیق باشد. هیچ فرآیندی برای همه شرایط کامل نیست و حتی فرآیند خوب نیز باید با تغییر تیم، پروژه و محیط تکامل یابد. بهبود مستمر فرآیند یکی از اصول بنیادین چابکی است.
بازنگریها محرک بهبودند. بازنگریهای منظم زمانی اختصاصی برای تیم فراهم میکنند تا درباره کار اخیر خود تأمل کند، نقاط قوت و ضعف را شناسایی کرده و به تغییرات مشخصی در فرآیند برای تکرار بعدی متعهد شود. این چرخه بازخورد برای خود فرآیند است که باعث بهبود آن در طول زمان میشود.
تنظیم و تطبیق بر اساس بازخورد. از بازخورد همه منابع – معیارهای کیفیت کد، نرخ خطا، رضایت ذینفعان، روحیه تیم، پایداری سرعت – برای شناسایی حوزههای بهبود استفاده کنید. با تغییرات کوچک در روشها آزمایش کنید، نتایج را مشاهده و تکرار کنید. این کار نیازمند شجاعت برای آزمون چیزهای جدید و انضباط برای پیگیری و ارزیابی است.
۱۰. به افراد تکیه کنید و آنها را توانمند سازید
روشهای چابک افراد و تعاملات آنها را در مرکز همه تصمیمات قرار میدهند.
افراد محور اصلی هستند. توسعه نرمافزار اساساً فعالیتی انسانی است. موفقیت پروژه به شدت به مهارتها، انگیزه و تعاملات افراد وابسته است. روشهای چابک این موضوع را با تمرکز بر ایجاد روابط مؤثر و فراهم کردن محیطی که افراد در آن شکوفا شوند، به رسمیت میشناسند.
اعتماد و اختیار. تیمهای چابک بر پایه اعتماد ساخته میشوند. سازمان به تیم اعتماد دارد که خود را مدیریت کند و تصمیمات لازم برای رسیدن به اهداف پروژه را بگیرد. درون تیم، اعضا به تخصص و تعهد یکدیگر اعتماد دارند. این اعتماد با دادن اختیار لازم به تیم برای فرآیند، ابزارها و تصمیمات فنی پشتیبانی میشود.
ساخت فرآیند برای افراد. به جای ایجاد فرآیندهای سخت و کنترلکننده که ضعفهای انسانی را جبران کنند، فرآیندهای چابک برای بهرهگیری از نقاط قوت انسانی مانند خلاقیت، حل مسئله و تمایل به انجام کار خوب طراحی شدهاند. روشهایی مانند برنامهنویسی جفتی و کار پرانرژی به توسعهدهندگان کمک میکند تمرکز و کیفیت را حفظ کنند، در حالی که بازنگریها تیم را توانمند میسازند تا مسائل فرآیندی را بهصورت جمعی حل کنند.
۱۱. از داستانها و برآوردها برای برنامهریزی استفاده کنید
داستانها برای برنامهریزی هستند.
واحدهای کوچک و مشتریمحور. داستانها توصیفهای ساده و کوتاهی از عملکرد مورد نظر هستند که از دیدگاه مشتری نوشته شدهاند. آنها نمایانگر بخشهای کوچک و ارزشمندی از کارند که معمولاً در یک تکرار قابل انجام هستند. داستانها واحدهای اصلی برنامهریزی، بحث و پیگیری پیشرفت به شمار میروند.
برآوردها برنامهریزی را اطلاع میدهند. برنامهنویسان برای داستانها برآوردهایی ارائه میدهند، معمولاً به صورت واحدهای انتزاعی مانند «نقاط داستان» (نمایانگر تلاش ایدهآل). این برآوردها همراه با سرعت اندازهگیری شده تیم (تعداد نقاط تکمیل شده در هر تکرار) به تیم امکان میدهد پیشبینی کند چه مقدار کار را میتواند در بازه زمانی مشخص به طور قابل اعتماد انجام دهد.
بازی برنامهریزی. بازی برنامهریزی فرآیندی مشارکتی است که در آن مشتریان داستانها را بر اساس ارزش اولویتبندی میکنند و برنامهنویسان آنها را بر اساس هزینه برآورد میکنند. این اطمینان میدهد که برنامهها هم نیازهای کسبوکار و هم واقعیت فنی را منعکس میکنند و به تعهدات قابل دستیابی منجر میشوند. داستانها و برآوردها اطلاعات لازم برای این مذاکره و تطبیق مداوم برنامه انتشار را فراهم میکنند.
آخرین بهروزرسانی::
نقد و بررسی
کتاب «هنر توسعه چابک» عمدتاً با بازخوردهای مثبت مواجه شده و میانگین امتیاز آن ۳.۹۸ از ۵ است. خوانندگان به پوشش جامع این کتاب از روشهای چابک، بهویژه برنامهنویسی افراطی (XP)، ارج مینهند. بسیاری این اثر را برای تیمهایی که در حال پذیرش متدولوژیهای چابک هستند، بسیار مفید میدانند. برخی از منتقدان به طول کتاب و سبک نگارش آن اشاره کردهاند، در حالی که گروهی دیگر توضیحات دقیق و مفصل آن را ستودهاند. این کتاب بیشتر بر برنامهنویسی افراطی تمرکز دارد تا چابک به طور کلی، نکتهای که برخی خوانندگان آن را گمراهکننده میدانند. در مجموع، «هنر توسعه چابک» به عنوان منبعی کاربردی برای علاقهمندان به توسعه چابک، بهویژه روشهای XP، شناخته میشود.
Similar Books









