انجمن انفورماتیک ایران انجمن انفورماتیک ایران انجمن انفورماتیک ایران
گزارش کامپیوتر شماره 234, ویژه مرداد و شهریور ماه 96 منتشر شد. چهارشنبه  ٠١/٠٩/١٣٩٦ ساعت ١٦:٣٩
 

   مزایا و چالش‏های روش‏های چابک و
مقایسه روش‏های چابک در انواع سازمان‏ها

فرید دهقان

کارشناس ارشد مهندسی فناوری اطلاعات
پست الکترونیکی: farid.dehgan@yahoo.com


 

چکیده

با افزایش سرعت رشد سازمان‏ها و پیچیدگی نیازمندی‌های سازمانی، روش‏های سنتی توسعه راهکارهای سازمانی به دلیل کمبود انعطاف  ناکارآمد شدند.  روش‏هایی که توسعه را سریع و انعطاف‏پذیر کرده و مشکلات ناشی از تغییرات فضای نیازها و همچنین  پیچیدگی درک نیازها را در قالب  تعامل مستمر  حل کند،  تحت عنوان روش‏های چابک به وجود آمدند.  این روش‏ها  توسعه راهکارها را تسهیل کرده و با تکیه بر پرهیز از اضافه کاری و تعامل مداوم با مشتری مزایای بسیاری را برای سازمان‏ها به وجود می‌آورند. اما اجرای این روش‏ها  چالش‏هایی را هم در انتخاب نیروی کار، کار تیمی و مدیریت تغییر  نیازمندی‌ها به وجود می‌آورد. در سازمان‏هایی با ساختارهای متفاوت این روش‏ها مزایایی را ایجاد می‌کنند و با توجه به ساختار سازمان ممکن است چالش‌هایی نیز به وجود آورند. نیازمندی‏های به‌کارگیری روش‏های چابک و نیز چالش‏های پیش روی سازمان‏ها از نگرانی‏های مهم مدیران در به‌کارگیری این روش‏ها هستند. در این مقاله روش‏های مطرح چابک‏سازی مانند اسکرام و کریستال و چند روش مطرح دیگر، در انواع سازمان‏ها با یکدیگر مقایسه شده‏اند. این مقایسه بر اساس اندازه تیم، تخصص‏ها، نیروی کاری، نیازمندی به مستندات و معماری سازمانی خواهد بود. و در نهایت روش چابک سازی مناسب برای انواع ساختاری سازمان‏ها پیشنهاد شده است.
کلمات کلیدی: توسعه چابک، معماری سازمانی، روش‏های چابک سازی

مقدمه

