آموزش 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 تعریف می کند. یک عنصر مهم از عناصر با جعبه زمان برنامه ریزی و جلسه های نقد و بررسی روزانه است.
  • توسعه عملی: این اصل بر نحوه مدیریت بهتر تغییرات و ساخت محصولاتی که نیاز مشتری را برآورده می کند تأکید می کند. همچنین مسئولیت های سازمان در مورد توسعه مکرر را تعریف می کند.
آیا این نوشته را دوست داشتید؟
pluralsight-running-a-large-solution-at-scale

اجرای یک راهکار کلان در مقیاس مطلوب


در این دوره، شما توانایی طراحی و اجرای large solution trains در یک زمینه مقیاس پذیر Agile را کسب خواهید کرد. در ابتدا، فرآیندها و تشریفاتی که در سطح ر...

1400/02/04 570 بازدید
linkedin-enterprise-agile-changing-your-culture

آموزش اجایل سازمانی: فرهنگ خود را تغییر دهید


در این دوره، Doug Rose به شما کمک می کند تا پایه و اساس لازم را برای ایجاد این تغییر بنیادی سازمانی ایجاد کنید. ابتدا بیاموزید که چگونه فرهنگ سازمان خ...

1399/12/29 679 بازدید زیرنویس دارد
linkedin-introduction-to-disciplined-agile

آشنایی با Disciplined Agile


در این دوره، مدرس Joshua Barnes به شما درک بنیادی از استراتژی ها، اصول و روش های Disciplined Agile را می دهد. Disciplined Agile از چهار دیدگاه اصلی تش...

1399/12/26 560 بازدید
linkedin-managing-change-on-an-agile-project

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


مدرس Christina Charenkova نمونه های واقعی روش های اعمال مدیریت تغییر را در یک کانتکس Agile به شما نشان می دهد. او در مورد کانتکس های مدیریت تغییر روی ...

1399/12/21 560 بازدید
pluralsight-real-time-personalised-customer-interaction-at-scale

تعامل با مشتری سفارشی در بلادرنگ در مقیاس مطلوب


چگونه می توانید یک بستر تعامل با مشتری و Agile ایجاد کنید؟ این چالشی است که تیم Customer Interaction برای حل آن در Paddy Power Betfair کارش را شروع می...

1399/12/19 304 بازدید
linkedin-trello-for-agile-teams

آموزش Trello برای تیم های Agile


در این دوره، یاد بگیرید چگونه Trello را بهینه کنید تا با تیم های اجایل به خوبی کار کند. متخصص اجایل، Doug Rose بهترین روش ها و نکات را برای استفاده از...

1399/12/11 3313 بازدید زیرنویس دارد
pluralsight-advanced-topics-in-scaling-agile

آموزش مباحث پیشرفته در مقیاس گذاری Agile


در این دوره، شما تمام مهارت های لازم برای سازگار کردن این فریمورک را با سازمان خود خواهید آموخت. ابتدا یاد خواهید گرفت که چگونه نقشه راه اجرای خود را ...

1399/12/08 657 بازدید
linkedin-cert-prep-agile-analysis-iiba-r-aac

آموزش گواهینامه - (Agile Analysis (IIBA®-AAC


این دوره داوطلبان را برای قبولی در آزمون صدور گواهینامه 85 سؤالی آماده می کند ، و محتوای IIBA Agile Extension را در BABOK پوشش می دهد. در این دوره با ...

1399/12/03 554 بازدید زیرنویس دارد
pluralsight-swiftfest-boston-19-keynote-clean-agile

کنفرانس SwiftFest Boston '19: نکات مهم: Agile تمیز


در این کنفرانس، Robert C. Martin جلسه برگشت به مبانی ارائه می دهد که تاریخچه Agile، محرک آن، و آنچه را که برای آن اتفاق افتاده است را پوشش می دهد. این...

1399/11/29 683 بازدید
pluralsight-agile-business-analysis-techniques

تکنیک های تحلیل کسب و کار Agile


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

1399/11/28 1206 بازدید
pluralsight-play-by-play-demystifying-agile-for-salesforce

مجموعه Play by Play: ابهام زدایی Agile برای Salesforce


در این دوره، آشنایی مقدماتی در زمینه Salesforce برای معماران، توسعه دهندگان، مدیران، و مشاوران در مورد Agile کسب خواهید کرد. در ابتدا، شما ارزش های اص...

1399/10/07 692 بازدید
pluralsight-the-fundamentals-of-scaling-agile

آموزش اصول مقیاس پذیری Agile


در این دوره، شما دانش بنیادین بکارگیری Agile در مقیاس مطلوب را یاد خواهید گرفت. در ابتدا، ارزش افزوده Agile در سازمان های بزرگ، و همچنین مفاهیم اساسی ...

1399/09/08 1160 بازدید
pluralsight-applying-business-analysis-skills-in-your-organization

بکارگیری مهارت های تحلیل کسب و کار در سازمان


در این دوره، نحوه اجرای مؤثر تحلیل کسب و کار در طیف وسیعی از تنظیمات را بررسی خواهید کرد. در ابتدا، تحلیل کسب و کار در تیم های Agile را یاد خواهید گرف...

1399/08/19 1001 بازدید
pluralsight-executing-a-team-iteration

آموزش اجرای یک Team Iteration


شما در این دوره، مهارت ها و روش های لازم برای ارائه موفقیت آمیز یک محصول نرم افزاری با یک تیم اجایل واحد و همچنین مقیاس گذاری رویکرد به چندین تیم در س...

1399/06/24 657 بازدید
linkedin-agile-software-development-dealing-with-legacy-code-and-technical-debt

توسعه نرم افزار Agile - مقابله با کدهای Legacy و Technical Debt


در این دوره، مدرس Scott Ford با ایجاد و اجرای یک سلسله تست، نحوه بررسی کدهای قدیمی و حصارکشی در بدهی فنی، و همچنین نحوه معرفی مدیریت وابستگی و و بروزر...

1399/06/13 898 بازدید زیرنویس دارد
linkedin-linkedin-learning-highlights-project-management

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


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

1399/05/27 1435 بازدید زیرنویس دارد
linkedin-comparing-agile-versus-waterfall-project-management

مقایسه مدیریت پروژه Agile در مقابل Waterfall


در این دوره، متخصصان Chris Croft و Doug Rose به نیروهای خود پیوسته اند تا شباهت ها، تفاوت ها و بهترین استفاده های Agile و Waterfall را بررسی کنند. آنه...

1399/04/28 1482 بازدید زیرنویس دارد
linkedin-negotiating-with-agility

مذاکره با چابکی


روند مذاکره، پویا، سریع و نامعلوم است. استراتژی چابک برای موفقیت امری حیاتی است چرا که بهترین مذاکره کنندگان از استراتژی های چابک برای جلوگیری از موان...

1399/04/05 1248 بازدید زیرنویس دارد
linkedin-software-project-management-foundations

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


در این دوره، مدرس Kelley O’Connell مهارت ها و مباحث خاصی را پوشش میدهد که می تواند مدیر را در پروژه های نرم افزاری را به نتیجه موفقیت آمیز برساند. آب...

1399/03/30 2185 بازدید زیرنویس دارد
pluralsight-embracing-change-staying-agile-in-the-midst-of-change

پذیرش تغییر با آغوش باز: چابک ماندن در بحبوحه تغییر


در این دوره، شما مهارت هایی را یاد خواهید گرفت که به شما کمک می کند تا چابک تر، انعطاف پذیرتر و  در برابر تغییرات گشوده تر باشید، زیرا این قابلیت یک ض...

1399/03/15 1038 بازدید