آموزش Agile

دسته بندی: آموزش کسب و کار (Business)

چابک

آنچه در این صفحه می خوانید:

معرفی Agile

توسعه نرم افزار Agile رویکردی برای توسعه نرم افزار است که براساس آن، الزامات و راه حل ها با تلاش مشترک تیم های خود سازمان دهی و عملکرد متقابل و مشتری یا کاربر نهایی آنها تکامل می یابد. این از برنامه ریزی تطبیقی، توسعه تکاملی، تحویل زودرس و بهبود مداوم حمایت می کند و پاسخ سریع و انعطاف پذیر برای تغییر را تشویق می کند. اصطلاح Agile در این زمینه توسط بیانیه برای توسعه نرم افزار Agile رایج شده است. مقادیر و اصول حمایت شده در این بیانیه از طیف گسترده ای از فریمورک های توسعه نرم افزار، از جمله Scrum و Kanban، مشتق شده و از آن پشتیبانی می شوند. در حالی که شواهد حکایتی زیادی وجود دارد مبنی بر اتخاذ رویه ها و ارزش های Agile، مهارت های نرم افزارها، تیم ها و سازمان ها را بهبود می بخشد، برخی از مطالعات تجربی این شواهد را رد کرده اند. Agile یک روش مدیریت پروژه است که از چرخه های توسعه کوتاه به نام "sprints" برای تمرکز بر پیشرفت مستمر در توسعه محصول یا خدمات استفاده می کند. Agile بر اساس توسعه تکراری و افزایشی بنا شد و فرآیند طراحی سازگار، تکامل تدریجی را تعریف می کند. متدولوژی Agile با تقسیم کارها، سبب انجام تکرارها در زمانی کوتاه تری می شود و نسبت به تغییرات انعطاف پذیر است. Agile باعث می شود تا یک نرم افزار با نیاز های کاربران به طور کامل مطابقت داشته و به صورت به‌صورت فازبندی به آنها ارائه می شود. هدف از Agile، داشتن محصولات کارآمد، مشتری راضی و نیروی کارعالی است.

تاریخچه Agile

روش های توسعه Iterative و افزایشی را می توان در اوایل سال 1957 کشف کرد، با مدیریت پروژه تکاملی و توسعه نرم افزار تطبیقی در اوایل دهه 1970 ظهور کرد. در دهه 1990، تعدادی از روش های توسعه نرم افزار سبک وزن در واکنش به روش های حاکم بر سنگین وزن که منتقدین آن ها را تحت عنوان بیش از حد تنظیم شده، برنامه ریزی شده و خرد مدیریت شده توصیف کردند. این موارد عبارتند از: توسعه سریع برنامه (RAD)، از سال 1991؛ فرآیند یکپارچه (UP) و روش توسعه سیستم های پویا (DSDM)، هر دو از سال 1994؛ اسکرام، از 1995؛ برنامه کریستال پاک و اکستریم (XP)، هر دو از سال 1996؛ و از ویژگی های توسعه، از سال 1997. اگرچه این ها قبل از انتشار بیانیه Agile سرچشمه گرفته اند، اما اکنون به طور جمعی به عنوان روش های توسعه نرم افزار Agile شناخته می شوند. در همین زمان، تغییرات مشابهی در تولید و هوافضا انجام شد.

در سال 2001، این هفده توسعه دهنده نرم افزار یکدیگر را در یک استراحتگاه در Snowbird, Utah ملاقات کردند تا در مورد این روش های توسعه سبک وزن بحث کنند: کنت بک، وارد کانینگهام، دیو توماس، جف ساترلند، کن شوور، جیم هاسمیت، آلیستر کاکبرن، رابرت سی مارتین، مایک بیدل، آری ون بننكوم، مارتین فاولر، جیمز گرنینگ، اندرو هانت، ران جفریس، جان كرن، برایان ماریك و استیو ملور. آنها با هم بیانیه را برای توسعه نرم افزار Agile منتشر کردند. در سال 2005، گروهی به سرپرستی Cockburn و Highsmith ضمیمه ای از اصول مدیریت پروژه، بیانیه PM وابستگی متقابل، را برای راهنمایی مدیریت پروژه نرم افزار با توجه به روش های توسعه نرم افزار Agile نوشتند. در سال 2009، گروهی که با مارتین همکاری داشتند، اصول توسعه نرم افزار، "بیانیه کاردستی نرم افزار" را نوشتند، تا راهنمای نرم افزار Agile را مطابق رفتار و تسلط حرفه ای راهنمایی کنند.

