Vad är en mjukvaruutvecklingsprocess?
Programvara avser både datoroperativsystem själva, liksom till program och applikationer som är utformade för att köra på datorer. Programvaruutveckling är utformning och skrivning av programvara, inklusive utveckling av programarkitektur och användargränssnitt och programmering av källkoden. Programvaruutvecklingsprocessen är den strategi som tas till mjukvaruutveckling, och det finns många välutvecklade modeller för denna process. I allmänhet innehåller de variationer i faserna för att göra en kravanalys, specificera produkten, skapa programvaruarkitektur, implementera koden, testa och dokumentera produkten, tillhandahålla utbildning och support och underhålla och förbättra utgivningen. Oavsett vilken modell som används kan mjukvaruutvecklingsprocessen ibland vara inriktad på ny produktutveckling, medan den vid andra tillfällen är inriktad på revision - till exempel när en punktutgåva skapas för att fixa buggar - och vid andra tillfällen kan den vara förberedelse för en ny version av befintlig programvara, lägga till viktiga funktioner samt erbjuda bugfixar.
Vattenfallsmodellen för mjukvaruutvecklingsprocessen är en tidig modell och också en med inneboende begränsningar. Det föreskriver ett strikt enhetsriktat tillvägagångssätt för utveckling, flyttar en riktning genom sekvensen av programvaruutvecklingsfaser, utan att någonsin återgå till ett tidigare steg eller ändra specifikationen, när utvecklingen har börjat. Spiralmodellen använder däremot en iterativ process, där en sekvens av krav följt av design, implementering och slutligen testning följs av en andra cykel där fler funktioner och komponenter läggs till. I smidiga modeller av mjukvaruutvecklingsprocessen - av vilka det finns ett antal - delas utvecklingsprojekt i veckor till månadslånga underuppsättningar som kallas tidslådor, var och en går igenom en miniatyriserad version av en hel mjukvaruutvecklingsprocess, inklusive en release på slutet. Andra funktioner i Agile-utvecklingen inkluderar närheten till det samarbetsvilliga teamet och användningen av kunder för att svara på produkten under hela processen.
Programutvecklingsprocessen kan vara radikalt annorlunda för ett stort företag och för en enskild programmerare. Till exempel kan en kommersiell programvaruutgivare, som Sibelius Software®, en del av Avid Technology®, spendera flera år på mjukvaruutvecklingsprocessen för varje version och släppa en programvara som är hundratals MB i storlek och används av tusentals människor . Å andra sidan, en person som Roman Molino Dunn, The Music Transcribber®, som programmerar en plug-in som svar på någons önskan att han eller hon skulle kunna göra något annorlunda med en bit kommersiell mjukvara, kan skapa en 4 kb mjukvara inom en timme efter att ha fått idén, i ett extremt fall.