Metodologia Agile sama w sobie obejmuje różne metodologie.
Metody programowania oparte na Agile, takie jak Scrum czy FDD, są częścią Manifestu Agile, który został wprowadzony w 2001 roku. Metodologia Agile jest często porównywana z modelem kaskadowym lub wodospadu w branży tworzenia oprogramowania, jednak podejście Agile uważa się za lepsze. Wykorzystuje podejście przyrostowe, w którym przykładowy prototyp jest omawiany z klientem. Prototyp pomaga w zrozumieniu kluczowych aspektów, w tym wymagań. Kolejne prototypy odzwierciedlają zmiany dokonane w poprzednich prototypach. Dzieje się tak, dopóki klient nie jest zadowolony, zapewniając klientowi lepszy produkt końcowy. Chodzi o utrzymanie jakości produktu na całym etapie rozwoju. W 2001 roku kilka zasad zwinności zostało omówionych i uzgodnionych w ramach Manifestu Agile. Metodologie Agile przezwyciężyły tradycyjne metody modelu wodospadu, stając się elastyczne, szybkie, oszczędne, responsywne i spójne. Metoda ta koncentruje się na ludziach i jest bardziej zorientowana na komunikację pomiędzy zespołem programistów a klientem. Metody Agile są testowane w dynamicznym środowisku i okazują się bardzo elastyczne, dostosowując się do zmian zachodzących w firmie, obejmują regularną kontrolę w zdyscyplinowany sposób, co w konsekwencji poprawia cechy przywódcze w celu zwiększenia pracy zespołowej.
Podejście Agile postępuje zgodnie z najlepszymi praktykami, które pomagają bardzo szybko uzyskać oprogramowanie wysokiej jakości, bez popełniania wielu niepotrzebnych błędów.
W wydajnym zespole zawsze jest niewielka grupa profesjonalistów posiadających certyfikat agile. Wszystko to prowadzi do mniejszych problemów z komunikacją i zużycia czasu na spotkaniach. Większy zespół, w niektórych przypadkach, można podzielić na dwa lub więcej. Duży zespół prowadzi do dalszych komplikacji i nieporozumień, a zatem nie jest dobrym pomysłem. Większy zespół oznacza większą utratę informacji podczas wymiany myśli i pomysłów, co spowoduje, że wszyscy w zespole spędzą więcej czasu i wysiłku, aby przekazać jakąkolwiek wiadomość lub dane.