در سال 2011، اتحادیه Agile راهنمائی برای تمرینات چالاکی را ایجاد کرد (در سال 2016 به واژه نامه Agile تغییر نام داد)، مجموعه ای اوپن سورس در حال تحول از تعاریف کاری شیوه ها، اصطلاحات و عناصر Agile، به همراه تفسیرها و رهنمودهای تجربه جامعه جهانی از تمرین کنندگان Agile را ایجاد کردند.

متد های توسعه نرم افزار Agile

روش های توسعه نرم افزار Agile از طیف گسترده ای از چرخه عمر توسعه نرم افزار را پشتیبانی می کند. برخی بر روی تمرین ها به عنوان مثال XP، برنامه نویسی عملی، مدل سازی Agile تمرکز می کنند، در حالی که برخی روی مدیریت جریان کار تمرکز می کنند، مانندScrum و Kanban و برخی از فعالیت های پشتیبانی از مشخصات و توسعه مورد نیاز مانندFDD، در حالی که برخی به دنبال پوشش کامل چرخه زندگی توسعه هستند مانندDSDM ، RUP.

فریمورک های قابل توجه توسعه نرم افزار Agile شامل موارد زیر است:

  • مدل‌سازی Agile
  • فرایند یکپارچهٔ Agile (AUP)
  • Crystal Clear
  • متدهای Crystal
  • متدهای توسعهٔ سیستم‌های دینامیک (DSDM)
  • برنامه‌نویسی اکستریم (XP)
  • توسعهٔ ویژگی‌محور (FDD)
  • طراحی گرافیکی سیستم (GSD)
  • توسعه Kanban
  • توسعه Lean
  • Scrum
  • Scrumban

بیانیه توسعه نرم افزار Agile

براساس تجربه مشترک خود در زمینه توسعه نرم افزار و کمک به دیگران در انجام این کار، هفده امضاکننده این بیانیه اعلام کردند که:

ما با توسعه نرم افزار و کمک به دیگران در انجام آن در حال کشف راه های بهتری برای توسعه نرم افزار هستیم. از این روش ها باید به ارزش دست یابیم:

  • افراد و تعاملات بالاتر از فرآیندها و ابزارها
  • نرم افزار کارکننده بالاتر از مستندات جامع
  • مشارکت مشتری در انجام کار بالاتر از قرارداد کار
  • پاسخگویی به تغییرات بالاتر از پیروی یک طرح

با وجود اینکه موارد سمت چپ نیز ارزشمند هستند ولی ما برای موارد سمت راست ارزش بیشتری قائل هستیم. همانطور که اسکات امبلر توضیح داد:

  • ابزارها و فرایندها مهم هستند ، اما داشتن افراد ذیصلاح به طور مؤثر در کنار هم کار مهمتر است.
  • مستندات خوب برای کمک به مردم برای درک چگونگی ساخت نرم افزار و نحوه استفاده از آن مفید است ، اما نکته اصلی توسعه ایجاد نرم افزار است نه مستند سازی.
  • یک قرارداد مهم است اما جایگزینی برای همکاری نزدیک با مشتریان برای کشف آنچه نیاز دارند نیست.
  • یک طرح پروژه مهم است ، اما نباید آنقدر سختگیرانه باشد که بتواند تغییرات در فناوری یا محیط ، اولویت های ذینفعان و درک مردم از مشکل و راه حل آن را تحقق بخشد.

