Što je proces razvoja softvera?

Softver se odnosi na same računalne operacijske sustave, kao i na programe i aplikacije dizajnirane za rad na računalima. Razvoj softvera je projektiranje i pisanje softvera, uključujući razvoj programske arhitekture i korisničkog sučelja te programiranje izvornog koda. Proces razvoja softvera je pristup koji se koristi razvoju softvera, a za taj proces postoji mnogo dobro razvijenih modela. Općenito, oni sadrže varijacije u fazama analize zahtjeva, specifikacije proizvoda, kreiranja softverske arhitekture, implementacije koda, testiranja i dokumentiranja proizvoda, pružanja obuke i podrške te održavanja i poboljšanja izdanja. Bez obzira na to koji se model koristi, proces razvoja softvera ponekad može biti usmjeren na razvoj novih proizvoda, dok je u drugim slučajevima fokusiran na reviziju – na primjer, kada se kreira točkasto izdanje radi ispravljanja grešaka – a u drugim slučajevima može biti priprema za novu verziju postojećeg softvera, dodajući značajne značajke, kao i nudeći ispravke pogrešaka.

Model vodopada za proces razvoja softvera rani je model i također ima inherentna ograničenja. Propisuje striktno jednosmjeran pristup razvoju, jednosmjerno kretanje kroz slijed faza razvoja softvera, bez vraćanja na prethodnu fazu ili promjene specifikacije, nakon što je razvoj započeo. Spiralni model, naprotiv, koristi iterativni proces, u kojemu niz zahtjeva, nakon čega slijedi dizajn, implementacija i konačno testiranje, slijedi drugi ciklus u kojem se dodaje više značajki i komponenti. U agilnim modelima procesa razvoja softvera — kojih postoji veliki broj — razvojni projekti podijeljeni su u podskupove od tjedan do mjesec dana koji se nazivaju vremenski okviri, od kojih svaki prolazi kroz minijaturiziranu verziju cijelog procesa razvoja softvera, uključujući izdanje na kraj. Ostale značajke Agile razvoja uključuju blizinu suradničkog tima i korištenje kupaca kako bi odgovorili na proizvod tijekom cijelog procesa.

Proces razvoja softvera može biti radikalno drugačiji za veliku tvrtku i za pojedinog programera. Na primjer, komercijalni izdavač softvera, kao što je Sibelius Software®, dio Avid Technology®, mogao bi potrošiti nekoliko godina na proces razvoja softvera za svaku verziju i izdati softversku aplikaciju koja je veličine stotine MB i koju koriste tisuće ljudi . S druge strane, pojedinac poput Romana Molina Dunna, The Music Transcriber®, koji programira dodatak kao odgovor na nečiju želju da on ili ona može učiniti nešto drugačije s komadom komercijalnog softvera, mogao bi stvoriti komad softvera od 4 kb u roku od sat vremena od ideje, u ekstremnom slučaju.