Agile срещу V методологии (модел)
Има редица различни методологии за разработка на софтуер, използвани в софтуерната индустрия днес. V Methodologies (V-Model) е разширение на метода за разработка на Waterfall (който е един от най-ранните методи). Основният фокус на V-Model е придаването на еднаква тежест на кодирането и тестването. Agile моделът е по-нов модел за разработка на софтуер, въведен за справяне с недостатъците, открити в съществуващите модели. Основният фокус на Agile е включването на тестване възможно най-рано и пускането на работеща версия на продукта много рано чрез разбиване на системата на много малки и управляеми подчасти.
Какво е V Methodologies (модел)?
V Methodologies (V-Model) е модел за разработка на софтуер. Счита се за разширение на типичния модел за разработка на софтуер Waterfall. V-моделът използва същите връзки между фазите, дефинирани в модела на водопада. Но вместо да се спуска линейно (като модела на водопада), V-моделът се спуска по диагонал и след това се движи обратно нагоре (след фазата на кодиране), образувайки формата на буквата V. Тази V-форма е оформена, за да покаже връзката между всяка фаза на разработването/проектирането и съответната фаза на тестване. Времето и нивото на абстракция са представени съответно с хоризонтална и вертикална ос.
Тестването (възходящата пътека, дясната страна на V) се извършва за проверка, докато съответните фази на проектиране (низходящата пътека, лявата страна на V) се използват за валидиране. Във V-модела еднаква тежест се дава на кодирането и тестването. V-Model препоръчва създаване на документ за тестване заедно с проектните документи/код. Например, документите за тестване на интеграция трябва да бъдат написани, когато се документира дизайнът на високо ниво, а тестовете на модулите трябва да бъдат документирани, докато се прави подробният план за проектиране. Това означава, че план за внедряване за всеки тест трябва да бъде създаден предварително, а не да се чака разработката да приключи, за да може да бъде предаден на екипа за тестване.
Какво е Agile?
Agile е съвсем скорошна методология за разработка на софтуер, базирана на манифеста за гъвкавост. Това беше разработено за отстраняване на някои недостатъци в традиционните методологии за разработка на софтуер на V-модел и водопад. Гъвкавите методи се основават на даването на висок приоритет на участието на клиента в началото на цикъла на разработка. Препоръчва се включване на тестване от клиента рано и възможно най-често. Тестването се извършва във всяка точка, когато стане достъпна стабилна версия. Основата на Agile се основава на започване на тестване от началото на проекта и продължаване до края на проекта. Ключови ценности на Agile са „качеството е отговорност на екипа“, което подчертава, че качеството на софтуера е отговорност на целия екип (а не само на екипа за тестване). Друг важен аспект на Agile е разбиването на софтуера на по-малки управляеми части и доставянето им на клиента много бързо. Предоставянето на работещ продукт е от изключителна важност. След това екипът продължава да подобрява софтуера и да доставя непрекъснато на всяка важна стъпка. Това се постига чрез много кратки цикли на освобождаване, наречени спринтове, и получаване на обратна връзка за подобрение в края на всеки цикъл. Сътрудници без много взаимодействие с екипа, като разработчици и тестери в по-ранните методи, сега работят заедно в рамките на Agile модела.
Каква е разликата между Agile и V методологии (модел)?
Agile моделът предоставя работеща версия на продукта много рано в сравнение с V-модела. Тъй като повече функции се доставят постепенно, клиентът може да осъзнае някои от предимствата на ранен етап. Времето за цикъл на тестване на Agile е относително кратко в сравнение с V-модела, тъй като тестването се извършва успоредно с разработката. Agile е проактивен модел (поради много кратките си цикли) в сравнение с много по-реактивния V-модел. V-моделът е много твърд и относително по-малко гъвкав от Agile модела. Поради всички тези предимства Agile е предпочитан пред V-модела в момента.