برخی از نویسندگان اتحاد Agile، یک سازمان غیر انتفاعی را تشکیل داده اند که براساس ارزش ها و اصول بیانیه، توسعه نرم افزار را ارتقا می بخشد. جیم Highsmith با معرفی بیانیه به نمایندگی از اتحاد Agile، گفت: "جنبش Agile ضد متدولوژی نیست، در حقیقت بسیاری از ما می خواهیم اعتبار خود را به کلمه روش شناسی برگردانیم. ما می خواهیم تعادل را بازیابی کنیم. ما برنامه ریزی می کنیم اما محدوده برنامه ریزی را در یک محیط آشفته می شناسیم. کسانی که طرفداران XP یا SCRUM یا هر یک از دیگر روشهای سریع را به عنوان "هکرها" می نامند، از این روش شناسی و تعریف اصلی اصطلاح هکر غافل هستند."

اصول توسعه نرم افزار Agile

بیانیه برای توسعه نرم افزار Agile مبتنی بر دوازده اصل است:

  • رضایت مشتری با تحویل زودهنگام و مداوم نرم افزارهای ارزشمند.
  • خوش آمدگویی در تغییر الزامات، حتی در اواخر توسعه.
  • ارائه نرم افزار کار به طور مکرر (هفته ها و نه ماه ها)
  • همکاری نزدیک و روزانه بین افراد تجاری و توسعه دهندگان
  • پروژه هایی در اطراف افراد با انگیزه ساخته می شود که به آنها اعتماد می شود.
  • گفتگوی چهره به چهره بهترین شکل ارتباطی (محل سکونت) است.
  • نرم افزار کار، اندازه گیری اصلی پیشرفت است.
  • توسعه پایدار، قادر به حفظ سرعت ثابت
  • توجه مستمر به برتری فنی و طراحی خوب
  • سادگی - هنر حداکثر کردن کارهایی که انجام نمی شود - ضروری است.
  • بهترین معماری ها، الزامات و طرح ها از تیم های خود ساماندهی پدیدار می شوند.
  • به طور مرتب، تیم در مورد چگونگی مؤثرتر شدن و تنظیم متناسب بودن، تأمل می کنند.

ویژگی های Agile

  • مدیریت بهتر کسب و کار
  • افزایش کیفیت کارها و پروژه ها
  • کاهش هزینه های پروژه کاری
  • بهبود و افزایش بهره وری در کسب و کار
  • مدیریت محصولات
  • توجه به طراحی خوب مطابق با نیاز مشتریان
  • ایجاد همکاری بین افراد کسب و کار و تیم توسعه
  • داشتن یک سرعت بالا و ثابت برای انجام کارها
  • تحویل مکرر نرم فزار

مقایسه اسکرام با Agile

روش Agile عملی است که به تکرار مداوم توسعه و آزمایش در فرآیند SDLC کمک می کند. Agile محصول را به ساختهای کوچکتر تقسیم می کند. در این روش، برخلاف سایر روشهای توسعه نرم افزار، فعالیتهای توسعه و آزمایش همزمان هستند. همچنین کار گروهی و ارتباط چهره به چهره را ترغیب می کند. مشاغل، ذینفعان و توسعه دهندگان و مشتریان باید برای توسعه یک محصول با یکدیگر همکاری کنند.

اسکرام چیست؟

اسکرام یک فرایند Agile است که به ما امکان می دهد تا در کمترین زمان بر ارائه ارزش تجاری متمرکز شویم. این نرم افزار به سرعت و بارها و بارها از نرم افزار واقعی کار بازرسی می کند. این امر بر مسئولیت پذیری، کار تیمی و پیشرفت تکراری به سمت یک هدف تعریف شده تأکید دارد. فریمورک Scrum معمولاً به این واقعیت می پردازد که احتمالاً نیازها تغییر می کنند یا بیشتر اوقات در ابتدای پروژه مشخص نیست.

مقایسه اسکرام با Agile در زیر آمده است:

