Agile vs традиционна методология за разработка на софтуер
Днес в софтуерната индустрия се използват множество различни методологии за разработка на софтуер. Методът за разработване на водопад е един от най-ранните методи за разработка на софтуер. V-Model, RUP и няколко други линейни, итеративни и комбинирани линейно-итеративни методи, дошли след методологията на водопада, целяха да заличат много проблеми от метода на водопада. Всички тези по-ранни методологии се наричат традиционните методологии за разработка на софтуер. Agile модел е по-нов модел за разработка на софтуер, въведен за справяне с недостатъците, открити в традиционните модели. Основният акцент на Agile е да включи тестването възможно най-рано и да пусне работеща версия на продукта много рано, като разгради системата до много малки и управляеми части.
Какво е традиционна методология за разработка на софтуер?
Софтуерните методологии като метод Waterfall, V-Model и RUP се наричат традиционните методологии за разработка на софтуер. Методологията на водопад е един от най-ранните модели за разработка на софтуер. Както подсказва името, това е последователен процес, при който напредъкът протича през няколко фази (анализ на изискванията, проектиране, разработка, тестване и изпълнение) отгоре надолу, аналогичен на водопад. V-Model се счита за разширение на модела за разработка на софтуер на Waterfall. V-Model използва същите връзки между фазите, дефинирани в модела Водопад. Но вместо да се спуска линейно (като модела Водопад) V-Model стъпва надолу по диагонал и след това се придвижва обратно нагоре (след фазата на кодиране), образувайки формата на буквата V. RUP (Rational Unified Process) е адаптивна рамка на процеса (не един конкретен процес), който може да бъде персонализиран от организацията за развитие според техните нужди. Малко подобен на водопада, той има фиксирани фази като начало, изработване, изграждане и преход. Но за разлика от водопада, RUP е итеративен процес.
Какво е Agile?
Agile е много скорошна методология за разработка на софтуер (или по-правилно, група методологии), базирана на манифеста на пъргавия. Това е разработено, за да разреши някои недостатъци в традиционните методологии за разработка на софтуер. Agile методи се основават на отдаване на висок приоритет на участието на клиентите в началото на цикъла на развитие. Препоръчва да се включи тестване от клиента рано и често, колкото е възможно. Тестването се извършва във всяка точка, когато стане налична стабилна версия. Основата на Agile се основава на стартирането на тестовете от началото на проекта и продължаването му до края на проекта. Scrum и Extreme програми са две от най-популярните вариации на Agile методите.
Основната стойност на Agile е „качеството е отговорност на екипа“, което подчертава, че качеството на софтуера е отговорност на целия екип (не само на екипа за тестване). Друг важен аспект на Agile е разграждането на софтуера на по-малки управляеми части и доставянето им на клиента много бързо. Доставката на работещ продукт е от изключително значение. Тогава екипът продължава да усъвършенства софтуера и да предоставя постоянно при всяка основна стъпка. Това се постига чрез много кратки цикли на освобождаване (наречени спринти в Scrum) и получаване на обратна връзка за подобрение в края на всеки цикъл. Сътрудници без много взаимодействия на екипа, като разработчици и тестери в по-ранните методи, сега работят заедно в рамките на модела Agile.
Каква е разликата между Agile и традиционната методология за разработка на софтуер?
Въпреки че методът Agile се основава на итеративно развитие като някои от традиционните подходи, Agile и Traditional методологиите имат ключови разлики. Традиционните подходи използват планирането като свой механизъм за контрол, докато моделите Agile използват обратната връзка от потребителите като основен механизъм за контрол. Agile може да се нарече подход, ориентиран към хората, отколкото традиционните методи. Agile модел доставя работеща версия на продукта много рано в сравнение с традиционните методологии, така че клиентът да може да реализира някои от предимствата в началото. Времето за цикъл на тестване на Agile е сравнително кратко в сравнение с традиционните методи, тъй като тестването се извършва паралелно с развитието. Повечето традиционни модели са много твърди и сравнително по-малко гъвкави от модела Agile. Поради всички тези предимства, Agile е предпочитан пред традиционните методологии в момента.