برای حل مشکلات ناشی از سرعت رشد نرم‏افزارها، پیچیدگی نیازها، تغییرات محیطی و نیازهای سازمانی و برای ارایه راهکارها به صورت کارا و سریع مفهوم توسعه چابک مطرح شد. این مفهوم طی بیانیه‏ای توسط 17 نفر از استادان حوزه نرم‏افزار در سال 2001 میلادی ارایه شد. این بیانیه با اصولی برای توسعه چابک ارایه شد ] 1 [ . در اولین اصل این بیانیه، ارتباطات و تعاملات افراد مهم‌تر از روش‌ها و ابزارها قلمداد شده‏اند. به عبارتی ارتباط تیمی و همچنین تعامل با ذینفعان پروژه حیاتی‏تر از مقوله ابزارها و شیوه‌های توسعه نرم‏افزار در نظر گرفته شده‏اند. همچنین در این رویکرد نرم‏افزار کارامد مهم‏تر از مستندات جامع در نظر گرفته شده و پاسخ‌گویی به تغییرات نیز در اولویت قرار گرفته است. در این مدل در واقع مشتری در روند توسعه نرم افزار دخیل بوده و بازخوردهای مشتری در بازه‏های کوتاه، در توسعۀ نرم‏افزار راهنمای تیم توسعه است. این روش در کنار مزایایی که دارد در بسیاری از سازمان‏ها که آمادگی بهره‏برداری از این روش‏ها را ندارند، چالش‏ها و مشکلات زیادی را به وجود می‏آورد. در بخش 2 به مزایا و معایب روش‏های چابک و چالش‏های پیش رو  در توسعه چابک پرداخته می‏شود و در بخش 3  به تناسب هر یک از روش‏ها با توجه به ویژگی‏های سازمانی پرداخته خواهد شد.

مزایا و چالش‏های توسعه چابک

یکی از مشکلاتی که در انتخاب روش‏های چابک وجود دارد،انتخاب آن به عنوان یک هوس یا  استفاده از آن به عنوان مُد است. در صورتی که چابک یک رویکرد در مهندسی نرم افزار به شمار می‏رود و استفاده از آن مستلزم مهندسی نیاز و انتخاب روش مناسب یک سازمان است ] 2 [ . یکی از عوامل موفقیت در راه اندازی روش چابک در سازمان‏ها درک صحیح مدیران و کارکنان از مزایای آن و همچنین دشواری‏های تغییر رویکرد سازمانی به رویکرد چابک است. تعاملات تیمی منسجم از نیازمندی‏های کار به روش چابک می‏باشد و در صورت نبود روحیه تیمی قوی و نیز تیمی با ویژگی های مورد انتظار پروژه، روش چابک به مشکل برخواهد خورد[3].
تعامل با مشتری برای توسعۀ نرم‏افزار دربسیاری موارد ممکن است باعث گسترده‏تر شدن محدوده پروژه و همچنین در مواردی تبدیل پروژه به پروژۀ غیرقابل اتمام شود و مرزهای پروژه هر روز گسترده‏تر شوند. و همچنین این تعاملات ممکن است منجر به پیچیده‏تر شدن پروژه نسبت به منابع موجود شود و پروژه با شکست مواجه شود. در این روش‏ها مستندات در حداقل مقدار مورد نیاز تهیه می‏شوند تا اتلاف انرژی در این مورد صورت نگیرد. این باعث افزایش سرعت تیم و بالا رفتن کارایی می‏شود ولی از سویی همین مسئله  برای فرد تازه وارد در پروژه یا تیم جدید مشکل‏ساز می‏شود. این مشکل اگر تعاملات تیمی و همپوشانی در دانش افراد تیم و تعریف واحد از پروژه به هر نحوی در تیم کافی نباشد، بسیار حادتر خواهد بود.
در روش‏های چابک نیاز به آزمایش در زمان تولید پروژه حیاتی است و این،  فردی متخصص در زمینه آزمایش و عضو تیم که به تولید نیز مشغول نیست را نیاز دارد که همین مورد ممکن است باعث افزایش هزینه تولید شود ولی این روش باعث کاهش ریسک در تولید نرم‏افزار خواهد بود. یکی از مشکلات راه‏اندازی روش‏های چابک در ایران، در دسترس نبودن مشتری و یا مدیر سازمان برای آزمایش و تایید کارایی نرم‏افزار در بازه‏های کوتاه استکه این نیازمند حذفدیوان‌سالاری و کاهش دادن سطوح تصمیم‏گیرنده در سمت مجری پروژه و سایر ذینفعان پروژه است.
یکی از معضلات دیگر اشتباه گرفتن چابکی با شتاب غیرمعقول در تولید توسط مدیران است و توسعه چابک را به مثابه یک معجزه‏گر که بدون هیچ پیش‏نیازی کارایی و سرعت توسعه را افزایش می‏دهد تصور می‏کنند.
این روش برای تیم‏هایی دارای چند مسئولیت همزمان مناسب نیست. اعضای تیم در روش چابک باید با تمرکز و کار تیمی در یک پروژه واحد کار کنند و مشغله‏های دیگر هر یک از افراد تیم چابک باعث کاهش کارایی می‏شود ] 4 [ .
در بخش بعد به معرفی چند روش توسعه چابک و بررسی آن در سازمان‏های مختلف پرداخته می‏شود.

روش‏های چابک‏سازی

روش xp   یک روش چابک سازی با دوره‏های زمانی کوچک است. از ویژگی‌های این روش می‌توان به موارد زیر اشاره کرد ] 5 [ :

  • آزمایش واحدی
  • برنامه‌نویسی دونفره
  • رعایت سادگی
  • تعامل با مشتری

روش اسکرام یک روش چابک در تولید نرم‏افزار است که دارای 3 نقش مالک محصول ، تیم توسعه و مربی اسکرام است. در این روش هر دوره بین 1 تا 4 هفته است و جلسات دوره‏ای، روزانه و پایان دوره در آن برگزار می‏شود. این روش از کاربردی‏ترین روش‏های چابک است ] 5 [ .
روش تولید سیستم‏های پویا روش چابکی است که بر تحویل سرموقع و با هزینه پیش بینی شده و توجه به نیاز واقعی کسب وکار و تعامل با مشتری بنا شده است. در این روش هر مرحله از مدل آبشاری به صورت تکرار در بازه‏های مختلف انجام می‏شود ] 6 [ .



شکل 1 : روش تولید سیستم‏های پویا
روش کریستال یک روش سبک و چابک است که توسط آلیستر کوکبرن ارایه شده است و برای تیم‏های 6 تا 8 نفره قابل پیاده سازی است. در این روش به تعاملات بین اعضای تیم و همچنین تعامل با مشتری توجه ویژه شده است. این روش به آزمایش و تمرکز و نیز به نیروهای ماهر وابسته است ] 7 [ .
روش تطبیقی تولید یکی دیگر از روش‏های چابک است که بر اساس چرخه‌های تولید و تطبیق با دانسته‌های جدید در مورد پروژه استوار است [8] .
روش تولید مبتنی بر ویژگی یک روش چابک دارای مراحل زیر است ] 9 [ :

  • تولید مدل کلی
  • ایجاد فهرست ویژگی‏ها
  • برنامه ریزی با توجه به هر ویژگی
  • طراحی با توجه به هر ویژگی
  • پیاده سازی با توجه به هر ویژگی

مقایسه روش‏ها در انواع سازمان‏ها 

روش‏های چابک با توجه به ویژگی‌هایشان برای سازمان‏های مختلف مزایای متنوعی ایجاد می‌کنند و هر سازمان با توجه به ساختار و معماری‌اش می‏تواند روش مناسب خود را انتخاب کند. سازمان‏ها از نظر ویژگی‏های ساختاری زیر متنوع هستند.

  • روش تولید
  • زمان تکرار
  • اندازه تیم
  • اندازه پروژه
  • میزان مهارت‌های کارکنان
  • تعداد سطوح مدیریتی
  • نوع پروژه

نوع پروژه اگر پیچیده و متغیر با زمان و ناشناخته باشد، روش‏های چابک بهترین عملکرد را خواهند داشت. در جدول 1 بر اساس معیارهای فوق کاربرد هر یک از روش‏ها را با هم مقایسه خواهیم کرد ] 10 . [
جدول 1 مقایسه روش‏ها بر اساس ویژگی سازمانی

Crystal

ASD

FDD

DSDM

Scrum

XP

روش‏ها/ویژگی‏ها

افزایشی

تکراری

تکراری

تکراری

تکراری
افزایشی

تکراری افزایشی

نوع تولید

هر بازه ای با توجه به تصمیم تیم

4 تا 8 هفته

2روز تا 2 هفته

80درصد کار در 20 درصد زمان

2 تا 4 هفته

1تا 6 هفته

زمان دوره

اندازه آزاد

5 تا 9 نفر

آزادچند تیمه

اندازه آزاد

اندازه آزاد

زیر 20 نفر

تیم پروژه

غیر رسمی رو  در رو

غیر رسمی رو  در رو

رسمی

رسمی

هر روزه غیر رسمی

هر روزه غیر رسمی

تعاملات تیمی

متغیر با توجه به ساختار انتخابی

کوچک

پیچیده و بزرگ

بدون محدودیت

بدون محدودیت

کوچک

اندازه پروژه

فقط مستندات پایه

فقط مستندات پایه

مستندات کامل

مستندات کامل

فقط مستندات پایه

فقط مستندات پایه

مستندات

 

متغیر

تک سطحی

بدون محدودیت

بدون محدودیت

مجموعه ای از تک سطح ها

تک سطحی

سطوح سازمانی

 

انعطاف پذیر برای انواع کاربردها

دوره‌های تحلیل محیط و گرفتن بازخورد

تحلیل  UML

الگوسازی

دوره‌های منظم با خروجی مشخص

تولید مبتنی بر آزمایش، بازسازی

ویژگی‏ها

 

قابل شخصی سازی به هر نوع پروژه

توسعه مبتنی بر ریسک

تیم با وظایف مختلف

مبتنی بر اولویت‏ها

تعاملات بالا و منظم

کاربر به عنوان عضو تیم

مزایا

 

کارایی کم در صورت شخصی‏سازی نادرست

مستندات خیلی ضعیف

مبتنی بودن بر فرد

مستندات پیچیده

مستندات ضعیف

مستندات پایین و نبود قواعد دقیق

معایب

 

 

نتیجه‏گیری

روش‏های چابک در تولید نرم‌افزار برای کمک به تولید در شرایط پیچیده و محیط ناشناخته و به منظور استفاده بهینه از منابع انسانی و کاهش ریسک تولید مطرح شدند. این روش‏ها با وجود تمام ویژگی‏های خوبی که ارایه می‏کنند در صورت استفاده نادرست و کورکورانه موجب شکست پروژه خواهند شد. این روش‏ها پیش‏نیازهایی از قبیل فرهنگ چابک، تیم مناسب، روحیه تیمی و همچنین حمایت مدیران سازمانی از تیم دارند. همچنین هر روش چابک ویژگی‌های خاص خود را دارد و انتخاب روش بر اساس ساختار سازمانی و نوع پروژه حیاتی می باشد. در این مقاله ویژگی‌های چند روش معروف چابک بیان شده است.

 

مراجع