در همان حالی که توسعه دهندگان در حال کار هستند، طراحی باید به نحوی باشد که آن را حتی الامکان ساده نگه دارد. در این دیدگاه بدون تغییر هر وظیفه، سعی در بهبود ساختار آن می شود. تکرار مستمر این امر یکی از تأکیدات XP است.
برنامه نویسی جفتی(زوج برنامه نویسی)
دو توسعه دهنده پشت یک کامپیوتر ( یک کیبورد و یک مانیتور) نشسته و کد را به صورت جفتی می نویسند.
یکپارچه سازی مستمر[۱۰]
برنامه نویسان بایستی کد های جدید را به طور مستمر به سیستم اضافه نمایند. پس از افزودن کد جدید لازم است تمام تست های کاربردی مجددآً روی سیستم اعمال شود و در صورت وجود نقص، کد اضافه شده را برای رفع مشکل از سیستم حذف نمایند.
برای دانلود متن کامل پایان نامه به سایت zusa.ir مراجعه نمایید.
مالکیت جمعی[۱۱]
مالکیت کد متعلق به همه توسعه دهندگان است و هر کس در هر زمان و هر جا که لازم باشد می تواند تغییرات مورد نیاز را روی آن اعمال کند.
مشتری در محل
برای هر محصول لازم است یک نفر از طرف مشتری همراه تیم توسعه به طور دائم کار کند. این فرد لازم است به سوالات احتمالی توسعه دهندگان پاسخ داده، تستهای مورد نیاز برای پذیرش محصول را انجام دهد و از روند پیشرفت توسعه چنانچه توقع دارد، اطمینان حاصل کند.
هفته های ۴۰ ساعتی
نیازمندی های هر تکرار باید به نحوی انتخاب شود که توسعه دهندگان به زمان بیشتری برای اضافه کاری در هفته در طول یک تکرار نیاز نداشته باشند. در XP عقیده بر آن است که اضافه کاری موجب خستگی و در نتیجه افت کیفیت محصول تولیدی خواهد شد.
فضای کاری باز
توسعه دهندگان بایستی در یک فضای کاری مشترک در کنار همدیگر کار کنند به نحوی که ماشین های توسعه مشترک در مرکز این مکان قرار گیرند. هدف از این اصل، تسهیل روابط بین افراد در سطح سازمان است.
متخصصین معتقدند که قدرت و توانمندی XP از هیچ یک از اصول ۱۲گانه فوق به طور منفرد حاصل نمی شود و در واقع ترکیب آنها موجب ایجاد توانمندی در این متدولوژی میباشد. همچنین پنج اصل کلیدی در XP که توسط فعالیت های این روش محقق می شوند عبارتند از “ارتباطات“، “سادگی“، “بازخورد“، “جرات” و “کار با کیفیت” [۷] دست اندرکاران توسعه درXP به راحتی می توانند در مورد مفید بودن یا نبودن مدل در توسعه نرم افزار نظر دهند.
سایر ویژگیهای XP عبارتند از:
اندازه تیم: از آنجا که تیم توسعه باید بتواند در یک فضای مشترک کار کند، اندازه تیم محدود به تعداد نفراتی است که بتوانند در یک اتاق جای گیرند و با هم کار کنند و معمولا بین ۲ الی ۱۰ نفر در نظر گرفته می شود.
طول هر دوره تکرار: XP دارای کوتاهترین طول هر تکرار بین روش های چابک بوده و توصیه شده است که تکرار ها زیر دو هفته باشند.
پشتیبانی از تیم های غیر متمرکز: به دلیل تأکید XP بر حضور افراد در یک محل و حداکثر ارتباط آنها در این روش، از تیم های غیر متمرکز پشتیانی نمیشود. اگر چه امروزه با بهره گرفتن از ابزارهای ارتباطی تا حدی ارتباطات تیمی به صورت الکترونیکی تامین می شود، اما در نهایت کماکام موانعی در این خصوص (جنبه های انسانی توسعه) وجود دارد.
حساسیت سیستم: روش XP برای توسعه یک طیف سیستم خاص طراحی نشده است و به خودی خود محدودیتی برای کاربرد آن در سیستم های حساس وجود ندارد.
۲-۵-۲ اسکرام Scrum
اسکرام به همراه XP یکی از متداولترین روش های چابک می باشد. این روش در سال ۱۹۹۶ با شعار «اسکرام می پذیرد که فرایند توسعه قابل پیش بینی نیست» معرفی شد و توسط چند توسعه دهنده نرم افزار با موفقیت مورد استفاده قرار گرفت. نام این روش از بازی راگبی گرفته شده است. در این بازی وقتی اسکرام رخ میدهد که بازیکنان یک تیم در کنار همدیگر جمع می شوند و برای پیشبرد بازی تلاش می کنند [۱, ۷]. در شکل ۱ شمای چرخه حیات توسعه در روش اسکرام نشان داده شده است. پروژه های اسکرام به تکرار های متعددی تقسیم می شوند. هر تکرار در اسکرام، اسپرینت[۱۲] نامیده می شود و شامل موارد زیر است[۵] :
برنامه ریزی قبل از اسپرینت: همه کارهایی که در سیستم باید انجام گیرند در محلی به نام بک لاگ[۱۳] نگهداری می شوند و طی جلسه برنامه ریزی قبل از هر اسپرینت، مواردی از بک لاگ که قرار است در آن اسپرینت انجام گیرند، انتخاب می شوند. همه موارد موجود در بک لاگ توسط نماینده مشتری که صاحب محصول[۱۴] نامیده می شود اولویت بندی میشوند و تیم توسعه بر اساس اولویت آنها اقدام به انتخاب آنها مینماید. این موارد منتخب، بک لاگ اسپرینت را تشکیل می دهند.
شکل ۲-۱: چارچوب کاری اسکرام
اسپرینت: به محض اتمام جلسه برنامه ریزی، بک لاگ اسپرینت تحویل تیم میگردد. در این مرحله همه وظایف موجود در بک لاگ اسپرینت تثبیت شده و در طول اسپرینت غیر قابل تغییر خواهند بود. اعضای تیم از بین وظایف موجود وظایف مورد نظر خود را انتخاب کرده و کار بر روی آنها را شروع می کنند. جلسات کوتاه روزانه اسکرام[۱۵] در توفیق اسکرام بسیار حیاتی هستند. این جلسات هر روز صبح برای بررسی اقدامات انجام شده، مشکلات پیش رو و وضعیت پروژه بین اعضای تیم برگزار می گردد. این جلسات که باید حداکثر ۱۵ دقیقه باشند، با هدف افزایش ارتباطات بین افراد تیم و تأکید بر هدف مشترک و رفع موانع برگزار می گردند.
جلسات پس از اسپرینت (دمو): در پایان هر اسپرینت، جلسه ای با حضور همه عوامل پروژه برگزار می گردد. در این جلسه ضمن بررسی و تحلیل پیشرفت پروژه، سیستم ساخته شده فعلی نیز نمایش داده می شود. این جلسه حدود ۴ ساعت به طول خواهد انجامید.
جلسه بازنگری اسپرینت[۱۶]: این جلسه که پس از جلسات دموی اسپرینت برگزار می گردد با هدف بررسی آنچه در طول اسپرینت قبلی رخ داده است تشکیل می گردد.
نقش افراد در اسکرام
در یک تیم اسکرام افراد تیم در قالب یکی از نقش های زیر سازماندهی می شوند:
مدیر اسکرام (اسکرام مستر)[۱۷]: وظیفه تسهیل اسکرام بر عهده این فرد است. مدیر اسکرام وظیفه دارد که موارد و مشکلات پیش روی تیم را رفع کرده و به افراد تیم در دستیابی به اهداف اسکرام کمک نماید. اگر چه مدیر اسکرام نقش رهبری تیم را بر عهده دارد، اما وظیفه دارد که تیم را به کار بر روی وظایف اسپرینت متمرکز نماید.
صاحب محصول: این فرد نماینده ذی نفعان پروژه و به نوعی صدای مشتری است. این فرد وظیفه دارد که اطمینان حاصل کند که تیم ارزش هایی را برای کسب و کار ایجاد مینماید.
تیم توسعه: تیم توسعه متشکل از افرادی است که وظیفه توسعه سیستم قابل ارائه را بر عهده دارند. این تیم متشکل از افرادی است که وظایف مختلف را بر عهده دارند. این وظایف شامل تحلیل، طراحی، توسعه، تست، مستند سازی و ارتباطات می باشند. این تیم خود سازمانده بوده و تقسیم وظایف در آن با مشارکت جمعی و تعامل گروهی انجام می گیرد.
مبدع اسکرام اصول کلیدی زیر را برای اسکرام تعریف نموده است [۱۷, ۱۸] :
تیم های کاری کوچک که ارتباطات آنها حداکثر، بالاسری آنها حداقل و به اشتراک گذاری دانش ضمنی در آنها حداکثر است.
تطبیق پذیری به تغییرات فنی و تجاری برای حصول اطمینان از اینکه بهترین محصولی که می تواند ساخته شود، تولید گردد.
“ساخت[۱۸]” های مکرر که بتوانند تست، بازرسی و مستند سازی شوند.
تقسیم کردن کار و وظایف تیم به بخش هایی با حداقل وابستگی
تست مداوم و مستند سازی محصول به محض ساخته شدن
توانایی بیان خاتمه یک محصول در زمان مورد نیاز (چرا که کاربر نهایی منتظر آن است، چرا که شرکت به پول آن نیاز دارد و …)
اسکرام مانند همه روش های تکراری، مبتنی بر زمان بسته [۱۹]است، یعنی هر اسپرینت بایستی بر اساس زمان بندی، دقیقاً به موقع تمام شود و چنانچه در طی هر اسپرینت نیازمندی های موجود در بک لاگ اسپرینت به هر دلیلی تکمیل نشده اند، تیم بایستی آنها را کنار گذاشته و مجددا وارد بک لاگ اصلی نماید.
سایر ویژگیهای اسکرام عبارتند از:
اندازه تیم: اگرچه در منابع اصلی اسکرام، تعداد نفرات تیم حداکثر ۷ نفر ذکر شده است اما در عمل، اندازه تیم ایده آل را ۳±۶ نفر میدانند. این تیم باید شامل حداقل یک توسعه دهنده، یک مهندس تضمین کیفیت و یک مستند ساز باشد.
طول(زمان) هر اسپرینت: اگرچه طول هر اسپرینت توسط مبدع اسکرام ۱ الی ۶ هفته بیان شده است[۱۲] اما این دوره معمولا ۴ هفته لحاظ می گردد[۲].
پشتیبانی از تیم های غیر متمرکز: اگرچه در اسکرام اشاره ای صریح به تیمهای غیر متمرکز نشده است، اما یک پروژه میتواند شامل چندین تیم توزیع شده باشد. اگرچه به دلیل برگزاری جلسات روزانه اسکرام و همچنین تعاملات تیم با یکدیگر معمولا اعضای یک تیم نمی توانند به صورت غیرمتمرکز کارکنند.
حساسیت سیستم: اسکرام به طور صریح به حساسیت پروژه اشاره ای ندارد.
۲-۵-۳ خانواده کریستال[۲۰]
روش های کریستال در اوائل دهه ۹۰ میلادی معرفی می شوند. مبدع این روشها، Alistar Cockborn، معتقد بود که یکی از بزرگترین موانعی که بر سر راه توسعه محصولات وجود دارد، ارتباطات ضعیف و ناکارا است و از این روی روش های خانواده کریستال را برای پوشش این نقیصه مدل نمود. فلسفه اصلی او این بود که « به میزانی که بتوان مستندات نوشتاری را با تعاملات رو در رو جایگزین کرد، به همان میزان میتوان وابستگی و اتکا به محصولات نوشتاری را کاهش داده و به بهبود سیستم قابل ارائه پرداخت. هر چه در دفعات بیشتری بتوان بخش های تست شده و آماده اجرایی را از سیستم [ به مشتری] تحویل داد به همان میزان میتوانید از وابستگی خود به تعهدات نوشتاری کاسته و امکان تحویل سیستم را افزایش دهید»[۱].
روش های کریستال بر افراد، تعاملات، انجمن، مهارت ها، استعدادها و ارتباطات به عنوان اولین عامل موثر بر کارایی تأکید دارند. اگرچه فرایند اجرایی نیز در کارایی مهم است، اما در مقایسه با عوامل اشاره شده در رده بعدی قرار دارد[۲]. این گروه به نام کریستال نامگذاری شده است به این معنی که از هر وجه به آن نگاه شود، ورژن دیگری از فرایند قابل مقایسه است و همه حول یک هسته یکسان گرد هم آمده اند[۲]. متدهای این مجموعه به نام رنگهای مختلف نامگذاری شده اند و هر چه چابکی بیشتری در آنها قابل تصور باشد، رنگ روشن تری به آنها منتسب شده است. چابک ترین روش، کریستال شفاف[۲۱] است و پس از آن کریستال زرد[۲۲]، کریستال نارنجی[۲۳]، کریستال قرمز[۲۴] و … می آید. تعداد افرادی که قرار است در پروژه مداخله کنند عاملی است که بر اساس آن نوع کریستال انتخاب می شود. این تعبیر نشانگر سطوح مختلف تأکید بر ارتباطات است. در شکل ۲ این امر نشان داده شده است.
همه روش های کریستال با یک مجموعه اصلی از نقش ها، محصولات کاری، تکنیکها و نمادها شروع میشود و همزمان با رشد تیم یا سختی روش، این مجموعه اولیه نیز رشد می کند. هرچه محدودیت های بیشتری اعمال شود، روش مورد استفاده، چابکی کمتری خواهد داشت. با این حال به دلیل استفاده از یک هسته چابک مشترک، کماکان روش کلی چابک خواهد ماند.
شکل ۲-۲: خانواده کریستال
سایر ویژگیها: