Гъвкава методология: Значение, предимства, недостатъци и други

Винаги сте искали да знаете какво представлява гъвкавата методология в разработката на софтуер? Погледнете по-отблизо тук, за да получите подробности.

Гъвкавата методология е философия за разработка на софтуер, която има за цел да предостави по-добра стойност на клиентите чрез използване на по-кратки цикли на разработка, като същевременно включва постоянни ревизии.

Разработката на софтуер израсна от полетата на математиката и науката. Така че първоначално включваше научните методи от тези области.

Тези методи се развиха в подхода на водопада през 1970-те години, за да отговорят на изискванията на деня. Компютрите и техният софтуер в онези дни бяха големи, сложни и проектирани да работят десетилетия. Така че методът на водопада беше подходящ.

Но в края на 1990-те години на миналия век интернет драматично променя света и се налага нов подход. Така се появи гъвкавата методология.

Следва по-отблизо това движение за разработка на софтуер и как то може да помогне на вас и вашия екип.

История на Agile метода за разработка

Гъвкавото разработване на софтуер израсна от интернет и неговата ненаситна нужда от приложения през годините на бума от 1990-те и началото на 2000-те.

Това също беше период, когато много разработчици без опит в компютърните науки преминаха към уеб разработка поради огромната нужда от уебсайтове, обслужващи различни групи и индустрии.

Естествено повечето стартиращи компании бяха малки. И така, повечето разработки се случиха в малки екипи, като крайната цел често беше бързо излизане на пазара. Тъй като закъснението означаваше загуба на пазарен дял.

За да се противопоставят на ограниченията, които моделът на водопада постави за възможно най-бързото пускане на продукти на пазара, различни разработчици измислиха различни методи през 1990-те години. Те включват Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban и други.

След това, някъде през 2001 г., 17 разработчици, които практикуваха една или друга форма на ранно гъвкаво развитие, се събраха в Юта, САЩ. След това те приключиха срещата си с публикуването на „Манифест за гъвкава разработка на софтуер“.

Този манифест се основава на 4 ценности и 12 принципа.

4-те ценности и 12 принципа на Agile разработката

От опита, който събраха по време на срещата си, 17-те разработчици постигнаха споразумение относно набор от ценности за по-ефективно създаване на софтуер.

Тези четири стойности са както следва:

  1. Индивиди и взаимодействия над процеси и инструментите. Това означава, че разработването на софтуер с инструменти, докато се следва конкретен процес, е важно. Но по-важно е наличието на компетентни хора, които работят заедно по-ефективно.

  2. Работещ софтуер над изчерпателна документация. Този атакува метода на водопада за първо проектиране на софтуер и писане на документация за него преди действителния процес на разработка на софтуер.

  3. Сътрудничество с клиенти над преговорите по договора. Само като работите в тясно сътрудничество с клиента или потребителя, можете да научите и развиете точно това, от което клиентът се нуждае. Това създава повече стойност.

  4. Отговаряне на промяната над следване на план. Следването на план на проекта е важно. Но планът не трябва да бъде твърде твърд. Той трябва да се адаптира към промените, за да отговори на очакванията на заинтересованите страни.

Тези стойности на Agile Manifesto по-горе се основават на 12 принципа и те са както следва:

  1. Удовлетвореност на клиентите чрез ранна и непрекъсната доставка на ценен софтуер.
  2. Приветствайте променящите се изисквания, дори в късна разработка.
  3. Доставяйте работещ софтуер често (седмици вместо месеци)
  4. Тясно, ежедневно сътрудничество между бизнесмени и разработчици
  5. Проектите се изграждат около мотивирани личности, на които трябва да се вярва
  6. Разговорът лице в лице е най-добрата форма на комуникация (колокация)
  7. Работещият софтуер е основната мярка за напредък
  8. Устойчиво развитие, способно да поддържа постоянен темп
  9. Постоянно внимание към техническо съвършенство и добър дизайн
  10. Опростеността - изкуството да се максимизира количеството несвършена работа - е от съществено значение
  11. Най-добрите архитектури, изисквания и дизайн възникват от самоорганизиращите се екипи
  12. Редовно екипът обмисля как да стане по-ефективен и се коригира съответно

Итерации или спринтове

Итерациите или спринтовете в гъвкавото разработване на софтуер са кратки периоди от обикновено от 1 до 4 седмици, на които работата по разработката е разделена. Това прави нещата по-лесни за управление, тъй като изисква по-малко планиране.

Всеки екип обикновено се състои от членове с различни функции, като те могат да включват планиране, анализ, проектиране, кодиране и тестване.

Екипът работи върху софтуера при всяка итерация или спринт заедно. И накрая произвеждат работещ продукт. Тази работеща част от софтуера е мярка за истински напредък, според Agile Manifesto.

В зависимост от продукта и от нуждите на клиента, продуктът на итерация може да бъде пуснат на пазара или не. Така че често са необходими много итерации за едно издание.

Предимствата на Agile разработката

Както можете да си представите, гъвкавата методология носи много предимства. Те са както следва:

  1. По-бързо реализиране на идеи
  2. Повече гъвкавост от подхода на водопада
  3. Подобрена производителност с управлявани итерации
  4. По-добри продукти чрез потребителски взаимодействия
  5. Грешките се идентифицират бързо и се отстраняват

