metodologije razvoja softvera
DESCRIPTION
Metodologije razvoja softveraTRANSCRIPT
-METODOLOGIJE RAZVOJA SISTEMA- POBOLJŠANJE EFIKASNOSTI PROCESA RAZVOJA I ODRŽAVANJA SOFTVERA
Predmetni profesor: dr Živadin Micić
Predmetni asistent: mr Marjan Milošević
Student: Stefan Mršević 521/2014 IT
DANAŠNJI TRENDOVI U RAZVOJU SISTEMA
Slika 1. - Trendovi u razvoju modernih informacionih sistema
ČINJENICE Dobar deo IT kompanija koriste zastarele tehnologije i napuštene metodologije
Zbog toga nisu konkurentne na dinamičnom i dinamičnom tržištu IT usluga
Ogroman deo ovih preduzeća i kompanija čine firme koje su davno izradile aplikacije po meri za svoje korisnike
Umesto unapređivanja i dodavanja funkcionalnosti, poboljšanja infrastrukture i efikasnosti aplikacije ove firme se, zahvaljujući dobrim i dugotrajnim ugovorima bave poslovima održavanja starih(legacy) sistema
Brojne kompanije i državna preduzeća su prinuđene da koriste njihove usluge pre svega zbog kompatibilnosti i bezbednosti
Jedan od razloga je i praćenje globalne enterprise politike
POSLOVI NADOGRAĐIVANJA Za poslove nadograđivanja se koriste stari alati i iste metodologije
Nema ulaganja niti istraživanja u nove metode rada ili sistemske i razvojne alate
Stari alati i metode nisu uvek loši, štoviše neke treba i dalje primenjivati ali neophodna je primena najboljih praksi u IT
To se radi na osnovu praćenja rezultata primene novih metodologija
Slika 2 - Statusi html5 specifikacija koje će biti forsirane za primenu u kompanijama standardima u budućnosti.
ANALIZA NOVIH TRENDOVA POMOĆU KLJUČNIH REČI
Slika 3- Planirani trend razvoja modernih sistema
PREDUSLOVI ZA PROMENE
Prihvatanje osnovnih principa agilnog razvoja pri kome prihvatamo stanje konstantnih promena u odnosu na definisane zadatke kao nešto uobičajeno, čak i poželjno.
Kod nekih preduzeća iako postoji želja, problem je u implementaciji.
Pored toga jedan od najčešće spominjanih procesa koji se pokušava implementirati jeste DevOps.
Potporni stubovi ove metodologije leže u olakšavanju komunikacije developera i IT profesionalaca a što se ogleda u efikasnijem procesu isporuke proizvoda
NAJČEŠĆE KORIŠĆENE AGILNE METODE PRILIKOM RAZVOJA I ODRŽAVANJA SOFTVERA
AGILNI RAZVOJ Veoma često korišćen termin
Projektovan sa namenom da reši tradicionalne probleme prilikom razvoja softvera
Dosadašnje metodologije stalno su pokušavale egzaktnom, procesno-sistemskom metodom definisati načine kako razvijati softver
To su npr. metode poput SSADM, Rational Unified Process i dr.
Svaka od ovih metoda analitički je pokušala dati set koraka, odnosno aktivnosti, koje su tipične u razvoju softvera
Međutim i pored toga nastali su problemi koji su se ogledali uglavnom u nemogućnosti detaljnog planiranja vremena razvoja određenog proizvoda kao i nerazumevanja potreba i očekivanja korisnika
AGILNI RAZVOJ(II)
Zbog svega ovoga nastao je skup principa, metoda i tehnika koje zajedničkim imenom možemo nazvati agilnim razvojem.
Osnovna osobina agilnog razvoja jest prihvatanje činjenice da uz aktivnost planiranja razvoja nekog proizvoda prihvatamo promene kao nešto što je normalno i na kraju krajeva dobro za proizvod.
Mnogo puta i pored detaljnog planiranja dešavaju se nepredviđeni troškovi.
Iako su stare metodologije imale u sebi uključenu komponentu upravljanja promenama u sebi metode agilnog razvoja na ovo stavljaju glavni fokus.
OSNOVNI STUB AGILNOG MODELA – KAIZEN
Definicija
Filozofija ili praksa usmerena ka kontinuiranom poboljšanju proizvoda ili procesa proizvodnje.
Reč kaizen zapravo znači „promena je dobra“,
Korišćen je u nekoliko japanskih firmi nakon Drugog svetskog rata
Tu je postigao odlične rezultate kojima su japanske kompanije stekle konkurentsku prednost u odnosu na slične kompanije iz SAD-a ili Evrope. Ovaj princip pretpostavlja kontinuirano poboljšanje u bilo kojoj aktivnosti procesa proizvodnje i bilo kada, odnosno svakodnevno.
Naravno da se ljudi, koliko god žele da se promene, tome i odupiru pa je najveći problem uvođenja Kaizen principa naučiti ljude prihvatiti kulturu svakodnevnog razmišljanjima o poboljšanju kao i prihvatanjem promena.
Primeri su SCRUM, Extreme programming, KANBAN i drugi…
NAJVEĆE KORISTI OD IMPLEMENTIRANJA AGILNOG RAZVOJA
Brža i bolja reakcija na promene zahteva Veći kvalitet krajnjeg proizvoda Veća produktivnost i delotvornost Bolja saradnja između poslovnog dela organizacije i IT-a Prijatnija i produktivnija radna atmosfera
Slika 3 - Primer agilnog razvoja na osnovu Kanban modela u svakodnevnom okruženju prosečnog korisnika na desktopu
DEVOPS
Skraćenica od procesa razvoja i operacija (engl. Development & Operations)
Uz ova dva procesa podrazumevamo I treći a to je osiguranje kvaliteta
Korene DevOps pravca započeo je Belgijanac Patrik Debois koji je radeći u mnogobrojnim kompanijama zatekao mnoge probleme u razvoju informacionih sistema
Veliki broj njih je upravo nastao zbog loše komunikacije između razvojnih i sistemskih inženjera
Pokušao je da nađe rešenje pokrenuvši DevOps konferenciju 2009. godine
KLJUČNE KOMPONENTE DEVOPS PRAVCA
Tri ključne komponente DevOps pravca su razvoj, operacije i osiguranje kvaliteta
DEFINICIJA
• Definicija ovog pravca govori o DevOpsu kao softverskoj razvojnoj metodi koja naglašava komunikaciju, kolaboraciju i integraciju između razvojnih softverskih inženjera i sistemskih inženjera.
• Radi se o skupu tehnika koje kao rezultat imaju kvalitetan kontinuirani razvoj, održavanje i isporuke softvera.
• DevOps naglašava kolaboraciju između različitih radnih jedinica odnosno radnih mesta.
• Danas je čest slučaj da programeri i sistem administratori, data manager-i ne sede zajedno u istom prostoru, i da čak iako ponekad zajedno rade sama komunikacija je neretko spora i slaba, nepotpomognuta zajedničkim razvojnim i operacijskim alatima.
• DevOps ovde vidi veliki prostor za poboljšanje te forsira upotrebu kolaborativnih alata i zajedničkih razvojnih alata čije parametre prate i jedni i drugi.
• Zbog ovoga su svađe među raznim projektnim ulogama ređe, a prekovremeni rad znatno smanjen, što kao rezultat ima češće isporuke sa znatno manje grešaka nego što je uobičajeno (sličnost s agilnim metodama razvoja).
• Ovakav način rada podrazumeva da se mnoge razvojne aktivnosti, koje bi se inače ručno radile, automatiziraju.
• Ovo su prepoznale mnoge kompanije sa izbacivanjem raznih softverskih alata sa DevOps funkcionalnostima, a većina njih pomaže u automatizaciji procesa isporučivanja (engl. release management), upravljanju konfiguracijama (engl. configuration management) i nadzoru rada isporučenih proizvoda.
NOVA ZANIMANJA
Sve ovo dovelo je do stvaranja novih zanimanja u IT svetu poznatijih kao DevOps engineer.
To su osobe koje znaju dosta o razvoju informacionih sistema a istovremeno su tehnički potkovani za rad na mnogobrojnim platformama.
KONTROLNA PITANJA
Nabrojati razloge korišćenja starih softverskih metodologija Osnovni problem implementacije novih softverskih metodologija Šta je agilni razvoj? Šta je kaizen? Koje su najveće koristi od implementiranja novih softverskih metodologija? Koje su osnovne karakteristike DevOps pravca?
LITERATURA
[1] Robert Maurer Ph.D., “One Small Step Can Change Your Life: The Kaizen Way”, Amazon Kindle direct publishing, 2014[2] dr. Živadin Micić, Autorizovana predavanja, Fakultet tehničkih nauka u Čačku, 2015[3] Karl Wiegers, Joy Beatty, Software Requirements (3rd Edition) (Developer Best Practices), Amazon Kindle direct publishing, 2013