توسعه نرمافزاری چابک: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
FreshmanBot (بحث | مشارکتها) جز اصلاح فاصله مجازی + اصلاح نویسه با ویرایشگر خودکار فارسی |
|||
خط ۱:
'''توسعه چابک نرمافزار''' یا '''توسعه نرمافزاری چابک''' گروهی از متدهای توسعهٔ نرمافزار مبتنی بر تکرار و به شکل تدریجی است که در آنها، راهحلها از طریق خودسازماندهی و همکاری بین تیمهای مختلف کاری، انجام میشوند. این روش برنامهریزی تطبیقی، توسعه و تحویل تکاملی و رویکرد زمان بستهبندیِ تکرارشونده را ارتقا میبخشد و پاسخهای سریع و انعطافپذیر برای انجام تغییرات را تقویت میکند. در واقع چابکسازی یک چارچوب مفهومی است که پیشبینی تعاملات در سراسر چرخهٔ توسعه را بهبود میبخشد.
|url=http://agilemanifesto.org/
|title=Manifesto for Agile Software Development |year=۲۰۰۱ |publisher=Agile Alliance
خط ۲۰:
متدهای توسعهٔ به اصطلاح چالاک و چابک نرمافزار اواسط دههٔ ۱۹۹۰ به صورت یک عکسالعمل در مقابل متدهای سنگین آبشاری مطرح شد، که توسط منتقدان آن به صورت یک مدل توسعهٔ به شدت منظم، دستهبندیشده، میکرو مدیریتی و آبشاری توصیف شدهاست. استدلالکنندگان متدهای چالاک و چابک ادعا میکنند، این متدها به منزلهٔ بازگشت به تجارب توسعهٔ نرمافزار در اوایل تاریخ هستند.
پیادهسازیهای اولیهٔ متدهای چابک، شامل Rational Unified Process (1994)، [[اسکرام (توسعه نرمافزار)|Scrum]]
(1995)، Crystal Clear، برنامهنویسیExtreme (1996)، توسعهٔ تطبیقی نرمافزار، توسعهٔ ویژگیمحور و متد توسعهٔ سیستمهای دینامیک (DSDM، ۱۹۹۵) میشود. بعد از انتشار
== بیانیهی چابک ==
در فوریهٔ ۲۰۰۱، تعداد ۱۷ توسعهدهندهٔ نرمافزار،<ref>[[کنت بک]]، Mike Beedle, Arie van Bennekum, [[Alistair Cockburn]], [[وارد کانینگهام]]، [[مارتین فولر]]، James Grenning, [[Jim Highsmith]], [[Andy Hunt (author)|Andrew Hunt]], [[Ron Jeffries]], Jon Kern, [[Brian Marick]], [[Robert Cecil Martin]], [[Stephen J. Mellor]], [[Ken Schwaber]], [[Jeff Sutherland]], and [[Dave Thomas (programmer)|Dave Thomas]]</ref> در Snowbird یوتا ملاقاتی داشتند تا در مورد متدهای توسعهٔ چالاک گفتگو کنند.
ما با توسعه نرمافزار و کمک به دیگران در انجام آن، در حال کشف راههای بهتری برای
<blockquote>۱- '''افراد و تعاملات''' بالاتر از فرایندها و ابزارها
خط ۴۱:
با آنکه موارد سمت چپ ارزشمند هستند ولی ما برای موارد سمت راست ارزش بیشتری قائل هستیم.<ref name="Agile Manifesto" /></blockquote>
معنی موارد سمت راست این بیانیه در مفهوم
=== افراد و تعاملات بالاتر از فرایندها و ابزارها ===
خط ۴۸:
یک نیروی قوی لازم نیست که برنامهنویسی عالی باشد، بلکه کافیست که یک برنامهنویسی معمولی با قابلیت همکاری مناسب با سایر اعضای تیم باشد. کار کردن با دیگران و تعامل درست و سازنده با سایر اعضای تیم خیلی مهمتر از این است که یک برنامهنویس با هوش باشد. برنامه نویسان معمولی که تعامل درستی با یکدیگر دارند به مراتب موفقتر هستند از تعدادی برنامهنویس عالی که قدرت تعامل مناسب با یکدیگر را ندارند.
در انتخاب ابزارها آنقدر وقت نگذارید که کار اصلی و تیم را فراموش کنید. به عنوان مثال میتوانید در شروع به جای بانک اطلاعاتی از فایل استفاده کنید، به جای ابزار کنترل کد گرانقیمت از برنامه رایگان
=== نرمافزار کارکننده بالاتر از مستندات جامع ===
خط ۶۷:
=== پاسخگویی به تغییرات بالاتر از پیروی از یک برنامه ===
توانایی پاسخ به تغییرات اغلب
مسیر یک
یک استراتژی خوب برای برنامهریزی این است که یک برنامهریزی دقیق برای یک
=== اصول چابک ===
خط ۷۸:
|title=Principles behind the Agile Manifesto|year=2001 |publisher=Agile Alliance
|author=Beck, Kent |author2=et al.
|accessdate=6 June 2010| archiveurl= http://web.archive.org/web/20100614043008/http://www.agilemanifesto.org/principles.html| archivedate= 14 June 2010 <!--DASHBot-->| deadurl= no}}</ref>،
* رضایت مشتری از طریق تحویل زود و مداومِ نرمافزار مفید؛
* استقبال از تغییر نیازمندیها، حتی در اواخر توسعه؛
* تحویل زود به زود نرمافزار قابل استفاده (هفتگی به جای ماهانه)؛
* نرم افزار قابل استفاده
*
* همکاری نزدیک و روزانه بین افراد کسبوکار و تیم توسعه؛
*
* پروژهها در اطراف افراد باانگیزه، که باید به آنها اعتماد کرد، شکل میگیرند؛
* توجه مستمر به برتری فنی و طراحی خوب؛
* سادگی- هنر به حداکثر رساندن کارهای انجامنشده- ضروری است؛
* بهترین معماریها، نیازمندیها و طراحیها از تیمهای
* در فواصل منظم تیم بر چگونگی
در سال ۲۰۰۵، گروهی به ریاست Alistair Cockburn و Jim Highsmith ضمیمهای تحت عنوان «اعلامیهٔ وابستگی» برای اصول [[مدیریت پروژه]] نوشتند، که مدیریت پروژههای نرمافزاری را بر اساس متدهای توسعهٔ نرمافزار پیش ببرد.<ref>{{cite web
خط ۱۴۷:
* متدهای Crystal
* متدهای توسعهٔ سیستمهای دینامیک (DSDM)
* [[برنامهسازی مفرط|برنامهنویسی اکستریم (XP)]]
* توسعهٔ ویژگیمحور (FDD)
* طراحی گرافیکی سیستم (GSD)
|