Недостатъци на Agile методологията

Има и някои недостатъци на работата с гъвкав метод за разработка. И те могат да включват:

  1. Може да е трудно да се оценят пълните разходи в началото
  2. Нуждае се от много принос от клиенти
  3. Включва много непланирана работа
  4. Няма ясно дефиниран край на проекта

Кога да използвате Agile методи

  1. Когато не можете да прецените какво изисква софтуерът
  2. Имате достатъчно достъп до клиенти
  3. Вие разработвате уеб приложение или лесна за актуализиране система
  4. Трябва бързо да завладеете пазарен дял с ранно пускане

Популярни Agile рамки за разработка

Има много популярни гъвкави рамки за разработка. Някои започнаха много преди Agile Manifesto от 2001 г., докато други се появиха по-късно.

Целта на рамката е просто да дефинира правилата на даден метод. И така, докато най-популярните рамки са изброени по-долу за справка, има много повече. Освен това сте свободни да създадете своя или да модифицирате съществуваща рамка, за да пасне на вашия екип.

  1. Спорна топка: Тази рамка е предназначена за екипи с 10 или по-малко членове. Работата е разделена на спринтове от 2-4 седмици с ежедневни 15-минутни срещи.

  2. Kanban: Произхождаща от Toyota, Kanban е японска дума, която означава билборд и е много полезна за екипи, които ценят визуалните помощни средства. Задачите се преместват от един етап на друг с помощта на визуални представяния като лепкави бележки или приложения.

  3. Бърза разработка на приложения RAD: Тази фраза може да се отнася както за гъвкава разработка на софтуер като цяло, така и за метода на Джеймс Мартин. RAD се фокусира върху изискванията на потребителския интерфейс и разчита в голяма степен на прототипиране.

  4. Lean Startup: Тази рамка е за тези, които трябва да разработят продукт или услуга, но първо трябва да определят неговата пазарна жизнеспособност. Това включва използването на експерименти, за да се види кое работи и кое не.

Други забележителни рамки включват Extreme Programming (XP), Adaptive Software Development, Agile Modeling, Dynamic Systems Development Method и Scaled Agile Framework.

Гъвкавите срещу водопадните методологии

Ето паралелен поглед върху гъвкавите и каскадните методи за разработване на софтуер. Може да помогне да разберете как всеки метод се подрежда спрямо другия. Така че можете лесно да изберете най-добрите инструменти за вашата работа.

ПъргавВодопад
Инкрементален и итеративен подходЛинеен и последователен модел на жизнения цикъл
Гъвкав за промянаТвърди реализации
Тестовете и прегледите продължаватИма само една фаза на тестване след завършване
Изискванията могат да се променятИзискванията се определят след планиране
Колекция от много по-малки проектиЕдин единствен проект
Повече ангажираност на клиентитеПо-малко участие на клиента

Адаптивно срещу предсказуемо развитие

Целта на гъвкавото разработване на софтуер е да се адаптира към промените в реалния свят. И те често са резултат от нуждите на клиента или потребителя. Адаптирането е в рязък контраст с предсказващия характер на модела на водопада.

Тогава има смисъл да използвате гъвкави методи, когато разработвате системи, за които не сте толкова сигурни как ще се развият нещата. Или когато има постоянни промени и еволюция в една индустрия. Интернет е голям пример.

В противен случай, ако разработвате за система или пазар, за който знаете всичко и който почти не се променя или е имунизиран срещу промяна. Тогава предсказващият характер на философията на водопада може да бъде от помощ.

Изработка на софтуер

Софтуерното майсторство е друга философия, която се основава на принципите на гъвкаво развитие и се фокусира върху подчертаването на уменията на разработчиците на софтуер, участващи в даден проект.

Движението Software Craftsmanship също има манифест и той гласи:

Като амбициозни софтуерни занаятчии, ние вдигаме летвата на професионалната разработка на софтуер, като го практикуваме и помагаме на другите да научат занаята. Чрез тази работа ние оценихме: · Не само работещ софтуер, но и добре изработен софтуер · Не само реагиране на промените, но и постоянно добавяне на стойност · Не само индивидуалности и взаимодействия, но също и общност от професионалисти · Не само сътрудничество с клиенти, но и продуктивни партньорства Тоест, в преследването на елементите отляво ние открихме, че елементите отдясно са незаменими.  © 2009, долуподписаният. Тази декларация може да бъде свободно копирана във всякаква форма, но само в нейната цялост чрез това известие

Заключение

Стигайки до края на нашия поглед върху гъвкавата методология и разработка на софтуер, можете да видите, че има толкова много опции.

Всеки отбор е различен. И точно както различните екипи разработиха своите различни методи за адаптиране към променящите се времена. Вие също ще трябва да се адаптирате, като използвате вече установена рамка или като я адаптирате, за да пасне на вашия екип.

Ннамди Океке

Ннамди Океке

Ннамди Океке е компютърен ентусиаст, който обича да чете широка гама от книги. Той има предпочитания към Linux пред Windows/Mac и използва
Ubuntu от ранните си дни. Можете да го хванете в Twitter чрез бонготракс

Статии: 298

Получавайте технически неща

Технически тенденции, тенденции при стартиране, прегледи, онлайн приходи, уеб инструменти и маркетинг веднъж или два пъти месечно