Ekstremno programiranje je ena najnovejših metod razvoja programske opreme. Njegov cilj je izboljšati tradicionalne metode razvoja programske opreme s poudarjanjem poslovne vrednosti in kakovosti. Ta metoda programiranja poskuša zagotoviti popolne in brez napake dele programske opreme, ki ustrezajo poslovnim potrebam, v intervalih, krajših od tednov.
Pri tradicionalnem načinu razvoja programske opreme projekt traja več mesecev ali let. Skupina analitikov skuša od uporabnikov pridobiti vse zahteve. Nato skupina oblikovalcev ustvari široko strukturo sistema. Po tem programerji kodirajo sistem znotraj te strukture. Tester nato zagotovi, da je koda brez napak in da izpolnjuje zahteve.
Glavna težava, s katero se srečujemo pri tradicionalnem razvoju, je, da uporabniki sami niso vedno jasni glede svojih zahtev, zahteve pa se pogosto spreminjajo v daljšem času, ki je potreben za izdelavo programske opreme. Na različnih stopnjah so vključeni različni ljudje in dokumentacija je skoraj nikoli popolna, zato ljudje v kasnejših fazah ne morejo ugotoviti miselnega procesa ljudi v zgodnejših fazah. Posledica tega je nizka kakovost programske opreme in nizka poslovna vrednost.
Ekstremno programiranje običajno vključuje pogoste dobave programske opreme v nekaj tednih. Motivacija je zagotoviti popolnoma delujočo programsko opremo, ki obravnava nekatere kritične poslovne potrebe. Sprememba zahtev se upošteva pri naslednji dostavi.
Ekstremno programiranje ali na kratko XP poudarja kakovost s pisanjem testov pred izvajanjem programiranja. Ko je programska oprema napisana, se koda večkrat na dan pregleda in testira. Celotna programska oprema je sestavljena in testirana enkrat ali celo večkrat na dan. To se naredi zato, da zagotovimo, da noben del programske opreme ne poškoduje sistema.
Eden od dobro znanih vidikov ekstremnega programiranja je programiranje v parih, pri katerem dva programerja delata skupaj na enem računalniku. Zaradi tega pristopa se miselni proces, načrtovanje in kodiranje, ki gre za izdelavo programske opreme, takoj preveri. Odgovornost za razvoj katere koli programske opreme je deljena.
S to metodo razvoja se programska oprema začne s preprosto zasnovo in se razvija, da bi zadovoljila dodatne poslovne potrebe. Ustvarjanju funkcij se izogibamo, dokler dejansko ne postanejo prednostne. Poudarek je na timskem delu za ustvarjanje celovitih sistemov, tako da vsak član ekipe vsak dan igra vlogo analitika, oblikovalca, programerja in preizkuševalca. V programski ekipi je intenzivna komunikacija, pa tudi med programerji in uporabniki, ki jim je programska oprema dostavljena.
Pri tej metodi programiranja je koncept preoblikovanja zelo poudarjen. Preoblikovanje je notranje izpopolnjevanje kode, da se kodi zagotovi dobra struktura in olajša razumevanje, ne da bi to vplivalo na izhod. Pričakuje se, da bo vse delo, povezano z ekstremnimi programi, opravljeno s trajnostnim tempom brez poznih noči in vikendov. To dvigne moralo in zmanjša verjetnost napak.
Ekstremno programiranje je dobilo ime po ideji, da so pozitivni vidiki delovanja dobrih programerjev vzeti do skrajnosti, da bi izkoristili prednosti. Ta način razvoja je bil precej učinkovit v številnih sistemih programske opreme. Ker je to še vedno nova metodologija, se njene prakse nenehno razvijajo.