Agile

  1. Agile یک روش توسعه مبتنی بر رویکرد تکراری و افزایشی است.
  2. توسعه نرم افزار Agile به طور گسترده ای به محیط هایی که دارای تیم توسعه پروژه کوچک اما متخصص هستند، بسیار مناسب است
  3. در فرآیند Agile، رهبری نقش اساسی دارد.
  4. در مقایسه با اسکرام روشی سخت تر است. بنابراین فضای زیادی برای تغییرات مکرر وجود ندارد.
  5. Agile شامل همکاری و تعامل چهره به چهره بین اعضای تیم های مختلف عملکردی متقابل است.
  6. Agile می تواند بسیاری از فرایندهای پیشرفت و تغییر سازمانی را پیش رو داشته باشد.
  7. در این روش، هر مرحله از توسعه مانند الزامات، تجزیه و تحلیل، طراحی، به طور مداوم در طول چرخه زندگی کنترل می شود.
  8. سرپرست پروژه از كليه كارها در روش چابك مراقبت مي كند.
  9. روش Agile بازخورد را در طی فرایند از کاربر نهایی تشویق می کند. در این روش، محصول نهایی مفیدتر خواهد بود.
  10. بطور مرتب نرم افزار را تهیه و به روز کنید.
  11. طراحی و اجرا باید ساده نگه داشته شود.
  12. در روش Agile اولویت همیشه جلب رضایت مشتری با ارائه مداوم نرم افزارهای ارزشمند است.
  13. نرم افزار کار ابتدایی ترین میزان پیشرفت است.
  14. بهتر است ارتباط چهره به چهره برقرار شود و از تکنیک هایی مانند اینها باید استفاده شود تا در حد امکان به این هدف نزدیک شوید.

اصول Agile در زیر آمده است:

  • ماشین نیازهای در حال تغییر، حتی دیر توسعه. فرآیندهای Agile امکان تغییر را با توجه به مزیت رقابتی مشتری ایجاد می کنند
  • افراد تجاری و توسعه دهندگان روزانه در طول پروژه کار خواهند کرد.
  • توجه به برتری فنی و طراحی درست باعث افزایش چابکی می شود.
  • تیم، برای کارآمد تر شدن کار کنند، برای این که آنها رفتار خود را مطابق با پروژه تنظیم می کنند.

اسکرام

  1. اسکرام یکی از کاربردهای روش Agile است. که در آن ساخت های افزایشی در هر دو تا سه هفته به مشتری تحویل داده می شود.
  2. اسکرام در ایده آل در پروژه ای استفاده می شود که نیاز به سرعت تغییر می یابد.
  3. اسکرام تیمی متشکل از عملکرد خود را سازمان می دهد.
  4. بزرگترین مزیت اسکرام انعطاف پذیری آن است زیرا به سرعت نسبت به تغییرات واکنش نشان می دهد.
  5. در اسکرام، همکاری در جلسه ایستادن روزانه با نقش ثابت که به استاد اسکرام، صاحب محصول و اعضای تیم اختصاص داده شده است.
  6. هنگام اجرای فرایند اسکرام تغییرات زیادی لازم نیست.
  7. نمایشی از عملکرد در انتهای هر نقوش ارائه شده است. به طوری که بازخورد منظم را می توان قبل از حداکثر سرعت دویدن بعدی انجام داد
  8. سرپرست تیم وجود ندارد، بنابراین کل تیم به مسائل یا مشکلات می پردازد.
  9. جلسه روزانه Sprint برای بررسی و بازخورد برای تصمیم گیری در مورد پیشرفت آینده پروژه انجام می شود.
  10. هنگامی که تیم با فعالیت های فعلی اسپرینت انجام می شود، می توان اسپرینت بعدی را برنامه ریزی کرد.
  11. طراحی و اجرای می تواند نوآورانه و آزمایشی باشد.
  12. کنترل فرآیند تجربی یک فلسفه اصلی فرآیند مبتنی بر اسکرام است.
  13. نرم افزار کار یک اقدام ابتدایی نیست.
  14. تمرکز تیم Scrum برای ارائه حداکثر ارزش تجاری از ابتدا در ابتدای پروژه و ادامه آن در کل.

