Agile
اسلاید 1: 1Agilewww.prozhe.com
اسلاید 2: مقدمه :پیشرفت شگرف سخت افزار و ضعف روشهای توسعه نرم افزار در کنترل پیچیدگی نرم افزار باعث بوجود آمدن بحران نرم افزار گردیده است که یکی از علل اساسی در خلق این بحران ، عدم وجود روشهای مناسب جهت تولید و توسعه نرم افزار می باشد.فرآیند تولید و توسعه نرم افزار ، ذاتأ یک فرآیند بی نظم است که جهت نظم دادن به این بی نظمی ها ، از متدولوژی ها توسعه نرم افزار بهره می گیریم.متدولوژی توسعه نرم افزار مشخص می کند که چه فرآورده ای ( What ) ، توسط چه کسی ( Who ) و در چه زمانی ( When ) تولید شود.2www.prozhe.com
اسلاید 3: 3تعریف Agile ( چابک )Agile یک متد توسعه نرم افزار است که بر پایه توسعه تکراری و افزایشی بنا شده است که رویه طراحی سازگار ، تکامل تدریجی را تعریف می کند. متد چابک با تقسیم کردن کارها به طرح های کوچکتر ، باعث می شوند که تکرارها در چارچوب های زمانی کوتاه تری انجام شده و نسبت به تغییرات انعطاف پذیر باشند.ویژگی متفاوت فرآیندهای چابک این است که در جهت رقابت بر سر مشتری حتی از تغییراتی که در اواخر توسعه نرم افزار پدیدار می شوند استقبال کرده و رفتار خود را بر اساس تفکرات اعمال شده ، تنظیم و هم سو می کند.www.prozhe.com
اسلاید 4: تقسیم بندی متدولوژی ها1 – سنگین وزن ( Heavy weight ) : این متدولوژی ها بیش از اندازه ماشین گرا و مکانیزه بوده و به صورت فرآیندی وارد جزئیات غیر ضروری می شود. فازها به طور کامل اجرا می شوند و مستندات به طور کامل ایجاد می شوند.2 – سبک وزن ( Light weight ) : در این متدولوژی ، فازها به صورت کوتاه مدت بوده و مستندات به اندازه ایجاد می شوند. متدولوژی چابک در دسته متدولوژی های سبک وزن قرار می گیرد.4www.prozhe.com
اسلاید 5: مقایسه متدولوژی ها با یکدیگرروشمعیار موفقیتاندازه پروژهسبک مدیریتچرخهاندازه تیم5www.prozhe.com
اسلاید 6: روشروشهای چابک بصورت Adaptive يا سازگار عمل میکنند يعنی با شرايط منطبق میشوندروشهای سنگين وزن بصورت پيشگو يا Predictive عمل میکنند يعنی در آغاز همه چيز را پيشبينی میکنندهمه چيز از ابتدا قابل پيشبينی نیست.6www.prozhe.com
اسلاید 7: 7معيار موفقيتمعيار موفقيت در روشهای چابک دستيابی به ارزش کاری (Business Value) استدر روشهای سنگين وزن معيار موفقيت پيش رفتن در راستای طرح اوليه استروشهای سنگين وزن انعطافپذيری ندارند 7www.prozhe.com
اسلاید 8: اندازه پروژهاندازه پروژه در روشهای چابک کوچک استاندازه پروژه در روشهای سنگين وزن میتواند بسيار بزرگ باشداين مسأله از محبوبيت روشهای چابک نمیکاهد !!!(آمار نشان میدهد که تعداد پروژههای کوچک بسيار بيشتر است)8www.prozhe.com
اسلاید 9: سبک مديريتمديريت در روشهای چابک بصورت غيرمتمرکز و آزاد است در روشهای سنگين وزن مديريت بصورت مطلق و استبدادی است مديريت غيرمتمرکز امکان تصميمگيری بهتر را فراهم میکند9www.prozhe.com
اسلاید 10: نحوه مستندسازیمستندسازی در روشهای چابک بصورت بسيار محدود انجام میشوددر روشهای سنگين وزن مستندسازی بصورت کامل و جامع انجام میشوددر بسياری از موارد مستند سازيهای سنگين, کار بسيار دشوار و زمانبری است 10www.prozhe.com
اسلاید 11: چرخههاتعداد چرخهها (Cycles) در روشهای چابک بسيار زياد است اما زمان آنها کوتاست در روشهای سنگين وزن تعداد چرخهها کم است ولی زمان آنها بسيار زياد استزمانبر بودن چرخههای توليد, موجب طولانی شدن زمان انتظار برای رسيدن به نشرها میشود 11www.prozhe.com
اسلاید 12: اندازه تيمدر روشهای چابک اندازه تيم کوچک است (بين 20 تا 30 نفر)در روشهای سنگين وزن اندازه تيم توسعه بزرگ استخلاقيت و همکاری در تيم کوچک بسيار بيشتر خواهد بود 12www.prozhe.com
اسلاید 13: برگشت سرمايه در روشهای چابک سرمايه خيلی زود در طول پروژه بر میگردددر روشهای سنگين وزن برای برگشت سرمايه بايد تا انتهای پروژه صبر کردروشهای چابک از لحاظ اقتصادی بصرفهاند 13www.prozhe.com
اسلاید 14: parameterAgile MethodsHeavy MethodsApproachAdaptivePredictiveSuccess MeasurementBusiness ValueConformation to planProject SizeSmallLargeManagement StyleDecentralizedAutocraticDocumentationLowHeavyEmphasisPeople-OrientedProcess-OrientedCyclesNumerousLimitedDomainUnpredictable/ExploratoryPredictableTeam SizeSmall/CreativeLarge14www.prozhe.com
اسلاید 15: بیانیه توسعه نرم افزار چابکاصول بیانیهپاسخگویی به تغییراتکاهش ریسک پروژه شکستن پروژه به طرح های کوچکترنرم افزار قابل اجراهدف اصلی هر توسعه نرم افزارهمکاری با مشتریارتباط از طریق نماینده Stack holder و نماینده هر تیماولویت بندی و ارزشگذاری اهدافافراد و تعاملاتتیم ها بین 5 الی 9 نفرهتیم ها دارای ساختاری باز می باشندارتباط بین تیم ها از طریق ویدئو کنفرانسهریک از اعضای تیم باید به یکدیگر گزارش دهند15www.prozhe.com
اسلاید 16: متد چابکXPFDDCrystalScrumWater FallIterate & IncrementalAdaptive software developmentDynamic software developmentOpen source soft ware development16www.prozhe.com
اسلاید 17: مدل incremental & iterate :توسعه تکراری & افزایشی ، در واقع قلب چرخه توسعه نرم افزار است . این مدل با طراحی اولیه شروع کرده و با استفاده از چرخه تکرار ، توسعه محصول را به پیش می برد. مدل مذکور بخش اصلی بسیاری از فرآیندهای توسعه نرم افزار نظیر Rup و XP و تمامی متد توسعه نرم افزار می باشد. این امکان وجود دارد که هریک از متد بالا را به صورت جداگانه یا ترکیبی استفاده کرد.17www.prozhe.com
اسلاید 18: تعریف توسعه incremental :مرحله بندی ، زمان بندی استراتژی در بخش های مختلف سیستم که در زمان های مختلف و به میزان متفاوت پیشرفت کرده اند و با اجتماع بخش های مختلف در حال حاضر کامل شده است . در واقع در توسعه افزایشی ما پروژه را به تکه های کوچکتر تقسیم کرده و آنها را جهت توسعه ، زمان بندی کرده و به محض تکمیل شدن آنها را یکپارچه می کنیم. این رویه مانع توسعه تکراری نبوده بلکه می تواند با استراتژی iterate همکاری کند.18www.prozhe.com
اسلاید 19: تعریف توسعه iterate :زمان بندی مجدد استراتژی که زمان مجموعه ایست از بخش های مختلف سیستم جهت بازبینی و توسعه بخش های مختلف سیستم. در واقع در توسعه تکراری ، کارهایی را که باید انجام دهیم ، در یک مجموعه زمانی کنار یکدیگر می گذاریم و به شما کمک می کند محصول خود را توسعه دهید ، هر لحظه ای که تصمیم به اعمال تغییرات یا توسعه محصول می گیرد.19www.prozhe.com
اسلاید 20: مزایا :توسعه سیستم تا جایی که امکان داردامکان انجام هر یک از فعالیت های ( طراحی ، برنامه نویسی ، تست ، تحلیل ) چندین دفعهامکان انجام هر یک از فعالیت های ( طراحی ، برنامه نویسی ، تست ، تحلیل ) در زمان های مختلف20www.prozhe.com
اسلاید 21: مدل XP ( extreme programming ) :یک متدولوژی توسعه نرم افزار می باشد که جهت افزایش کیفیت نرم افزار و پاسخگویی به تغییرات مورد نیاز مشتری به کار گرفته می شود. عناصر مدل XP مشتمل است بر برنامه نویسی دو نفره ( pair programming ) ، بازنویسی کدها ، تست واحد کلیه کدها ، جلوگیری از کد نویسی واحد ها تا زمانی که واقعا به آنها نیاز داریم، ساختار مدیریت یکپارچه ، کد نویسی به صورت ساده و واضح ، پیش بینی تغییر در نیازهای مشتری و میزان روابط مشتری و برنامه نویسان 21www.prozhe.com
اسلاید 22: 22چرخه حيات XP شامل پنج فاز است ExplorationPlanningIterations To ReleaseProduct TionizingMaintenance and Dead www.prozhe.com
اسلاید 23: Pair programmingتعریفشرایط لازم جهت PPکاربرد PP در صنعتمزایا و معایب23www.prozhe.com
اسلاید 24: برنامه نویسی جفتی یکی از تکنیک های توسعه نرم افزار چابک است که در آن ؛ برنامه نویسی با یکدیگر در یک محیط کاری و بر روی یک پروژه کار می کنند. PP را می توان یک توانایی اجتماعی دانست که منجر به یادگیری شده و شما می کوشید که کاری را با همکاری یکدیگر بدون در نظر گرفتن شرایط و وضعیت همکاریتان انجام دهید.24www.prozhe.com
اسلاید 25: 1 – برنامه نویس ( Driver ) که کد نویسی برنامه را به عهده دارد.2 – مشاهده گر ( Navigator ) که در طول زمانی که برنامه نویس در حال کد نویسی است ، هر یک از خطوط نوشته شده را مورد بازبینی قرار می دهد. مشاهده گر در طول بازبینی پروژه مسیر ( استراتژی ) پروژه را در نظر گرفته و ایده هایی را برای حل مسئله به برنامه نویس ارائه می دهد.25www.prozhe.com
اسلاید 26: شرایط لازم جهت PP :همدیگر را از لحاظ دهنی برای کد نویسی آماده کنید.بر روی یک راه حل توافق کنید.زیاد صحبت کنید.لحظاتی را برای تفریح و سرگرمی هایتان صرف کنید.غالبا نقش هایتان را عوض کنید ( هر نیم ساعت )سطح رابطه بین خودتان را بالا ببرید.بر روی هدف های کوچک سریعا توافق کنید.قبل از شروع به کار ، راجع به کاری که قرار است انجام دهید ، فکر کنید و با یکدیگر صحبت کنید.هم گروهی خود را حمایت کرده و سوالات او را پاسخگو باشید.26www.prozhe.com
اسلاید 27: کاربرد PP در صنعت27www.prozhe.com
اسلاید 28: مزایاافزایش پیروی از اصولکدنویسی بهترخطای کمترافزایش خردمندیافزایش روحیه افرادافزایش همکاری تیمی28www.prozhe.com
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.