Što je ekstremno programiranje?

Ekstremno programiranje jedna je od novijih metoda razvoja softvera. Cilj mu je poboljšati tradicionalne metode razvoja softvera naglašavajući poslovnu vrijednost i kvalitetu. Ova metoda programiranja pokušava isporučiti potpune dijelove softvera bez pogrešaka koji zadovoljavaju poslovne potrebe, u intervalima od nekoliko tjedana.

U tradicionalnom načinu razvoja softvera, projekt traje mnogo mjeseci ili godina. Tim analitičara pokušava dobiti sve zahtjeve korisnika. Zatim, skup dizajnera stvara široku strukturu sustava. Nakon toga programeri kodiraju sustav unutar te strukture. Testeri tada osiguravaju da je kod bez grešaka i da ispunjava zahtjeve.

Glavni problem s kojim se susreće s tradicionalnim razvojem je taj što sami korisnici nisu uvijek jasni o svojim zahtjevima, a zahtjevi se često mijenjaju tijekom produljenog vremena potrebnog za stvaranje softvera. U različitim su fazama uključeni različiti ljudi, a dokumentacija je jedva potpuna, tako da ljudi u kasnijim fazama ne mogu shvatiti misaoni proces ljudi u ranijim fazama. To rezultira niskom kvalitetom softvera, kao i niskom poslovnom vrijednošću.

Ekstremno programiranje obično uključuje česte isporuke softvera u rasponu od nekoliko tjedana. Motivacija je pružiti potpuno funkcionalan softver koji odgovara nekim kritičnim poslovnim potrebama. Promjena zahtjeva se prihvaća u sljedećoj isporuci.

Ekstremno programiranje, ili skraćeno XP, naglašava kvalitetu pisanjem testova prije izvođenja programiranja. Kako je softver napisan, kod se pregledava i testira mnogo puta dnevno. Cijeli se softver sastavlja i testira jednom ili čak nekoliko puta dnevno. To je učinjeno kako bi se osiguralo da niti jedan dio softvera ne pokvari sustav.

Jedan od dobro poznatih aspekata ekstremnog programiranja je programiranje u paru, u kojem dva programera rade zajedno na jednom računalu. Zbog ovakvog pristupa odmah se provjerava misaoni proces, projektiranje i kodiranje koje ide u kreiranje softvera. Odgovornost razvoja bilo kojeg softvera se dijeli.

S ovom metodom razvoja, softver započinje jednostavnim dizajnom i razvija se kako bi zadovoljio dodatne poslovne potrebe. Stvaranje značajki izbjegava se sve dok zapravo ne postanu visoki prioritet. Naglasak je na timskom radu na izradi cjelovitih sustava, tako da svaki član tima svaki dan ima ulogu analitičara, dizajnera, programera i testera. Postoji intenzivna komunikacija unutar programskog tima, kao i između programera i korisnika kojima se softver isporučuje.

U ovoj metodi programiranja, koncept refaktoriranja je jako naglašen. Refaktoriranje je interno pročišćavanje koda kako bi se kodu dobila dobra struktura i olakšalo razumijevanje bez utjecaja na izlaz. Očekuje se da će se sav posao uključen u ekstremno programiranje obavljati održivim tempom bez kasnih noćnih sati i vikenda. To podiže moral i smanjuje vjerojatnost pogrešaka.

Ekstremno programiranje ime je dobilo po ideji da su pozitivni aspekti rada dobrih programera dovedeni do krajnosti kako bi se iskoristile prednosti. Ova metoda razvoja bila je prilično učinkovita u brojnim softverskim sustavima. Kako je ovo još uvijek nova metodologija, njezine se prakse kontinuirano razvijaju.