در زیر اصول اسکرام آمده است:

  • خود-سازمان: این اصل منجر به مالکیت مشترک سالم تر در بین اعضای تیم می شود. همچنین محیطی خلاقانه و خلاقانه است که باعث رشد می شود.
  • همکاری: همکاری یک اصل اساسی دیگر است که بر کار مشارکتی متمرکز است: 1. آگاهی 2. بیان و 3. تخصیص. همچنین مدیریت تیم را به عنوان یک فرآیند ایجاد ارزش مشترک با تیم هایی که برای ارائه بالاترین ارزش همکاری می کنند، در نظر می گیرد.
  • Time-boxing: این اصل چگونگی محدودیت زمان را در روش Scrum تعریف می کند. یک عنصر مهم از عناصر با جعبه زمان برنامه ریزی و جلسه های نقد و بررسی روزانه است.
  • توسعه عملی: این اصل بر نحوه مدیریت بهتر تغییرات و ساخت محصولاتی که نیاز مشتری را برآورده می کند تأکید می کند. همچنین مسئولیت های سازمان در مورد توسعه مکرر را تعریف می کند.
آیا این نوشته را دوست داشتید؟
linkedin-agile-software-development-transforming-your-organization

آموزش توسعه نرم افزار چابک: تحول سازمان شما


در حالی که بسیاری از سازمان های مدرن در تلاشند تا خود را با توسعه نرم افزار چابک تغییر دهند، بسیاری از آن ها به این هدف نمی رسند. این دوره، عناصر اصلی...

1399/03/14 24 بازدید زیرنویس دارد
linkedin-agile-software-development-extreme-programming

آموزش توسعه نرم افزار چابک: برنامه نویسی مفرط


این دوره اصول اولیه XP را برای توسعه دهندگان نرم افزار، سرپرستان تیم، مربیان چابک و سایر افرادی که می خواهند یکپارچه سازی XP را در سازمان خود شروع کنن...

1399/03/14 59 بازدید زیرنویس دارد
linkedin-blending-project-management-methods

آموزش ترکیب متدهای مدیریت پروژه


Kelly OConnell مبانی Waterfall و agile (از جمله اسکرام و Kanban) را مرور می کند و چرخه عمر، نقاط قوت، ضعف و محدودیت آنها را پوشش می دهد. او سپس توضیح ...

1399/03/06 336 بازدید
pluralsight-continuous-delivery-and-devops-with-azure-devops-the-big-picture

تحویل مداوم و DevOps با Azure DevOps: دوره The Big Picture


برای حمایت از تیم ها برای حرکت به سمت تحویل مداوم و DevOps، به یک مجموعه ابزار نیاز دارید که به شما کمک کند، نرم افزار را به روشی قابل اطمینان، خودکار...

1399/02/19 393 بازدید
linkedin-agile-software-development-clean-coding-practices

آموزش توسعه نرم افزار Agile: تمرین کدنویسی تمیز


به عنوان یک کدنویس، کامپایلر تنها مخاطب شما نیست. همکاران شما - و حتی در آینده خود شما - هنگام رفع باگ ها، باید بتوانند به راحتی هدف اصلی شما را بفهمن...

1399/01/09 2960 بازدید زیرنویس دارد
pluralsight-project-management-basics-for-non-project-managers

آموزش مبانی مدیریت پروژه برای مدیران


