Proces wytwarzania oprogramowania zwany Agile (ang. zręczny, sprawny) oznacza koncepcję skupioną na produkcji oprogramowania i prezentacji jego komponentów w możliwie małych odstępach czasowych, aby uniknąć rozbieżności pomiędzy wymaganiami zamawiającego system, a wyobrażeniami jego twórcy.
Agile można zaliczyć do tzw. lekkich metodologii projektowania oprogramowania. W porównaniu do starszych koncepcji, takich jak RUP (gdzie do 50% nakładu pracy przeznacza się na dokumentację projektową), Agile jest procesem, w którym bardziej się ceni bezpośrednią komunikację z klientem, niż opisy w postaci fizycznych dokumentów. W rozumieniu koncepcji Agile, miarą postępu projektu jest ilość działających komponentów, a zatem projekt architektoniczny schodzi na drugi plan
Istnieje wiele praktyk Agile: m.in. Agile Modeling, Agile Unified Process, Extreme Programming (XP), Scrum.
Agile opiera się na dwunastu zasadach zawartych w dokumencie Manifest Agile
Mniej dokumentacji projektowej, czyli wymierne oszczędności na etapie projektowania systemu
Szybsze dostarczenie działającego (choćby częściowo) oprogramowania, a zatem mniejsze ryzyko rozbieżności w wyobrażeniach zamawiającego i wykonującego.
Większa elastyczność w sytuacji gdy wymagania często się zmieniają
Z uwagi na mniejszą ilość dokumentacji (w porównaniu do tradycyjnych metodologii), przy wykonywaniu projektów zgodnie z Agile, wymagany jest bardziej zgrany zespół, którego członkowie darzą siebie wzajemnym zaufaniem. Warunkiem koniecznym sukcesu stosowania Agile jest także co najmniej poprawny poziom relacji wykonawca-zamawiający, gdzie obie strony muszą, choćby w pewnym stopniu, wykazywać dobrą wolę i wzajemne zrozumienie