Hva er en programvareutviklingsprosess?
Programvare refererer til både datamaskinens operativsystemer, så vel som til programmer og applikasjoner designet for å kjøre på datamaskiner. Programvareutvikling er design og skriving av programvare, inkludert utvikling av programarkitektur og brukergrensesnitt og programmering av kildekoden. Programvareutviklingsprosessen er tilnærmingen tatt til programvareutvikling, og det er mange velutviklede modeller for denne prosessen. Generelt inneholder de variasjoner i faser av å gjøre en kravanalyse, spesifisere produktet, lage programvarearkitektur, implementere koden, teste og dokumentere produktet, gi opplæring og støtte, og vedlikeholde og forbedre utgivelsen. Uansett hvilken modell som brukes, kan programvareutviklingsprosessen noen ganger være rettet mot utvikling av nye produkter, mens den til andre tider er fokusert på revisjon - for eksempel når en punktutgivelse opprettes for å fikse feil - og på andre tidspunkter, kan den være forberedelse på en ny versjon av eksisterende programvare, legge til viktige funksjoner i tillegg til å tilby feilrettinger.
Waterfall Model for programvareutviklingsprosess er en tidlig modell og også en med iboende begrensninger. Den foreskriver en strengt uniretningstilnærming til utvikling, beveger seg enveis gjennom sekvensen av programvareutviklingsfaser, uten noen gang å gå tilbake til et tidligere stadium eller endre spesifikasjonen, når utviklingen først har startet. Spiralmodellen bruker derimot en iterativ prosess, der en sekvens av krav, etterfulgt av design, implementering og til slutt, etterfølges av en andre syklus der flere funksjoner og komponenter blir lagt til. I smidige modeller av programvareutviklingsprosessen - hvorav det er mange - er utviklingsprosjekter delt inn i ukes til månedslange undersett, kalt tidskasser, som hver går gjennom en miniatyrisert versjon av en hel programvareutviklingsprosess, inkludert en utgivelse på slutten. Andre funksjoner ved Agile-utvikling inkluderer nærhet av samarbeidspartiet og bruk av kunder til å svare på produktet gjennom hele prosessen.
Programvareutviklingsprosess kan være radikalt forskjellig for et stort firma og for en individuell programmerer. For eksempel kan en kommersiell programvareutgiver, som Sibelius Software®, en del av Avid Technology®, bruke flere år på programvareutviklingsprosessen for hver versjon og gi ut en programvare som er hundrevis av MB i størrelse og brukt av tusenvis av mennesker . På den annen side, en person som Roman Molino Dunn, The Music Transcribber®, som programmerer en plug-in som svar på noens ønske om at han eller hun kunne gjøre noe annerledes med et stykke kommersiell programvare, kan lage et 4 kb programvare innen en time etter å ha fått ideen, i ekstreme tilfeller.