در این دوره مدیریت پروژه چابک از جمله (Scrum ، Kanban ، Extreme Programming (XP و فریمورک APF را پیاده سازی خواهید کرد. سناریوهای مدیریت روزمره پروژه ...

1398/09/14 1772 بازدید
linkedin-agile-software-development-refactoring

توسعه نرم افزاری Agile: ریفکتورینگ


این دوره اصول اولیه refactoring، متناسب با توسعه agile را آموزش می دهد. در این دوره با اصول Refactoring کد برای ایجاد کد باکیفیت، ساده سازی کد، حذف تک...

1398/07/07 1014 بازدید زیرنویس دارد
linkedin-agile-foundations

مبانی Agile


مدرس این دوره بصورت گام به گام، مفاهیم اساسی که شما برای شروع تفکر مانند یک تیم چابک، باید بدانید را به شما آموزش می دهد. مدرس ارزشها و اصول پوشش داده...

1398/01/14 2678 بازدید
linkedin-agile-testing

آموزش Agile Testing


آموزش رایگان استفاده از پیاده سازی agile testing در سازمان خود برای ایجاد نرم افزاری با کیفیت بالاتر...

1398/01/11 4095 بازدید
linkedin-agile-change-management-for-manufacturers

آموزش مدیریت تغییر Agile برای تولید کنندگان


تغییر طبیعی است. تغییر پذیری، یک مزیت رقابتی به شرکت شما می بخشد که شما را قادر می سازد تا محصولات را به بازار برسانید و به بازخورد مشتریان خود سریعتر...

1397/10/10 842 بازدید زیرنویس دارد
pluralsight-pmi-acp-final-preparations-for-pmi-acp-certification-11-of-11

آموزش آمادگی برای آزمون گواهینامه PMI-ACP


در این دوره با نحوه موفق شدن در آزمون PMI-ACP آشنا می شوید. در ابتدا مباحث آزمون و وظایف مرتبط با هر دامنه را فرا خواهید گرفت. سپس ابزارها و تکنیک ها،...

1397/09/07 779 بازدید
lynda-agile-project-management-with-microsoft-project-2

آموزش مدیریت پروژه Agile با Microsoft Project


در این دوره با مدیریت پروژه های agile با Microsoft Project، راه اندازی پروژه های agile، ایجاد فیلدهای سفارشی، متد پروژه agile مانند sprints و ویژگی ها...

1397/07/02 2158 بازدید زیرنویس دارد
oreilly-agile-introduction

آشنایی با توسعه Agile 


Agile یک روش توسعه نرم افزاری است که خطرات را کاهش می دهد و به نرم افزار شما افزوده می شود. این دوره به  توسعه Agile خواهیم پرداخت. سرفصل: توسعه A...

1397/07/02 1145 بازدید
oreilly-understanding-the-basics-of-agile

درک مبانی Agile


Agile یک بخش اصلی از واژگان تجاری قرن بیست و یکم برای استارت آپ ها و شرکت ها است. این دوره به مفاهیم اصلی Agile می پردازد و تاریخچه آن را از یک اعلامی...

1397/06/27 1173 بازدید
packtpub-an-agile-crash-course-agile-project-management-and-agile-delivery-video

آموزش مدیریت پروژه Agile و Agile Delivery


این دوره تدریس Agile به شما این امکان را می دهد که بر مهمترین مفاهیم و ابزارهای توسعه Agile، تحویل پروژه Agile و مدیریت پروژه Agile را مسلط شوید. همچن...

1397/06/19 1414 بازدید
pluralsight-empowering-your-team-with-icagile

آموزش توانمند سازی تیم با ICAgile


یک تیم بیش از یک گروه از افرادی است که فضای مشترک دارند. یک تیم واقعی گروهی از افراد با مهارت های تکمیلی است که با هم برای یک هدف مشترک کار می کنند. د...

1397/06/17 639 بازدید زیرنویس دارد
pluralsight-getting-your-customers-involved-with-icagile

آموزش Agile در مشارکت مشتریان


در قلب سروکار داشتن با مشتریان خود فرآیند توسعه پروژه / محصول دانش کامل از چارچوب Agile و اهمیت ارتباط مکرر وجود دارد. در این دوره با تفاوت بین نقش ها...

1397/06/14 520 بازدید زیرنویس دارد
packtpub-hands-on-administration-with-jira-7-video

آموزش مدیریت پروژه با JIRA 7


نرم افزار جیرا یک ابزار مدیریت پروژه هوشمند است که از هر گونه متدولوژی scrum، kanban و غیره پشتیبانی می کند. شما می توانید برنامه های توسعه نرم افزاری...

1397/06/08 3955 بازدید
lynda-agile-software-development

آموزش توسعه نرم افزار با Agile 


رویکرد Agile بر تحویل و بهبود مداوم، همکاری تمرکز می کند که می تواند به متخصصان جهت افزایش بهره وری و کیفیت محصولات نهایی خود کمک کنند. در این دوره با...

1397/05/25 1586 بازدید زیرنویس دارد
lynda-lean-technology-strategy-running-agile-at-scale

آموزش اجرای Agile در مقیاس بزرگتر


برای سازمان های بزرگ فناوری، مسیر استفاده از Agile ، تقریبا همیشه هموار است. اگر قصد دارید agile را در مقیاس بزرگتر بکار گیرید این دوره برای شما مناسب...

1397/05/21 744 بازدید زیرنویس دارد