ELI5: توسعه نرم افزار چابک | هکر ظهر

عکس پروفایل نویسنده

@geshanmگشن مناندر

مهندس نرم افزار سرب ، فن آور ، پیرو چابک ، ارائه دهنده راه حل فناوری

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

توسعه نرم افزار چابک چیست؟

Atlassian ، در راهنمای خود ، چابک را چنین تعریف می کند:

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

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

در توسعه نرم افزار ، شیوه های چابک برای کشف الزامات و ایجاد راه حل از طریق تلاش مشترک تیم های خودسازمانده و عملکردی متقابل و مشتری (های) / کاربر نهایی (کاربران) آنها روی می آورند. این برنامه از برنامه ریزی انطباقی ، توسعه تکاملی ، زایمان زودرس و بهبود مستمر حمایت می کند و پاسخ های انعطاف پذیر را برای تغییر تشویق می کند.

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

توسعه نرم افزار چابک به معنای توسعه نرم افزار به گونه ای است که کاربر نهایی احساس می کند که ارزش به طور مکرر در قالب یک نرم افزار در حال کار تحویل داده می شود. این مطمئناً شامل درگیر شدن کاربران نهایی در فرایند توسعه نرم افزار چابک است.

تیم مهندسی نرم افزار ماهها طول نمی کشد تا نیازمندی ها را بنویسد ، سپس دوباره ماهها برای طراحی / طراحی نرم افزار طول می کشد. پس از آن ، تیم کد را می نویسد و محصول را به مشتری تحویل می دهد. کاربر نهایی بخشی از فرآیند است. پس از اینکه کاربر نهایی برخی از الزامات را ارائه داد ، قادر است بخشی از نرم افزار کار شده را ببیند تا اینکه منتظر تمام شدن کار باشد.

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

مانیفست چابک

حدود 20 سال پیش در سال 2001 ، 17 مرد در یوتا دیدار کردند و این مانیفست شگفت انگیز را به عنوان اصول راهنمای توسعه نرم افزار چابک نوشتند. مانیفست یک داستان طولانی دارد ، اگر علاقه مند به آن هستید ، لطفا آن را بخوانید. در زیر 4 مقدار اصلی آورده شده است:

* افراد و تعاملات بیش از فرایندها و ابزارها

* نرم افزار کار بر روی اسناد جامع

* همکاری مشتری بر سر مذاکره در مورد قرارداد

* پاسخ به تغییر بیش از پیروی از یک برنامه

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

علاوه بر مقادیر فوق ، 12 اصل نرم افزار چابک نیز وجود دارد. اولین مورد:

بالاترین اولویت ما جلب رضایت مشتری از طریق تحویل زودهنگام و مداوم نرم افزارهای ارزشمند است.

سپس اصول دیگری نیز وجود دارد که در مورد تغییرات ، تحویل نرم افزار ، همکاری و غیره بحث می کنند. بنابراین تاکنون به نظر می رسد هنوز آشفته است ، درست است؟ این مطمئناً چیزی نیست که کودک پنج ساله به هیچ وجه بتواند آن را درک کند. برای خواندن تشبیه بیش از حد ساده دنبال کنید.

قیاس توسعه نرم افزار چابک

حالا اجازه دهید کمی از توسعه نرم افزار چابک و اصطلاحات واژگانی که به همراه دارد دور شویم. اجازه دهید یک مسئله بسیار ساده (کمی نمایشی) را معرفی کنم که یک قیاس و مثال عالی است. به عنوان مثال در اینجا خدمت به یک سیب به چهار کودک گرسنه است.

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

رویکرد آبشار برای خدمت به یک سیب

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

  1. سیبی را که گرفتید بشویید
  2. پس از آن ، آن را به چهار قطعه به اندازه مشابه برش دهید (سیب را نصف کنید سپس هر دو نیمه را نصف کنید)
  3. هر چهار قطعه سیب را یکی یکی پوست بگیرید
  4. دانه را برش دهید
  5. هر چهار قطعه سیب را بریزید
  6. تاسها را در چهار بشقاب قرار دهید
  7. سپس آن را برای چهار کودک سرو می کنید

اکنون ، به برخی از مواردی که در این روند اتفاق افتاده است توجه کنید:

  • هیچ یک از کودکان تا زمان انجام مرحله 6 نتوانستند گرسنگی خود را برطرف کنند
  • راهی برای بازخورد در مورد اندازه تکه های سیب وجود نداشت ، شما باید آنچه می گرفتید بخورید
  • بچه ها همه تکه های سیب سهم خود را با یک حرکت پذیرایی کردند. این ممکن است بسته به نوع درک شما یک چیز خوب یا بد باشد.
  • مطمئناً هیچ حلقه بازخوردی در این روند وجود نداشت ، کودکان احساس کردند که کمی کنار گذاشته شده اند.

در مجموع ، روند طبیعی به نظر می رسید. متأسفانه ، تولید نرم افزار به آسانی ارائه یک سیب به چهار کودک گرسنه نیست. بنابراین بیایید نگاهی بیندازیم که چگونه نرم افزار چابک سعی در حل مشکل مشابه دارد.

روش توسعه نرم افزار چابک برای خدمت به یک سیب

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

  1. سیب را بشویید
  2. پس از آن ، یک چهارم سیب را برش دهید
  3. لایه برداری که قسمت چهارم آن را برش دهید
  4. دانه ها را از قسمت یک چهارم آن جدا کنید
  5. آن را هشت تکه تکه کنید
  6. هر کدام 2 قطعه را در 4 بشقاب قرار دهید
  7. هر دو قطعه را برای چهار کودک گرسنه سرو کنید
  8. بازخورد بگیرید ، به مرحله 2 بروید و این کار را تکرار کنید تا سیب تمام شود 🙂

باز هم ، بگذارید مواردی را که این بار بهتر هستند یادداشت کنیم:

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

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

این نه تنها با ارائه سریع تاس سیب بلکه با اجازه دادن به کودکان در دور بعدی تاس هایی که دریافت می کنند رضایت بیشتری را فراهم می کند. این زیبایی توسعه نرم افزار چابک است.

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

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

به همین ترتیب ، طراحی و معماری نرم افزار می تواند به برش سیب مرتبط باشد. اگر سیب را به درستی برش ندهید ، به دست آوردن تاس های خوش فرم و موارد دیگر دشوار است. توسعه نرم افزار نیز همین است.

حتی سرویس دهی به سیب نیز می تواند با استقرار نرم افزار همراه باشد.

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

نتیجه

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

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

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

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

همچنین منتشر شده است اینجا.

برچسب ها

با هکر نون همراه باشید

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