مترجم: مهندس امیر جلیلیفرد
فهرست
+ مسأله
+ پاسخ متدهای چابک
++ اصول بنیادی
+ بیانیه نرمافزار چابک
+ قواعد زاینده
+ اقدامات چابک
++ برنامهریزی ویژگی و اولویتبندی پویا
++ بازخورد و تغیییر
++ تأکید بر کارتیمی
توسعه نرم افزار چابک: کسب و کار نوآوری – بخش سوم و آخر
اقدامات چابک(Agile Practices)
تیمی که حلقه بازخورد* با مشتریان و مدیرانش بیش از شش ماه باشد، چابک نیست. رویکردهای چابک برای اتخاذ تصمیمات بینابینی** و انطباق با اطلاعات جدید، تکرارهای کوتاهِ دو تا شش هفتهای را پیشنهاد میکنند .XP و Scrum دورههای مشخصتری -دو تا سه هفته در XP و سی روز در Scrum- دارند. در دیگر متدها مانند Crystal و ASD دورههای متنوعتری قابل تعریف است.
برنامهریزی ویژگی و اولویتبندی پویا(Feature Planning and Dynamic Prioritization)
رویکردهای چابک، دورههای تکرار کوتاهمدت را با برنامهریزی ویژگی و اولویت٬بندی پویا ترکیب میکنند. XP از کارتهای استوری (story)، Scrum از واژه بکلاگ(backlog)، ASD و FDD از ویژگی (Feature) استفاده میکنند. نکته اصلی این است که رویکردهای چابک در وهله نخست ویژگیها را به جای وظیفهها(Task) برنامهریزی میکنند، زیرا آن چه مشتری میفهمد، ویژگی است.
اولویتبندی پویا بدین معناست که مشتری در پایان هر تکرار میتواند ویژگیهای دلخواه خود برای دوره بعدی را صرفنظر از ویژگیهای برنامهریزیشده قبلی و با افزودن ویژگیهای جدید، دوباره اولویتبندی کند.
در Scrum اولویتها فقط میتوانند در پایان هر تکرار تغییر کنند و تغییر آنها در طول تکرار مجاز نیست. DSDM از قواعد MoSCoW –Must have، Should have، Could have، Would have- برای اولویتبندی ویژگیها استفاده میکند. روش اولویت XP، دوگزینهای است: در این دوره هست یا نه؟ [مهم نیست در کدام یک از دورههای بعدی خواهد بود. فقط بودن در این دوره اهمیت دارد].
بازخورد و تغییر(Feedback and Change)
از آنجا که متدهای چابک برای محیطهای پرتلاطم و پرتغییر کاربرد بیشتری دارند، اقدامات متنوعی را برای دریافت بازخورد دائمی از تصمیمات فنی، نیازمندیهای مشتری و محدودیتهای مدیریتی پیشنهاد میکنند.
XP برنامهنویسی دو نفره را برای دریافت بازخورد پیشنهاد کرده و DSDM نمونهسازی(پروتوتایپ) زود به زود را پررنگ کرده است. Crystal و ASD طرفدار بازنگری فرایند و تیم در پایان هر تکرار هستند. ASD و Scrum بازنگری پایان هر تکرار با گروه کارشناسی (گروه تمرکز ) مشتری را انجام میدهند.
اقدامات چابک به جای مقاومت در برابر تغییرات، تشویق به ایجاد آنها میکنند. در موقعیتهای پرتلاطم کسبوکار، حد مجاز تغییرات در متدلوژِی باید متناسب با میزان تغییرات محیط باشد و نه مبتنی بر نگاه داخلی و میزان تغییرات قابل پذیرش در تیم. برای مثال تغییر اولویتبندی ویژگیها و نیازمندیها بدون نقض تغییرات، محدوده، زمانبندی و محدودیتهای کلان تعیین شده از سوی خریدار، بر اساس فضای تیم و شرکاء مشخص میشود.
تأکید بر کار گروهی
پیش هم بودن اعضای تیم [مشتریان، تیم توسعه و سایر ذینفعان] و شدت تعامل بین آنها از نشانههای متدهای چابک است. XP برنامهنویسی دو نفره را که سالها با نامهای متفاوتی وجود داشته، به کارگرفته است. Crystal، Scrum و ADS طرفدار اقدامات مبتنی بر مشارکت زیاد از جمله تیمهای پیشهم و بدون مرزبندی هستند و Lead Development نیز بر تعامل اعضای تیم تأکید دارد.
بهکارگیری متدهای چابک نیازمند مشارکت زیاد مشتریان است. چنانچه مشتریان اعم از نمایندگان واحدهای داخلی یا مدیران محصول واحد بازاریابی، برداشت درستی از مسیر محصول نداشته و بین الگوهای ناشناخته سرگردان باشند، توسعهدهندگان چابک ناچارند از آنها پیروی کنند (و البته با تذکر و راهنماییهای موردی) و شکی نیست که پیامد مشتریان ضعیف، سیستمهای ضعیف خواهد بود.
سخن آخر:
در سال ۱۹۹۵، Goldman،Nagel و Preiss نویسندگان کتاب Agile Competitors and Virtual Organizations تعریف زیر را برای چابکی پیشنهاد کردهاند:
چابکی عبارت است از پویایی، توجه به شرایط، پذیرش بیباکانه تغییرات و ترقیگرایی. چابکی درباره بهبود بهرهوری، کاهش هزینهها یا کوچکسازی کسبوکار برای گذر از طوفانهای ترسناک بازارهای رقابتی نیست. چابکی درباره موفقیت و پیروزی است: درباره موفقیت در عرصههای رقابتی نوظهور و پیروزی در کسب سود، سهم بازار و مشتریان در اوج طوفانهای بازارهای رقابتی است –هماکنون این موارد، بسیاری از شرکتها را به هراس انداخته.
هر چند این کتاب درباره تولید نوشته شده، اما تعریف چابکی برای محیط توسعه نرمافزار کنونی، کاملاً صادق است.
خلاصه این که چابکی درباره ایجاد و پاسخگویی به تغییرات است. آنچه که درباره متدهای چابک تازگی دارد، اقدامات بهکارگرفته شده در آنها نیست، بلکه به رسمیت شناختن افراد به عنوان حرکتدهندگان اصلی پروژه به سوی موفقیت به همراه تأکید فراوان بر اثربخشی و قدرت مانور است. این امر منجر به مجموعهای از ارزشها و اصولی میشود که جهانبینی چابک را تشکیل میدهند.
توسعه نرمافزار چابک بیانگر دو عامل فشار بر کسبوکار و تکنولوژِی کنونی است: نیاز به «رویکردهای پویا همراه با نوآوری» و تمایل به «ایجاد محلکاری» که در کاریکاتورهای Dilbert *** وجود نداشته باشد.
—————————-
*پسخورد یا بازخورد، اندازهگیری متغیرهای خروجی و استفاده از آنها در اعمال ورودی به سیستم است. اعمال ورودی، عملیات سیستم، اندازهگیری خروجی و استفاده از آن در اعمال مجدد ورودی سیستم، حلقهای را شکل میدهد که آن را حلقه پسخورد/بازخورد گویند.
** trade-off به معنای سبکوسنگین کردن و هم چنین معاوضه آمده است به عنوان مثال «انتخاب بین کوه رفتن یا خرید کردن در صبح روز جمعه این هفته».
*** www.Dilbert.com
گزیده:
عادت دستان ما را هوشمندتر و هوش ما را بیدستوپاتر میسازد.
پویا
۱۷ مهر ۱۳۹۱ در ۰۰:۰۰سلام
پیشنهاد می کنم پی دی اف مقاله رو هم به صورت یکپارچه بگذارید
———————————–
سلام پویا جان
پیشنهاد خوب شما انجام شد.
سپاسگزارم از پیشنهادتان
شاد باشید
مهرداد
شهاب
۲۲ مهر ۱۳۹۱ در ۰۰:۰۰درود بر شما
عادت دستان ما را هوشمندتر و هوش ما را بیدستوپاتر میسازد.
من بارها یه این جمله فکر کردم .